nlp - stopwords - ¿Filtro de patrón POS?
nltk stopwords (1)
Creo que estás buscando RegexpChunkParser
.
Estoy escribiendo un código que itera un conjunto de etiquetas POS (generadas por pos_tag en NLTK) para buscar patrones de POS. Los conjuntos coincidentes de etiquetas POS se almacenan en una lista para su posterior procesamiento. Seguramente ya existe un filtro de patrón de estilo regex para una tarea como esta, pero un par de búsquedas iniciales de Google no me dieron nada.
¿Hay algún fragmento de código por ahí que pueda hacer mi filtrado de patrón POS para mí?
Gracias, Dave
EDITAR: Solución completa (usando RegexParser, y donde los mensajes son cualquier cadena)
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
Consulte http://nltk.googlecode.com/svn/trunk/doc/book/ch07.html y http://www.regular-expressions.info/reference.html para obtener más información sobre cómo crear las reglas.