我希望使用 NLTK 获得单个单词和句子中每个单词之间的相似性。
NLTK可以得到两个特定单词之间的相似度,如下所示。此方法要求给出对该单词的具体引用,在本例中为“dog.n.01”,其中狗是名词,我们希望使用第一个 (01) NLTK 定义。
dog = wordnet.synset('dog.n.01')
cat = wordnet.synset('cat.n.01')
print dog.path_similarity(cat)
>> 0.2
问题是我需要从句子中的每个单词中获取词性信息。 NLTK 包能够获取句子中每个单词的词性,如下所示。但是,这些语音部分(“NN”、“VB”、“PRP”...)与同义词集作为参数的格式不匹配。
text = word_tokenize("They refuse to permit us to obtain the refuse permit")
pos_tag(text)
>> [('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'), ('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]
是否可以从 NLTK 中的 pos_tag() 结果获取 synset 格式的数据?通过同义词集格式化我的意思是这样的格式dog.n.01