Фильтр шаблонов POS?

#nlp #nltk

#nlp #nltk

Вопрос:

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

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

Спасибо, Дэйв

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

 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:

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

Комментарии:

1. Более свежие ссылки, которые, вероятно, будут полезны для кого-то еще: NLTK book — CH7 — Chunking и NLTK HowTo — on Chunking .