首页 / 知识
关于nlp:是否有一种算法可以判断两个词组的语义相似性
2023-04-15 07:51:00

Is there an algorithm that tells the semantic similarity of two phrases输入:词组1,词组2 输出:语义相似性值(0到1之间),或者这两个短语谈论同一件事的可能性 您可能想查看这篇文章: 基于语义网和语料统计的句子相似度(PDF) 我已经实现了所描述的算法。我们的上下文非常笼统(实际上是两个英文句子),并且我们发现所采用的方法太慢,结果虽然很有希望,但效果还不够好(或者如果没有大量额外的努力就可能如此)。 您没有提供太多背景信息,所以我不一定推荐这样做,但是阅读本文可能对您了解如何解决该问题很有用。 问候, 马特 这有一个简短的回答。 简短的答案: 使用WordNet :: Similarity Perl包。如果不是您选择的语言是Perl,请查看Princeton的WordNet项目页面,或在google上找到包装器库。 长答案: 确定单词的相似性是一个复杂的问题,在这个领域,研究仍然很热门。要计算相似度,您需要适当表达单词的含义。但是,"椅子"的含义将是什么呢?实际上,"椅子"的确切含义是什么?如果您对此进行漫长而艰苦的思考,将会使您产生疑惑,您会发疯,并最终从事哲学或计算语言学的研究事业以找到真相?哲学家和语言学家都试图提出一个真正的答案,这已经有数千年的历史了,而且没有尽头。 因此,如果您有兴趣更深入地研究这个问题,我强烈建议您阅读Jurafsky和Martin撰写的《语音和语言处理》第20.7章,其中一些内容可以通过Google图书获得。它很好地概述了最新的分布方法,这些方法使用词共现统计来定义词相似度的度量。但是,您不太可能找到实现这些功能的库。 您可能要检查普林斯顿大学的WordNet项目。一种可能的解决方法是首先通过停用词列表运行每个短语(以删除"常见"单词,例如" a"," to"," the"等),然后针对其中的其余每个单词每个词组,您都可以使用基于WordNet的距离度量来计算另一个词组中每个词之间的语义"相似性"。距离度量可能类似于:从Word1到word2必须在WordNet中通过的弧数。 抱歉,这是高级的。我显然从来没有尝试过。只是一个快速的想法。 对于刚接触此问题的任何人,我建议您看看SEMILAR-http://www.semanticsimilarity.org/。他们实现了许多用于计算单词和句子相似度的现代研究方法。它是用Java编写的。
我将为此研究潜在的语义索引。我相信您可以创建类似于矢量空间搜索索引的内容,但语义相关的术语会更靠近在一起,即它们之间的夹角较小。如果我了解更多信息,我会在这里发布。 抱歉,我提出了一个长达6年的问题,但是今天我刚看到这篇文章时,我会给出一个答案,以防其他人正在寻找类似的内容。 cortical.io开发了一种计算两个表达式的语义相似性的过程,他们在其网站上提供了一个演示。它们提供了免费的API,可以使用该功能,因此您可以在自己的应用程序中使用它,而无需自己实现算法。 一种简单的解决方案是使用字符n元语法向量的点积。这在排序更改(许多编辑距离度量标准未提供)方面很可靠,并且捕获了词干周围的许多问题。它还防止了完全语义理解的AI完全问题。 要计算n元语法向量,只需选取n的值(例如3),然后将短语中的每个3字序列哈希为向量即可。将向量归一化为单位长度,然后采用不同向量的点积来检测相似性。
这种方法已在 尝试SimService,它提供了用于计算前n个相似单词和短语相似度的服务。 我将看看统计技术,该技术考虑了每个单词出现在句子中的可能性。这将使您对诸如"和","或","该"之类的流行单词的重视程度降低,而对显得不太规则的单词给予更多重视,因此成为更好的区分因素。例如,如果您有两个句子:
1)Smith-waterman算法为您提供了两个字符串之间的相似性度量。 这两个句子共享单词" smith-waterman"和"算法"(不如" and"," or"等常见),这使您可以说这两个句子可能确实在谈论同一个话题。
总结一下,我建议您看一下: 希望这可以帮助。 这要求您的算法实际上知道您在说什么。可以通过比较单词和查找同义词等某种基本形式来完成,但是任何一种准确的结果都需要某种形式的智能。 看看http://mkusner.github.io/publications/WMD.pdf。本文描述了一种称为词移动距离的算法,该算法试图揭示语义相似性。它依赖于word2vec规定的相似性分数。将此与GoogleNews-vectors-negative300集成可获得理想的结果。 |
最新内容
相关内容
linux命令行输入汉字?
linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,Linux命令行可以用什么中文输入法1、fbterm的话,加上ucimf就行了。linux常用输出命令?
linux常用输出命令?,工作,系统,地址,管理,信息,标准,命令,目录,数据,位置,linux必学的60个命令安装和登录命令:login、shutdown、halt、rebootlinux基本命令怎么输入?
linux基本命令怎么输入?,地址,工作,系统,位置,密码,命令,电脑,管理,信息,终端,linux中使用vi指令后怎么输入?1、[Ctrl]+[f]:屏幕向下移动一页,相linux声音输出命令?
linux声音输出命令?,电脑,系统,设备,服务,软件,数据,工具,情况,手机,命令,linux用命令选择音频输出设备首先电视机必须有HDMI接口,准备一条MHLlinux命令输入格式化?
linux命令输入格式化?,电脑,设备,系统,管理,位置,环境,名称,数据,磁盘,命令,linux格式化命令如何使用1、Linux的磁盘格式化命令是“mkfs”,它可linux输入上条命令?
linux输入上条命令?,系统,命令,工作,电脑,数字,时间,管理,工具,第一,网上,linux中的命令如何输入linux常用命令:pwd命令该命令的英文解释为prinlinux输入过的命令?
linux输入过的命令?,系统,地址,数字,命令,工具,工作,环境,界面,历史,指令,linux系统查看自己在linux上使用过的前10次命令1、首先打开Linux直linux输入命令的地方?
linux输入命令的地方?,系统,管理,单位,地址,地方,密码,命令,位置,发行,权威,linux的命令到底从哪里输入的?可以在 Windows 上运行 Linux 命令linux输入过的命令?
linux输入过的命令?,系统,地址,数字,命令,工具,工作,环境,界面,历史,指令,linux系统查看自己在linux上使用过的前10次命令1、首先打开Linux直用linux命令输出id?
用linux命令输出id?,系统,设备,工作,信息,地址,命令,工具,基础,目录,进程,linux命令SCSI_IDscsi_id是通过sg驱动,向设备发送EVPD page80或page8linux输入上条命令?
linux输入上条命令?,系统,命令,工作,电脑,数字,时间,管理,工具,第一,网上,linux中的命令如何输入linux常用命令:pwd命令该命令的英文解释为prinlinux输入命令的地方?
linux输入命令的地方?,系统,管理,单位,地址,地方,密码,命令,位置,发行,权威,linux的命令到底从哪里输入的?可以在 Windows 上运行 Linux 命令