在文本中查找与给定关键字具有最高相似度的子字符串

pat*_*rit 14 text machine-learning data-mining string-algorithm

假设我有这个text = I love apples, kiwis, oranges and bananas和searchString = kiwis and bananas相似度算法Jaccard索引.如何有效地找到text与其具有最高相似性的子串searchString.

基本上我试图找到与我拥有的关键字列表匹配的文本部分(文本有高错误,拼写错误,额外符号和空格).

dve*_*eim 5

Jaccard 索引是“幸运”的相似性算法,因为您可以更新新符号的值,而无需重新计算所有以前的内容。因此,您可以将text结果索引值视为一系列差异。之后,问题可以简化为https://en.wikipedia.org/wiki/Maximum_subarray_problem

那么你的第二段呢,如果你正在进行一些类似 NLP 的研究,我建议在进一步处理之前清理你的数据(尽可能删除那些额外的符号和空格)。这就是所谓的“拼写纠正”,并且有大量不同的算法和库。要选择合适的域名,需要有关您的域名的额外信息。


小智 2

看一下叠瓦技术,并尝试找出相似之处。您可以点击此链接:http://nlp.stanford.edu/IR-book/html/htmledition/near-duplicates-and-shingling-1.html

例如,使用 9 shingle 并将每个子集与您的特定关键字进行比较