寻找复合词的同义词,如叫出租车,使用NLTK或Spacy的人工智能



Python中的同义词可以很容易地使用NLTK或Spacy来查找单个单词,如Cat、Dog、Happy或sad。但当涉及到诸如Artificial-Intelligence或Call Taxi之类的复合词时,语言处理器总是为每个标记提供输出,而不是为整个单词提供同义词;智力——智力、大脑、心智。但我需要找到人工智能的同义词,作为一个单一的复合词,它应该产生像机器人、系统智能之类的结果;,等等。如果有人给我一个小片段,我会很高兴。

> from nltk.corpus import wordnet as wn print
> wn.synset("eat.v.01").lemma_names # prints synonyms of eat print
> wn.synset("Artificial Intelligence").lemma_names # throws WordNetError

将Artificial_Intelligence与下划线一起使用也不起作用。

作为起点,

print(wn.synset("artificial_intelligence.n.01").lemma_names())

打印"AI"。

它不适用于";call_taxi";但对于基本用途来说,它仍然很有趣。

尝试使用sense2vec,可以与预先训练的模型之一一起使用,也可以在像维基百科这样的大型语料库上自己训练。你可以在这里查看它的演示。

这对";叫出租车";不过,对于多词表达,它只适用于名词短语。

如果你想要类似的短语";叫出租车";这些不会被称为同义词,它更像是一个语义相似性问题,或者可能是一个转述问题。如果没有更多的上下文,我甚至不确定你想要什么";叫出租车"-"点出租车"呼叫驾驶室";,像那样的东西?这是一个更困难的问题。

最新更新