Автоматически определять адреса по текстовым данным - PullRequest
0 голосов
/ 08 апреля 2019

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

Например:

Left floor, 3rd floor, door B, block X, portal 1, PLOT M-18.A,
AREA 2, U.U. 4 in ADDRESS HIDDEN , nº NUMBER,
ADDRESS HIDDEN, 1, 3rd XXXXX.,
in CITY.

И поля:

Street type, Address, City, block number, floor number...

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

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

master['target_ADDRESS'] = 0
master.loc[
    (master['entity_length'] <= 8) &
    (master['entity_start_ix'] <= 80) &
    (master['left_context'].str.lower().str.contains('(a|del|de la| sitio de( la)?) %s' % stree_type)) &
    (
        (master['left_context'].str.lower().str.endswith(street_type)) |
        (master['left_context'].str.lower().str.endswith(('%s de' % x for x in street_type )))
    ) &
    (master['entity_content'].str.contains(street_type, case=False) == False),
    'target_ADDRESS'] = 1

Но сейчас я застрял, так как каждый документследует другой структуре.У меня закончились идеи о том, что попробовать.Я подумал, что, возможно, модель word2vec поможет, но, следуя этому руководству https://www.tensorflow.org/tutorials/representation/word2vec, кажется, что word2vec лучше всего подходит для прогнозирования следующего word данного предложения.

Я также пытался использовать openvenues / libpostal , но он работает, только если вы передаете его адреса в качестве входных данных, он не обнаруживает адрес в тексте.

IЯ также рассмотрел возможность обучения пользовательской модели NER , как описано в CoreNLP, но я думаю, что это невозможно из-за количества необходимых данных.

Не могли бы вы дать мне несколько советов?по какому пути я должен следовать, чтобы решить проблему?

ПРИМЕЧАНИЕ: Документы на испанском языке

...