2009-11-06 16 views

Respuesta

9

Puede salir de la caja llamada fragmentación de entidad con el método nltk.ne_chunk(). Toma una lista de tuplas marcados POS:

nltk.ne_chunk([('Barack', 'NNP'), ('Obama', 'NNP'), ('lives', 'NNS'), ('in', 'IN'), ('Washington', 'NNP')])

resultados en:

Tree('S', [Tree('PERSON', [('Barack', 'NNP')]), Tree('ORGANIZATION', [('Obama', 'NNP')]), ('lives', 'NNS'), ('in', 'IN'), Tree('GPE', [('Washington', 'NNP')])])

Identifica Barack como persona, pero Obama como organización. Entonces, no es perfecto.

+1

¿Qué pasa si no estoy muy preocupado por named_entities, pero fragmentar en general. Por ejemplo, "el perro amarillo" es un pedazo, y "se está ejecutando" es un pedazo. – TIMEX

+0

Sí, por eso, no hay ningún defecto que yo sepa (aunque no sé todo sobre nltk, sin duda). Podría usar un RegexpChunkParser, aunque deberá desarrollar las reglas usted mismo. Aquí hay un ejemplo: http://gnosis.cx/publish/programming/charming_python_b18.txt – ealdent

8

No pude encontrar un analizador chunker/shallow predeterminado tampoco. Aunque el libro describe cómo construir y entrenar a uno con características de ejemplo. Próximamente con características adicionales para obtener un buen rendimiento no debería ser demasiado difícil.

Consulte la sección del Capítulo 7 en Training Classifier-based Chunkers.

Cuestiones relacionadas