Teniendo muchos documentos de texto (en lenguaje natural, no estructurado), ¿cuáles son las posibles formas de anotarlos con algunos metadatos semánticos? Por ejemplo, considere un documento corto:
I saw the company's manager last day.
Para poder extraer información de él, debe anotarse con datos adicionales para que sea menos ambiguo. El proceso de búsqueda de estos metadatos no está en duda, por lo tanto, suponga que se hace manualmente. La pregunta es cómo almacenar estos datos de manera que se puedan realizar análisis adicionales de manera más conveniente / eficiente.
Un posible enfoque es usar etiquetas XML (ver más abajo), pero parece demasiado detallado, y tal vez haya mejores enfoques / pautas para almacenar dichos metadatos en documentos de texto.
<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.
nlp
metadata
data-cleaning
text-mining
Amir Ali Akbari
fuente
fuente
Respuestas:
Personalmente, recomendaría usar algo que no sea específico para el campo de PNL, y algo que sea lo suficientemente general como para que pueda usarse como herramienta, incluso cuando haya comenzado a moverse más allá de este nivel de metadatos. Especialmente elegiría un formato que se pueda utilizar independientemente del entorno de desarrollo y uno que pueda mantener una estructura básica si eso se vuelve relevante (como la tokenización)
Puede parecer extraño, pero honestamente sugeriría
JSON
. Está extremadamente bien soportado, es compatible con una gran cantidad de estructura y es lo suficientemente flexible como para que no tenga que moverse de él por no ser lo suficientemente poderoso. Para su ejemplo, algo como esto:La gran ventaja que tiene sobre cualquier formato específico de PNL aquí es que
JSON
se puede analizar en cualquier entorno, y dado que probablemente tendrá que editar su formato de todos modos, JSON se presta a ediciones muy simples que le brindan una corta distancia a otros formatos.También puede almacenar implícitamente información de tokenización si desea:
EDITAR: Para aclarar el mapeo de metadatos es bastante abierto, pero aquí hay un ejemplo:
Espero que ayude, avíseme si tiene más preguntas.
fuente
En general, no desea utilizar etiquetas XML para etiquetar documentos de esta manera porque las etiquetas pueden superponerse.
Los marcos UIMA , GATE y NLP similares denotan las etiquetas separadas del texto. Cada etiqueta, tales como
Person
,ACME
,John
etc. se almacena como la posición que comienza la etiqueta y la posición que se acaba. Entonces, para la etiquetaACME
, se almacenaría como comenzando una posición 11 y terminando en la posición 17.fuente
La herramienta de anotación mocoso podría ser útil para usted según mi comentario. He probado muchos de ellos y este es el mejor que he encontrado. Tiene una interfaz de usuario agradable y puede admitir varios tipos diferentes de anotaciones. Las anotaciones se almacenan en un archivo .annot separado que contiene cada anotación, así como su ubicación dentro del documento original. Sin embargo, una advertencia: si finalmente desea alimentar las anotaciones en un clasificador como la herramienta NER de Stanford, entonces tendrá que hacer alguna manipulación para obtener los datos en un formato que acepte.
fuente
Describir todos los datos existentes es una tarea muy difícil, pero podemos usar un modelo de datos: http://schema.org/ , donde se encuentran los tipos estructurales de la información. La ejecución previa tenía como objetivo implementar la tecnología MarkUp, por lo que parece ser útil para su tarea.
fuente