POS Pattern Filter? - PullRequest
       6

POS Pattern Filter?

5 голосов
/ 11 апреля 2011

Я пишу некоторый код, который повторяет набор POS-тегов (сгенерированных pos_tag в NLTK) для поиска POS-шаблонов. Соответствующие наборы POS-тегов сохраняются в списке для последующей обработки. Конечно, для такой задачи уже существует фильтр шаблонов в стиле регулярных выражений, но пара начальных поисков в Google ничего мне не дала.

Существуют ли какие-нибудь фрагменты кода, которые могут выполнить мою POS-фильтрацию для меня?

Спасибо, Dave

РЕДАКТИРОВАТЬ: полное решение (с использованием RegexParser и где сообщения - любая строка)

text = nltk.word_tokenize(message)
tags = nltk.pos_tag(text)
grammar = r"""
    RULE_1: {<JJ>+<NNP>*<NN>*}
    """
chunker = nltk.RegexpParser(grammar)
chunked = chunker.parse(tags)
def filter(tree):
    return (tree.node == "RULE_1")
for s in chunked.subtrees(filter):
    print s

Проверьте http://nltk.googlecode.com/svn/trunk/doc/book/ch07.html и http://www.regular -expressions.info / reference.html , чтобы узнать больше о создании правил.

1 Ответ

3 голосов
/ 11 апреля 2011

Я думаю, что вы ищете RegexpChunkParser.

...