我对Elasticsearch
的拼写检查器已经很熟悉了,我可以使用suggest
API构建一个简单的拼写检查器。问题是,有一种拼写错误的单词,称为“实词”错误拼写。当写单词的拼写错误,产生另一个存在于索引数据中的单词时,实词拼写错误就会发生,所以词法拼写检查器没有纠正它,因为词在词汇上是正确的。
例如,考虑一下查询“如何给我的笔记本电脑上线?”.The用户所说的“贝尔”意思是“出售”,但是索引词汇表中存在“贝尔”。所以咒语检查器让它成为。
查找和纠正真实单词拼写错误的想法是使用索引数据n克的频率。如果当前n克的频率很低,另一方面在索引数据中有一个非常相似的n克和高频率,那么我们很可能会出现一个真正的单词拼写错误。
我想知道是否有一种使用elasticsearch
API实现这种拼写检查器的方法?
发布于 2020-06-13 11:09:08
在搜索了一段时间之后,我发现使用phrase_suggester
可以实现这样的东西。
POST v2_201911/_search
{
"suggest": {
"text": "how to bell my laptop",
"simple_phrase": {
"phrase": {
"field": "content",
"gram_size": 2,
"real_word_error_likelihood": 0.95,
"direct_generator": [
{
"field": "content",
"suggest_mode": "always",
"prefix_length": 0,
"min_word_length": 1
}
],
"highlight": {
"pre_tag": "<em>",
"post_tag": "</em>"
}
}
}
}
}
根据文档的说法:
real_word_error_likelihood: 即使词典中存在拼写错误的术语的可能性。缺省值为0.95,这意味着5%的实际单词拼写错误。
https://stackoverflow.com/questions/62261684
复制相似问题