我有。。。
一组固定的大型关键字和短语,如birthdayhappy new yearvacation等。
一些介于10到500字之间的可变文本。
我想……
识别文本中出现的那些关键字/短语(例如Hi John, happy birthday to you.匹配birthday),最好包含一些有关相等匹配数的信息
容忍语法变化(vacations应该匹配vacationcountries应该匹配country)或“拼写错误”(nodejs=node.js)。
本质上类似于Google搜索(但它们可能使用更复杂的方法)或Stackoverflow搜索标签匹配/搜索答案。
基本上用户输入一些文本,我的程序应该尽可能推荐相关的关键字。
在我的例子中,算法主要需要对英语文本进行操作,但也应该适用于其他语言,如德语、意大利语、法语、西班牙语。。。
有一些Linux / NoDEJS库存在吗?或者至少是一个著名的算法?

最佳答案

至于第一个问题,您可以简单地逐行阅读整个集合,并对需要搜索的每个单词生成一个String.match()。
第二个比较复杂,你不需要精确的匹配,但是你需要计算两个字符串的相似度,有很多算法可以测量两个字符串的相似度。例如,看看Levenshtein distance
有一个很好的库在node.js中实现了以上所有内容
https://github.com/NaturalNode/natural
它可以标记文本,搜索一个精确或相似的单词,还可以实现tf-idf这是一个搜索引擎可以工作的更简单的方式!

10-04 23:20
查看更多