使用NLTK或Spacy查找CallTaxi、人工智能等复合词的同义词?

2024-05-12 20:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

使用NLTK或Spacy可以很容易地找到Python中的同义词,例如Cat、Dog、Happy或sad,但是当涉及到人工智能或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

使用带有下划线的人工智能也不起作用


Tags: namesspacy人工智能catprinthappydog同义词
2条回答

尝试使用sense2vec,或者使用一个预先训练好的模型,或者自己在像维基百科这样的大型语料库上进行训练。您可以查看它的演示here

但这对“叫出租车”不起作用,对于多词表达,它只对名词短语起作用

如果你想让类似的短语“call taxi”而不是同义词,这更像是一个语义相似性问题,或者是一个释义问题。如果没有更多的上下文,我甚至不知道你想要什么“叫出租车”-“叫出租车”,“叫出租车”,诸如此类?那是一个更难的问题

作为起点,

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

打印“AI”

它不适用于“call_taxi”,但对于基本用法来说仍然很有趣

相关问题 更多 >