@Blender は、 の空白の感度について正しかったですword.synsets()。自然言語で空白synsetsを含むものにアクセスする必要がある場合、Wordnet は の代わりにアンダースコアを使用します。たとえば、NLTK WN インターフェイスから synsets にアクセスするようなものを見つけたい場合は、 _kick the bucketwn.synsets("kick_the_bucket")
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('kick the bucket')
[]
>>> wn.synsets('kick_the_bucket')
[Synset('die.v.01')]
ただし、WordNet がアンダースコアの代わりにダッシュを使用して synset をエンコードしている場合があることに注意してください。たとえば9-11、アクセス可能ですが、9_11そうではありません。
>>> wn.synsets('9-11')
[Synset('9/11.n.01')]
>>> wn.synsets('9_11')
[]
コードの問題を解決します。
1.ファイルを 1 行ずつ読み取ると、その行に存在する見えないファイルも読み取られます\n。したがって、これを変更する必要があります:
>>> mylist = []
>>> file1 = open("medDict.txt", "r")
これに:
>>> words_from_file = [i.strip() for i in open("medDict.txt", "r")]
2.あなたが本当に を望んwordnet.synsets(word)[0]でいるかどうかはよくわかりませんMost Frequent Sense (MFS). したがって、これを行う代わりに:
>>> wordFromList2 = wordnet.synsets(line)[0]
>>> mylist.append(wordFromList2)
setより適切な方法は、代わりにa を使用してからupdatesetを使用することだと思います
>>> list_of_synsets = set()
>>> for i in words_from_file:
>>> list_of_synsets.update(wordnet.synsets(i))
>>> print list_of_synsets