如何在文本中匹配关键字/短语?
我有…
- 一个固定的大集(约100万)关键词和短语,如
birthday
,happy new year
,vacation
等。 - 一些10至500字的variables文本。
我想…
- 确定文本中出现的关键字/短语(例如,
Hi John, happy birthday to you.
birthday
Hi John, happy birthday to you.
birthday
),最好是关于相等数目的一些信息 - 容忍语法变化(
vacations
应该与vacation
匹配,countries
应该匹配country
)或者“拼写错误”(nodejs
==node.js
)。
本质上类似于谷歌search(但他们可能使用更复杂的方法)或Stackoverflow的标签匹配/search答案。
基本上用户input一些文本,我的程序应该尽量build议相关的关键字。
在我的情况下,该algorithm需要大部分操作英文文本,但也应该适用于其他语言,如德语,意大利语,法语,西class牙语,…
是否有一些Linux / NodeJS库可以做到这一点? 或者至less有一个众所周知的algorithm?
至于第一个问题,您可以简单地读取整个集合或逐行读取,并对每个需要search的单词进行String.match()。
第二个是有点棘手,你不需要完全匹配,但你需要计算2个string的相似性。有很多algorithm,可以衡量两个string是如何相似。 例如,看看Levenshtein的距离 。
有一个很好的库,在node.js https://github.com/NaturalNode/natural中实现上述所有function。它可以标记文本,search一个确切的或相似的单词,并且还实现了tf-idf ,它更简单search引擎可以工作的方式!