Estoy tratando de extraer datos de algunos archivos de texto grandes que contienen entradas sobre personas. El problema es, sin embargo, que no puedo controlar la forma en que los datos me llegan.Procesamiento de datos de texto con formato incorrecto con aprendizaje automático o NLP
Por lo general, en un formato como este:
apellido, nombre MiddleName (Tal vez un apodo) ¿Por qué es este texto hereJanuary, 25, 2012
Nombre Apellido 2001 un texto que yo no' t se preocupan por
Apellido, nombre, bla, bla ... 25 enero de 2012 ...
Actualmente, estoy usando un enorme regex que divide todas las palabras kindaCamelcase
, todas las palabras que tienen un nombre de mes añadido al final y muchos casos especiales para los nombres. Luego uso más expresiones regulares para extraer muchas combinaciones para el nombre y la fecha.
Esto parece no ser óptimo.
¿Hay alguna biblioteca de aprendizaje automático para Python que pueda analizar datos malformados que estén algo estructurados?
He intentado con NLTK, pero no ha podido manejar mis datos sucios. Estoy retocando con Orange en este momento y me gusta el estilo OOP, pero no estoy seguro si estoy perdiendo el tiempo.
Idealmente, me gustaría hacer algo como esto para entrenar a un analizador (con muchos pares de entrada/salida):
training_data = (
'LASTNAME, Firstname Middlename (Maybe a Nickname)FooBarJanuary 25, 2012',
['LASTNAME', 'Firstname', 'Middlename', 'Maybe a Nickname', 'January 25, 2012']
)
es algo como esto sea posible o estoy sobreestimar la máquina de aprendizaje? Cualquier sugerencia será apreciada, ya que me gustaría aprender más sobre este tema.
Debería proporcionarnos más datos de muestra que nos ayuden a comprender el tipo de cosas extrañas que uno esperaría ver en sus datos. –
¿También está seguro de que no puede ponerse en contacto con los proveedores de datos para averiguar cómo están generando estos datos en primer lugar? Tal vez haya K fuentes diferentes de su final, cada una de las cuales usa un estilo específico bien definido. –
Lamentablemente, esas son las restricciones que tengo. Los datos que obtengo ya se han agregado a una gran base de datos y no se pueden modificar. – Blender