#python #python-3.x #string #nlp #spacy
#python #python-3.x #строка #nlp #spacy
Вопрос:
Мне нужно извлекать сущности из предложений с использованием тегов NER и POS. Например,
Учитывая приведенное ниже предложение:
docx = nlp("The two blue cars belong to the tall Lorry Jim.")
где находятся сущности (две синие машины, высокий грузовик Джим). Запуск spacy NER в предложении,
for ent in docx.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)
Он возвращает:
two 4 7 CARDINAL
Lorry Jim 37 46 PERSON
Моя цель — добавить прилагательные / число перед объектами, идентифицируемыми NER вместе, в приведенном выше случае tall
является ADJ и должно быть добавлено к Lorry Jim
сущности. И two blue cars
должен быть извлечен с помощью NUM ADJ NOUN
теггера from POS.
Ответ №1:
Во-первых, я должен сказать, что задача, которую вы хотели и о которой вы писали, — это НЕ то, что вы сказали в названии. Я думаю, что сущность имеет стандартное определение, и, например, ADJ не является частью сущности.
Я думаю, что для решения вашей проблемы вам нужно использовать синтаксический анализ зависимостей и проанализировать дерево зависимостей предложения. Это может помочь вам найти ссылки для каждого слова.
Другим способом вы можете определить задачу разбиения на части для вашей проблемы и создать набор данных для того, что вы имели в виду, и попытаться обучить модель для такого типа разбиения на части.
Я думаю, что если вы хотите сделать это для функционального использования, вам нужно сделать вашу проблему очень понятной и простой, чтобы вы могли выбрать практический метод решения проблемы, которая у вас есть. Я думаю, что если вы допускаете какую-то ошибку, вы можете определить простые правила для любых частей существительных и прилагательных, чтобы, если у вас есть POS и NER вместе, вы могли бы ее решить. Это также зависит от языка, на котором вы хотите работать. Нравится ваш пример :
синяя машина
В английском языке прилагательные обычно ставятся перед существительными, и это известно как модификатор или атрибутивная позиция. но вы должны заботиться о предложениях, подобных этому :
Все машины, которые у него были, были синими.
Для работы с функциями вы также можете искать разрешение кореференции следующим образом :
Я видел машины, на которых он ездит, и все они были синими.