Обработка искаженных текстовых данных с помощью машинного обучения или NLP

Я пытаюсь извлечь данные из нескольких больших текстовых файлов, содержащих записи о людях. Однако проблема в том, что я не могу контролировать способ получения данных.

Обычно он имеет следующий формат:

ФАМИЛИЯ, Имя Отчество (возможно, псевдоним) Почему здесь этот текст 25 января 2012 г.

Имя Фамилия 2001 Некоторый текст, который меня не интересует

Фамилия, Имя бла-бла ... 25 января 2012 г. ...

В настоящее время я использую огромное регулярное выражение, которое разбивает все своего рода Camelcase слова, все слова, которые имеют название месяца прикреплено к концу, и много особых случаев для имен. Затем я использую больше регулярных выражений, чтобы извлечь множество комбинаций имени и даты.

Это кажется неоптимальным.

Существуют ли библиотеки машинного обучения для Python, которые могут анализировать искаженные данные, которые в некоторой степени структурированы?

Я пробовал NLTK, но он не смог обработать мои грязные данные. Я сейчас играю с Orange, и мне нравится его стиль ООП, но я не уверен, что зря трачу время.

В идеале, я бы хотел сделать что-то вроде этого для обучения синтаксического анализатора (со многими парами ввода / вывода):

training_data = (
  'LASTNAME, Firstname Middlename (Maybe a Nickname)FooBarJanuary 25, 2012',
   ['LASTNAME', 'Firstname', 'Middlename', 'Maybe a Nickname', 'January 25, 2012']
)

Возможно ли что-то подобное, или я переоцениваю машинное обучение? Мы будем благодарны за любые предложения, так как я хотел бы узнать больше по этой теме.

8
задан Blender 26 January 2012 в 03:03
поделиться