В WordNet каждая лемма имеет счетчик частот, который возвращается методом lemma.count()
и который сохраняется в файле nltk_data/corpora/wordnet/cntlist.rev
.
Пример кода:
from nltk.corpus import wordnet
syns = wordnet.synsets('stack')
for s in syns:
for l in s.lemmas():
print l.name + " " + str(l.count())
Результат:
stack 2
batch 0
deal 1
flock 1
good_deal 13
great_deal 10
hatful 0
heap 2
lot 13
mass 14
mess 0
...
Однако многие отсчеты равны нулю, и в исходном файле или в документации отсутствует информация о том, какой корпус использовался для создания этих данных.Согласно книге Обработка речи и языка от Даниэля Джурафски и Джеймса Х. Мартина, чувственные частоты поступают из корпуса SemCor , который является подмножеством ужемаленький и устаревший Brown Corpus.
Так что, вероятно, лучше выбрать корпус, который лучше всего подходит для вашего приложения, и создать данные самостоятельно, как предложил Кристофер.
Чтобы сделать этот Python3.x совместимым простоdo:
Пример кода:
from nltk.corpus import wordnet
syns = wordnet.synsets('stack')
for s in syns:
for l in s.lemmas():
print( l.name() + " " + str(l.count()))