Я пытаюсь извлечь данные из нескольких больших текстовых файлов, содержащих записи о людях. Однако проблема в том, что я не могу контролировать способ получения данных.
Обычно он имеет следующий формат:
ФАМИЛИЯ, Имя Отчество (возможно, псевдоним) Почему здесь этот текст 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']
)
Возможно ли что-то подобное, или я переоцениваю машинное обучение? Мы будем благодарны за любые предложения, так как я хотел бы узнать больше по этой теме.