Определите слово как существительное, глагол или прилагательное

Учитывая одно слово, такое как "таблица", я хочу определить, как оно чаще всего используется, является ли его наиболее распространенным употреблением существительное, глагол или прилагательное. Я хочу сделать это в Python. Есть ли что-нибудь еще кроме wordnet? Я не предпочитаю Wordnet. Или, если я использую Wordnet, как бы я сделал это именно с этим?

2 ответа

import nltk


text = 'This is a table. We should table this offer. The table is in the center.'
text = nltk.word_tokenize(text)
result = nltk.pos_tag(text)
result = [i for i in result if i[0].lower() == 'table']

print(result) # [('table', 'JJ'), ('table', 'VB'), ('table', 'NN')]

Если у вас есть слово вне контекста и вы хотите знать его наиболее распространенное использование, вы можете взглянуть на чей-то частотный список (например, wordnet), или вы можете сами рассчитывать: просто найдите помеченный корпус, достаточно большой для ваших целей, и сосчитать его экземпляры. Если вы хотите использовать бесплатный корпус, NLTK включает в себя корпус Брауна (1 миллион слов). NLTK также предоставляет методы для работы с более крупными несвободными корпусами (например, с Британским национальным корпусом).

import nltk
from nltk.corpus import brown
table = nltk.FreqDist(t for w, t in brown.tagged_words() if w.lower() == 'table')
print(table.most_common())

[('NN', 147), ('NN-TL', 50), ('VB', 1)]
Другие вопросы по тегам