#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 .