извлекать названия сущностей и соответствующие им числовые значения из предложения - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу извлечь информацию из предложений.

В настоящее время я могу сделать следующее, используя spacy.

Amy's monthly payment is $2000. -->  (Amy's monthly payment, $2000)

Однако я пытаюсь сделать следующее.

The monthly payments for Amy, Bob, and Eva are $2000, $3000 and $3500 respectively.  
--> ((Amy's monthly payment, $2000), (Bob's monthly payment, $3000), (Eva's monthly payment, $3500))

Есть ли способ выполнить задачу, используя метод NLP, через библиотеку python, такую ​​как Spacy ? Шаблон предложения не является фиксированным. Использование регулярных выражений не работает.

Спасибо

1 Ответ

0 голосов
/ 17 апреля 2020

Если вы посмотрите на анализ пространственных зависимостей, то увидите, что в нем показаны соединения: enter image description here Так что вам нужно будет добавить несколько логик c, которые учитывают эти отношения соединения, когда вы перебрать дерево анализа зависимостей. Вы можете связать соединения следующим образом:

conjunctions = set()
for span in doc:
    if span.dep == conj:
        conjunctions.add(span.head)
        conjunctions.add(span)

Вы можете поиграть с визуализацией анализа пространственной зависимости здесь: https://explosion.ai/demos/displacy?text=The%20monthly%20payments%20for%20Amy%2C%20Bob%2C%20and%20Eva%20are%20%242000%2C%20%243000%20and%20%243500%20respectively.&model=en_core_web_lg&cpu=1&cph=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...