0

我一直在从事文本分析任务。我应该在哪里识别段落中最常用的单词。

为此,我正在使用 algorithmia - npm 包。这为我提供了文本中重复次数最多的单词。

该软件包工作得很好,但我仍然有两个问题:

(1) 我得到一个标签数组,如下所示:

['integrate', 'integration', 'policy', 'conversation', 'demo', 'test']

在这里,“整合”和“整合”都具有相同的含义。我想避免在这里“整合”。

(2) 该过程使用重复最多的词来识别标签。我的输入段落中有“定价”、“成本”、“付款”等词,但由于它不完全匹配,我没有得到“成本”或类似的标签。

改进其中一个逻辑将帮助我完成任务。


我已经尝试了许多同义词、名词、动词等库。但似乎没有成功。让提一下我已经尝试过的软件包:

词库-com

句子相似度

字符串相似度

妥协

词网

节点雪球

数据缪斯


我还尝试设置一个阈值并匹配“集成”和“集成”这两个词,它确实删除了“集成”标签,但也影响了我需要在那里的一些其他标签。


提前致谢

4

1 回答 1

2

您的问题在于自然语言理解的深处。您不仅要处理“查找”相似的单词,还要处理单词下的概念。

在您的情况下,“集成”和“集成”根本不相似。它们甚至不是同义词。一个是动词,另一个是名词,一个是动作,另一个是情况。

他们所做的是他们共享一个共同的语义根 -> 将事物作为一个整体的想法。

没有可用的工具(截至目前)可以做到这一点。您可以混合使用多种工具。

您提到 Wordnet 并说它不起作用。但是,这可能是解决您的问题的最佳选择。Wordnet 自己的解释显示了它在您的情况下如何有用:

“[在 WordNet 中] 名词、动词、形容词和副词被分组为一组认知同义词(同义词),每个同义词表达一个不同的概念。同义词通过概念语义和词汇关系相互关联。” 并且 “WordNet 表面上类似于同义词库,因为它根据词义将词组合在一起。但是,有一些重要的区别。首先,WordNet 不仅将单词形式(字母串)相互链接,而且将词的特定含义相互链接。因此,在网络中发现的彼此非常接近的单词在语义上是消除歧义的。” - WordNet 官方网站

使用 wordnet,您可以找到真正的同义词并将它们组合在一起(例如,“定价”和“成本”-“付款”是另一回事......)。

现在,关于你原来的“整合”和“整合”,如果你真的想把它们组合在一起,添加另一个启发式方法,它使用词干分析器根据词干将词打包在一起(不能保证 100% 的时间工作,因为它取决于词干分析器规则)。

于 2019-09-26T11:52:59.673 回答