Как извлечь информацию о корпоративных облигациях с помощью машинного обучения

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

Может ли кто-нибудь предложить мне любую библиотеку или алгоритмы, которые означают, как я могу анализировать и извлекать из них данные. Я планирую исследовать Наивный Байес, или N-грамм, или машину опорных векторов, но не уверен, поможет это мне или нет. Пожалуйста, предложите.

Примеры такие:

[/] Trading 10mm ABC 2.5 19 05/06 mkt can use 50mm ---> вот я хочу извлечь "ABC 2.5 19"

Пример 2:

XYZ 6.5 15 10-2B 106-107 B3 AAA- 1.646MM 2x2 ---> вот я хочу извлечь "XYZ 6.5 15"


person Nikhil Jain    schedule 10.09.2014    source источник
comment
Вы пробовали сопоставление шаблонов с регулярным выражением? Судя по тому, как это выглядит, вы хотите сопоставить 3 буквы, за которыми следует десятичная дробь, за которой следует целое / длинное число (независимо от количества пробелов между ними), которые хорошо продуманное регулярное выражение должно обрабатывать довольно быстро.   -  person kha    schedule 10.09.2014
comment
Первоначально я предлагал использовать только регулярное выражение, но регулярное выражение сложно и ненадежно для этого типа случаев, поскольку данные неструктурированы. Кроме того, я ищу метод, позволяющий анализировать значения 05/06 или 106-107 или 2X2 вместе с 3 буквами, поэтому я считаю, что машинное обучение будет лучшим выбором для этого.   -  person Nikhil Jain    schedule 10.09.2014
comment
В прошлом я немного работал с FFNN и грамматическим синтаксическим анализом, и я не думаю, что это было бы лучшим решением для вашего случая (хотя я был бы очень рад, если бы ошибся). Что насчет этого вместо этого? 1) Сначала токенизируйте все письмо. 2) просматривайте токены, пока не встретите трехбуквенное слово 3) посмотрите на следующий токен, чтобы убедиться, что он действителен (вам нужно написать классы функций, чтобы обработать это за вас 4) если они действительны, проанализируйте следующий токен и т. Д. и так далее, пока вы не дойдете до конца конечного автомата и не сочтете его правильным ответом, или, если вы достигнете недопустимого состояния, перейдите к следующему трехбуквенному символу.   -  person kha    schedule 10.09.2014
comment
Я бы порекомендовал язык правил, например JAPE или UIMA Ruta перед тем, как начать машинное обучение. По крайней мере, вы получите свои помеченные примеры быстрее, если задача еще не решена.   -  person Peter Kluegl    schedule 11.09.2014
comment
@PeterKluegl: Я посмотрю на них, выглядит интересно. Спасибо за предложение.   -  person Nikhil Jain    schedule 11.09.2014


Ответы (1)


В Perl вы можете использовать Marpa :: R2 - обычный синтаксический анализатор BNF.

Эта суть извлекает информацию из ваших примеров.

Надеюсь это поможет.

person rns    schedule 10.09.2014