【发布时间】:2018-12-07 08:45:36
【问题描述】:
我已经实现了一个模糊匹配算法,我想使用一些带有测试数据的示例查询来评估它的召回率。
假设我有一个包含文本的文档:
{"text": "The quick brown fox jumps over the lazy dog"}
我想看看是否可以通过测试诸如“sox”或“hazy drog”之类的查询而不是“fox”和“lazy dog”来检索它。
换句话说,我想在字符串中添加噪音以生成拼写错误的单词(拼写错误)。
有什么方法可以自动生成带有拼写错误的单词来评估模糊搜索?
【问题讨论】:
-
您可以通过多种方式生成查询,但最难的部分是确定您想要覆盖的范围。您是否只对完全错误输入的单词感兴趣,或者我可以只对部分单词感兴趣(例如“jun”代表“jum”)。我可以使用不连续的单词(“quick sox”)吗?只有一个错字还是可能更多?缺少 withespace(“lazydog”)?拼写错误是随机的还是与键盘位置有关(例如,假设 qwerty,“n”代表“m”,而不是“q”代表“m”)?区分大小写重要吗?是否有任何 unicode 拼写错误(从口音到表情符号……)?我的意思是我想它可以像你想要的一样难或简单。
-
@jdehesa 我同意这是一个广泛的问题,但我认为任何关于特定范围的答案,例如键盘位置,可能很有用。然后,您可以通过从拼写错误生成器池中随机化来生成错误输入的单词。
标签: python nlp fuzzy-search