Как определить источник и пункт назначения из сообщения, используя нейронную модель - PullRequest
0 голосов
/ 05 мая 2018

Я хотел бы извлечь источник и пункт назначения из данного текста.

Например,

I am travelling from London to New York.
I am flying to Sydney from Singapore.

Происхождение -> Лондон, Сингапур. Пункт назначения -> Сидней, Нью-Йорк.

NER выдаст только имена локаций, но не сможет получить источник и пункт назначения.

Можно ли обучить нейронную модель обнаружению того же самого?

Я пытался обучить нейронные сети классифицировать текст как,

{"tag": "Origin",
     "patterns": ["Flying from ", "Travelling from ", "My source is", ]

Таким образом, мы могли бы классифицировать текст как источник, но мне также нужно получить значения (Лондон, Сингапур в данном случае).

Есть ли в любом случае, мы можем достичь этого?

1 Ответ

0 голосов
/ 11 мая 2018

Ну, как прокомментировали другие, здесь NN может быть служебной информацией, но их все еще можно использовать. Чтобы использовать NN для этой проблемы, вы можете выполнить следующие действия:

  1. Соберите данные обучения формы (текст, происхождение, пункт назначения), например, [(«Я путешествую из Лондона в Нью-Йорк», «Лондон», «Нью-Йорк»), («Я лечу в Сидней из Сингапура», «Сидней», «Сингапур»)]. Вам может понадобиться много данных, чтобы ваш NN был достаточно точным.
  2. Векторизовать ваши тексты, используя одно из обученных представлений word2vec (например, glove ), в последовательности равной длины (скажем, 30, при необходимости используйте отступы или обрезку) векторов одинаковой длины. Поскольку вас интересуют местоположения, для лучшей подготовки вы должны векторизовать местоположения в отдельном измерении. Полученный массив последовательностей векторов будет вашим вводом (X) для обучения.
  3. Ваши прогнозы (Y) также будут последовательностями длиной 30, состоящими из 0-1 пары векторов, где вы помещаете 1 в первый (второй) компонент всякий раз, когда соответствующее слово в вашей последовательности, представляющее текст, является источником (происхождение) и 0 в противном случае.
  4. С помощью этих X и Y вы можете обучить LSTM NN (см., Например, keras ), установить return_sequence = True и правильно указать размеры.
  5. Затем вы можете подготовить тестовые данные таким же образом, получить результат и по парам с наивысшими значениями определить позиции вашего источника и пункта назначения во входном тексте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...