2009-12-09 15 views
5

Tengo un texto de entrada, que contiene uno o más nombres de persona humana. No tengo ningún diccionario para estos nombres. ¿Qué biblioteca de Java puede ayudarme a definir nombres de mi texto de entrada? Miré a través de OpenNLP, pero no encontré ningún ejemplo o guía, o al menos una descripción de cómo se puede aplicar a mi código. (Vi javadoc, pero es una documentación bastante pobre para un proyecto así.)Cómo definir los nombres de las personas en texto (Java)

Quiero encontrar nombres de algún texto al azar. Si el texto de entrada es "Mi amigo Joe Smith fue a la tienda", entonces quiero obtener "Joe Smith". Creo que debería haber algunos diccionarios lo suficientemente grandes en motores inteligentes, basados ​​en diccionarios más pequeños, que puedan entender los nombres humanos.

+0

¿Estás tratando de identificar, por ejemplo, un nombre que aparece en una frase? es decir, dado "Mi amigo Joe fue a la tienda". quieres "Joe"? – Seth

+2

Por favor, aclare su pregunta! No puede "definir" nombres, fueron creados históricamente. "Julius", por ejemplo, es un nombre romano. ¿Cómo se ve el texto y qué tipo de procesamiento debe hacer con él? –

+3

Creo que el autor quiere extraer los nombres de personas del texto no estructurado usando una biblioteca Java, posiblemente usando OpenNLP, pero no puede encontrar un ejemplo o una buena documentación sobre cómo lograr esto. – DrDee

Respuesta

0

También puede ver a través de OpenCyc y proyectos de WordNet como más interesantes desde el punto de vista semántico.

3

OpenNLP tiene el nombre de reconocimiento de entidad. Consulte la sección English Name Finding en los documentos. Pero mi experiencia sugiere que identifica entidades pero no hay etiquetas asociadas a ella. (Para ser precisos, encontré las etiquetas ambiguamente asignadas). Por lo tanto, si tiene la frase "Mi amigo Joe Smith fue a la tienda Walmart", OpenNLP identifica dos entidades nombradas: "Joe Smith" y "Walmart". No pude conseguir que etiquetara "Joe Smith" como Person y "Walmart" como Organización.

Según lo sugerido por Matt, puede probar LingPipe, aunque es una herramienta comercial. Algunas de las alternativas de código abierto son MorphAdorner y Stanford NER.

1

OpenNLP tiene un tipo de persona en su modelo NER. descargue el proyecto y los modelos del sitio web de opennlp y obtenga los modelos del sitio web de los modelos (hay un enlace en la página de Opennlp). Luego, vaya aquí, http://www.asksunny.com/drupal/?q=node/4, es un buen ejemplo de cómo cargar los modelos y realizar NER. NER nunca es perfecto, así que no te decepciones.

1

Este problema se aborda en el reconocimiento de entidades nombradas en el procesamiento de lenguaje natural y, en este momento, se considera que es un problema un poco difícil. Sin embargo, hay muchas herramientas que puede usar para eso. He usado stanford NER para esto y es un buen software.

1

Le sugiero que utilice stanford Name Entity Recognizer (NER). Stanford NER proporciona muchos clasificadores. Uno de los clasificadores proporcionados por stanford NER puede identificar el nombre, la ubicación y la organización de un texto determinado.

Usted puede encontrar una demostración en línea de Stanford NER en este enlace http://nlp.stanford.edu:8080/ner/

Cuestiones relacionadas