当前位置:  开发笔记 > 编程语言 > 正文

如何比较短语的相似性?

如何解决《如何比较短语的相似性?》经验,为你挑选了1个好方法。

输入问题时,stackoverflow会向您显示一个它认为可能涵盖同一主题的问题列表.我在其他网站或其他程序中也看到了类似的功能(例如帮助文件系统),但我自己从未编写过类似的东西.现在我很想知道用什么算法.

我想到的第一种方法是将短语分成单词并查找包含这些单词的短语.在你这样做之前,你可能想丢掉无关紧要的词(比如'the','a','do'等),然后你会想要对结果进行排名.

嘿,等等 - 让我们为网页做,然后我们可以有一个... watchamacallit ... - 一个"搜索引擎",然后我们可以出售广告,然后......

不,说真的,解决这个问题的常用方法是什么?



1> Antti Rasine..:

一种方法是所谓的词袋模型.

正如您猜测的那样,首先计算文本中出现的单词次数(通常称为NLP-lingo中的文档).然后你扔掉所谓的停用词,比如"the","a","or"等等.

你留下了文字和字数.这样做一段时间后,您会得到一整套出现在文档中的单词.然后,您可以为这些单词创建索引:"aardvark"为1,"apple"为2,...,"z-index"为70092.

现在你可以拿出你的文字袋并将它们变成矢量.例如,如果您的文档包含两个针对aardvark的引用而没有其他内容,则它将如下所示:

[2 0 0 ... 70k zeroes ... 0].

在此之后,您可以使用点积计算两个向量之间的"角度" .角度越小,文件越近.

这是一个简单的版本,还有其他更先进的技术.愿维基百科和你在一起.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有