@Blender は、 の空白の感度について正しかったですword.synsets()
。自然言語で空白synsets
を含むものにアクセスする必要がある場合、Wordnet は の代わりにアンダースコアを使用します。たとえば、NLTK WN インターフェイスから synsets にアクセスするようなものを見つけたい場合は、 _
kick the bucket
wn.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 を使用してからupdate
setを使用することだと思います
>>> list_of_synsets = set()
>>> for i in words_from_file:
>>> list_of_synsets.update(wordnet.synsets(i))
>>> print list_of_synsets