Справка: извлечение кортежей данных из текста ... режима или машинного обучения?

StackOverflow https://stackoverflow.com/questions/6323740

Вопрос

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

Проблема: извлеките кортеж данных из данного текста.

Вот некоторые характеристики данных.

  1. Словарь (слова) в тексте ограничен определенным доменом. Давайте предполагаем больше 100-200 слов.

  2. Текст, который необходимо проанализировать, является заголовком, подобным данным автомобильной рекламы, показанных ниже. Таким образом, каждая запись соответствует одному кортежу (строку).

  3. В некоторых случаях некоторые из атрибутов могут отсутствовать. Так, например, в необработанной строке данных № 5 ниже года отсутствует.

  4. Некоторые слова идут вместе (Bigrams). Как "низкие мили".

  5. Исторические данные доступны = 10000 записей

  6. Входящие новые объем данных = 1000-1500 записей / неделя

Ожидаемый выход должен быть в форме (год, Make, Model, функции). Так что выход должен выглядеть как

1 -> (2009, Ford, Fusion, SE)
2 -> (1997, Ford, Taurus, Wagon)
3 -> (2000, Mitsubishi, Mirage, DE)
4 -> (2007, Ford, Expedition, El Limited)
5 -> (Honda, Accord, Ex)
....
....

Необработанные данные заголовка:


1 -> 2009 Ford Fusion SE - $ 7000
2 -> 1997 Ford Taurus Wagon - $ 800 (San Jose East)
3 -> '00 Mitsubishi Mirage de - $ 2499 (Saratoga) Pic
4 -> 2007 Ford Expedition EL Limited - $ 7800 (x)
5 -> Honda Accord Ex Low Miles - $ 2800 (Dublin / Pleasanton / Livermore) Pic
6 -> 2004 Honda Odassey LX 68K Miles - $ 10800 (Danville / San Ramon)
7 -> 93 Линкольн Марк - 2000 долл. США (Окленд Восток) PIC
8 -> ####### 2006 Lexus GS 430 Black On Black 114KMI ####### - $ 19700 (Сан -Рафаэль) PIC
9 -> 2004 Audi A4 1.8T FWD - $ 8900 (Сакраменто) PIC
10 -> ####### 2003 GMC C2500 HD EX -CAB 6.0 V8 EFI White 4x4 ####### -$ 10575 (Сан -Рафаэль) PIC
11 -> 1990 Toyota Corolla работает хорошо! Газовой запас! 5 -скорость чисто! REG 2011 OBO - $ 1600 (Hayward / Castro Valley) PIC IMG
12 -> Honda Accord Ex 2000 - $ 4900 (Dublin / Pleasanton / Livermore) Pic
13 -> 2009 г. Chevy Silverado Lt Crew Cab - $ 23900 (Dublin / Pleasanton / Livermore) Pic
14 -> 2010 Acura TSX - V6 - Tech - $ 29900 (Dublin / Pleasanton / Livermore) Pic
15 -> 2003 Nissan Altima - $ 1830 (SF) PIC


Возможный выбор:

  1. Классификатор текста машинного обучения (Наивный Байес и т. Д.)
  2. Регулярно

Я пытаюсь выяснить, что Regex слишком сложна для работы, а текстовый классификатор - это излишний?

Если выбор состоит в том, чтобы пойти с текстовым классификатором, то что бы вы счели, чтобы быть самым простым для реализации.

Заранее спасибо за вашу любую помощь.

Это было полезно?

Решение

Это хорошо изученная проблема под названием Извлечение информации. Анкет Это не просто делать то, что вы хотите сделать, и это не так просто, как это звучит (т.е. машинное обучение не является излишним). Есть несколько методов, вы должны прочитать обзор области исследования.

Другие советы

Проверять это IE Библиотека для написания правила извлечения <Я думаю, что это будет лучше для вас. Есть также пример, как создать Быстрое словарь.

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

Есть несколько хороших библиотек распознавания сущностей. Вы посмотрели на Apache opennlp?

Как пользователь, ищущий определенную модель автомобиля, задача проще. Я почти уверен, что смогу классифицировать, скажем, большинство Ford Rangers, так как я знаю, что искать с помощью Regexp.

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

Вы должны использовать такой инструмент, как Amazon Mechanical Turk для этого. Человеческая микротаз. Другая альтернатива - использовать фрилансера ввода данных. Upwork - отличное место, чтобы посмотреть. Вы можете получить отличные результаты качества, и стоимость очень разумна для каждого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top