Поиск слова с максимальным количеством POS-тегов

Учитывая помеченный корпус, я пытаюсь найти слово с наиболее четкими тегами. А также, какие теги они есть.

import nltk
from nltk.corpus import brown
from operator import itemgetter

cfd = nltk.ConditionalFreqDist((word, tag) for word, tag in brown.tagged_words())

total_tags = [(word, cfd[word].B(), cfd[word].keys()) for word in cfd.conditions()]
#returns elements like ('The', 3, dict_keys(['AT', 'AT-TL', 'AT-HL'])\
#(word, number of distinct tags, distinct tags)

sorted(total_tags, key = itemgetter(1), reverse = True)[0]
#returns ('that', 12,dict_keys(['CS', 'WPS', 'DT', 'QL', 'WPO', 'CS-HL', 'DT-NC', 'NIL', 'WPS-NC', 'WPO-NC', 'CS-NC', 'WPS-HL']))

Я хочу знать, есть ли более эффективный способ сделать это. Я знаю, что получаю правильный ответ, но не хватает ли какой-нибудь функции, которая может уменьшить количество итераций или сделать решение более эффективным?

0 ответов

Другие вопросы по тегам