【发布时间】:2020-02-28 20:50:29
【问题描述】:
我只是信息检索的初学者。
我正在寻求解决一个问题,即用户在输入单词时错误地在字符之间添加空格或将两个单词合并为一个,由于简单的倒排索引查找,目前无法处理。
假设我对以下文档进行了倒排索引:
- 杰克和吉尔是好朋友。
- 杰克去了阿拉斯加。
- Jill 住在纽约。
现在拥有倒排索引意味着像将 new 和 york 索引为单独的标记(假设仅作为示例并且没有使用 NLP 将纽约标记为位置)
token count location
jack 2 1,2
jill 2 1,2
new 1 3
york 1 3
alaska 1 4
现在查询 jack,我会得到位置 1,2,这很好。
但是对于查询 newyork(假设查询没有空格),我如何从位置为 3(组合)的索引中获取 newyork。 p>
对于查询 ala ska(带空格),我如何分别检索令牌 alaska(索引中没有空格)。
我遗漏的任何建议或任何特定算法。
我只是信息检索的初学者。
感谢您的帮助。
我正在考虑将每个查询标记分解为字符-语法组合,最后将它们合并以找出最常见的标记。
例如查询newyork
找到直到限制 n 的所有标记,从 n... 开始,然后 ne.... 然后 new.... 然后 newy.. 等等,类似于 ne.. ew...wy..哟..or..rk...,
在合并数组后最终会得到 new 和 york 某处..
与查询 ala ska 类似(用空格分隔单词)
【问题讨论】:
标签: elasticsearch search lucene information-retrieval