【问题标题】:Similarity between two words with pre-trained NLTK wordnet两个词与预训练的 NLTK 词网的相似度
【发布时间】:2020-07-25 14:06:16
【问题描述】:

我想比较两个单词的相似度得分。 我使用了来自 nltk.corpus 的 wordnet。

from nltk.corpus import wordnet
nltk.download('wordnet')    
w1 = wordnet.synset("price" '.n.01')  #wordnet.lemmas(i2)[0]
w2 = wordnet.synset("amount" + '.n.01') 
print(w1.wup_similarity(w2))

我得到了相似度分数,但是,它只适用于名词之间,但是,我需要的是比较形容词或其他类型单词之间的名词。

例如下面,我需要将“昂贵”(形容词)之类的词与“价格”进行比较。

我想要一个带有预训练模型的库,因为我需要一个可以处理任何领域中任何单词的模型

词嵌入呢?

【问题讨论】:

    标签: nlp nltk wordnet word-embedding


    【解决方案1】:

    我认为您可以尝试使用 GloVE 预训练嵌入来查找单词相似度。它信息丰富,并在整个维基百科语料库上进行了训练。但是,您的单词必须限于它的词汇量(即仅限于它已经训练过的单词),尽管这非常大并且几乎涵盖了我认为的所有重要的英语单词。 对于 Glove 嵌入,两个词向量之间的余弦相似度可以很好地衡量它们在意义或意义上的接近程度。 即

    from scipy import spatial
    
    dataSetI = [3, 45, 7, 2]
    dataSetII = [2, 54, 13, 15]
    result = 1 - spatial.distance.cosine(dataSetI, dataSetII)
    

    如果你想使用 word2vec 词向量,你也可以使用 spacy。 p>

    【讨论】:

    • 谢谢!!我将 word2vec 与 spacy 一起使用,它就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2020-06-02
    • 2013-03-20
    • 2020-03-29
    • 1970-01-01
    • 2019-03-02
    相关资源
    最近更新 更多