算法 – 如何比较短语的相似性?
当输入一个问题时,stackoverflow会提供一系列可能涵盖同一主题的问题列表.我已经在其他网站或其他程序中看到类似的功能(例如帮助文件系统),但是我从来没有编程过这样的东西.现在我很好奇,知道那个算法有什么用处.
我想到的第一种方法是将短语分割成单词,并寻找包含这些单词的短语.在你这样做之前,你可能想丢弃无关紧要的话(如”””””等等),然后你会想要对结果进行排名. 嘿,等等 – 我们这样做的网页,然后我们可以有一个… watchamacallit … – 一个“搜索引擎”,然后我们可以卖广告,然后… 不,认真的,解决这个问题的常见方法是什么? 解决方法
一种方法是所谓的手提袋模型.
你猜到,首先你会计算文本中出现多少次文字(通常称为NLP-lingo中的文档).然后你会抛出所谓的停止词,如“the”,“a”,“or”等等. 你留下了单词和字数.这样做一会儿,你会得到一个全面的文字,出现在你的文件.然后,您可以为这些单词创建索引: 现在你可以把你的文字袋,并把它们变成向量.例如,如果您的文档包含aardvarks的两个引用,而没有其他的,它将如下所示: [2 0 0 ... 70k zeroes ... 0]. 之后,您可以使用a dot product计算两个向量之间的“角度”.角度越小,文档越近. 这是一个简单的版本,还有其他更先进的技术.可能是Wikipedia be with you. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |