1

我想找到一个法语单词的所有同义词。我已经实现了使用此代码:

从 nltk.corpus 导入 nltk import wordnet syns=[synset.lemma_names('fra') for synset in wordnet.synsets('maison', lang='fra')] print(syns)

该程序输出上下文相似性而不是语义相似性,并且也没有输出共轭动词。

请问有什么想法吗?

谢谢

4

1 回答 1

1

基于这篇文章,我建议这个解决方案:

from nltk.tokenize import TreebankWordTokenizer
from nltk.wsd import lesk
from nltk.corpus import wordnet as wn

# ['als', 'arb', 'cat', 'cmn', 'dan', 'eng', 'eus', 'fas',
# 'fin', 'fra', 'fre', 'glg', 'heb', 'ind', 'ita', 'jpn', 'nno',
# 'nob', 'pol', 'por', 'spa', 'tha', 'zsm']
lang='fra'

sent = TreebankWordTokenizer().tokenize("Je voudrai essayer avec cette phrase")
synsets = [lesk(sent, w, 'n') for w in sent]
print(synsets)

for ws in sent:
    for ss in [n for synset in wn.synsets(ws, lang=lang) for n in synset.lemma_names(lang)]:
        print((ws, ss), '\n')

结果如下:

[无,无,Synset('trier.n.02'),无,无,Synset('phrase.n.04')]

('杰','杰')

('Je','Moi')

('Je','iode')

('杰','杰')

('Je','Moi')

('散文家','散文家')

('散文家','散文家')

('essayer','rendre')

(“散文家”,“提请者”)

('散文家','散文家')

('散文家','goût')

('散文家','goûter')

('essayer','priser')

(“散文家”,“提请者”)

('散文家','假设者')

('散文家','企业家')

('散文家','散文家')

(“散文家”,“提请者”)

('散文家','散文家')

('散文家','渴望者')

('散文家','chercher')

('散文家','散文家')

(“散文家”,“律师”)

('散文家','tendre')

('散文家','trouver')

('散文家','entendre')

('散文家','散文家')

('散文家','决定者')

('散文家','散文家')

('散文家','juge')

('散文家','juger')

(“散文家”,“提请者”)

('散文家','chercher')

('散文家','执行者')

('散文家','散文家')

(“散文家”,“提请者”)

('散文家','散文家')

('散文家','测试者')

('essayer', '验证者')

(“短语”,“诅咒者”)

('短语','短语')

('短语','诅咒')

('短语','信念')

('短语','判断')

('短语','短语')

('短语','句子')

('短语','短语')

('短语','连接')

('短语','表达')

('短语','演讲')

('短语','短语')

(“短语”,“句法”)

('短语','短语')

('短语','théorème')

('短语','演讲')

('短语','短语')

(“短语”,“句法”)

('短语','运动')

('短语','短语')

('短语','délai')

(“短语”,“持续时间”)

('短语','fois')

('短语','判断')

('短语','longtemps')

('短语','peine')

('短语','短语')

(“短语”,“临时”)

于 2020-11-19T10:17:46.097 回答