我想找到一个法语单词的所有同义词。我已经实现了使用此代码:
从 nltk.corpus 导入 nltk import wordnet syns=[synset.lemma_names('fra') for synset in wordnet.synsets('maison', lang='fra')] print(syns)
该程序输出上下文相似性而不是语义相似性,并且也没有输出共轭动词。
请问有什么想法吗?
谢谢
基于这篇文章,我建议这个解决方案:
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')
('短语','短语')
(“短语”,“临时”)