2015-03-19 10 views
0

Есть ли теггер, который вернет один тег для слова в любом контексте, может быть?Tagger для отдельных слов в NLTK

Мое требование состоит в том, что мне нужно извлечь слова из неструктурированного текста, где предложения не будут иметь структурированную грамматику.

POS-тегеры предназначены для работы с предложениями и возвращают тег для слова в зависимости от контекста слова в этом предложении. Таким образом, я либо должен был бы использовать другой теггер, который бы дал мне один и тот же тег для определенного слова каждый раз или использовал все возможные теги для слова во время chunking.

Любые другие решения были бы высоко оценены. Кроме того, как вы можете просмотреть все теги, которые могут быть назначены для определенного слова?

ответ

1

См: http://www.nltk.org/_modules/nltk/tag.html

В частности:

>>> from nltk.corpus import brown 
>>> from nltk.tag import UnigramTagger 
>>> tagger = UnigramTagger(brown.tagged_sents(categories='news')[:500]) 
>>> sent = ['Mitchell', 'decried', 'the', 'high', 'rate', 'of', 'unemployment'] 
>>> for word, tag in tagger.tag(sent): 
...  print(word, '->', tag) 
Mitchell -> NP 
decried -> None 
the -> AT 
high -> JJ 
rate -> NN 
of -> IN 
unemployment -> None 

Идея UnigramTagger является то, что он всегда присваивает тег, который был наиболее заметным для этого конкретного слова в учебном корпусе. Или (чуть выше кусок кода в документации:

Этот пакет определяет несколько Taggers, которые занимают лексемы список (обычно предложение), присвоить метку для каждого маркера, и возвратить полученный список . меченые маркеры большинство Taggers создаются автоматически на основе учебного корпуса, например, Юниграмма Таггер теги каждое слово ж , проверяя, что наиболее часто тег для ш был в учебном корпусе:.

Не уверен, есть ли встроенный способ просмотра всех тегов, которые могут быть назначены определенному слову. Более того; это теоретически может быть до тех пор, пока общее количество идентифицированных тэгов зависит от контекста. Если вы хотите, чтобы у вас появилась идея; что бы я сделал, просто пометить весь свой словарный запас и распечатать свой словарь со всеми разными тегами, назначенными в этом конкретном корпусе.