TaggedCorpusReader и UnigramTagger в nltk (python) - PullRequest
0 голосов
/ 28 декабря 2011

Я пытаюсь использовать nltk для автоматической категоризации новостных статей очень по-фо.Я создал собственный набор пар слов / тегов, соответствующих моим категориям (например, учитель / EDU, компьютер / TECH и т. Д.), Я читал вокруг, и этот вопрос довольно близко приблизил меня,но я все еще застрял.

Основываясь на моем коде, как я могу использовать тег для пометки моего предложения?

import nltk

# Loads my custom word/tag corpus
from nltk.corpus.reader import TaggedCorpusReader
reader = TaggedCorpusReader('taggers','.*')

#Sets up the UnigramTagger
default_tagger = nltk.data.load(nltk.tag._POS_TAGGER)
tagger = nltk.tag.UnigramTagger(model=reader.tagged_words(), backoff=default_tagger)

#Sample content
sent = 'The students went to school to ask their teacher what the homework for the day was but she told them to check their email.'
tokens = nltk.tokenize.word_tokenize(sent)

# Sad Panda
tagged = tagger.tag(tokens) 
# ^ produces AttributeError: 'ConcatenatedCorpusView' object has no attribute 'get'

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

1 Ответ

2 голосов
/ 28 декабря 2011

Тегеры предназначены для пометки части речи, а не для классификации текста. Взгляните на корпус Reuters - он разбивает новостные статьи на несколько категорий, используя файл категорий. Затем посмотрите на модуль nltk.classify и прочтите, как обучать текстовые классификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...