Например учитывая шаг для кулинарного рецепта. Добавьте лук в миску с морковью в качестве входного текста, я бы хотел получить лук и морковь, пока задано «Посыпать паприкой». должен вернуться паприка.
Но это также должно работать с такими предложениями, как «хорошо перемешать» и «приготовить еще минуту»., которые не содержат в себе никаких пищевых объектов.
На данный момент мне удалось использовать библиотеку spacy для обучения модуля NER анализу предложений. Проблема с конвейером NER заключается в том, что это синтаксический анализ, основанный на правилах, он обучается, предоставляя для изучения набор предложений и сущностей/совпадений/меток, который отлично работает, как и ожидалось, на предложениях, аналогичных тем, которые используются во время обучения, но выполняет плохо с новыми и разными предложениями:
Код: Выделить всё
nlp = spacy.load('trained_model')
document = nlp('Add flour, mustard, and salt')
[(ent.text, ent.label_) for ent in document.ents]
# >> [('Add flour', 'FOOD'), ('mustard', 'FOOD'), ('salt', 'FOOD')]
# (quite) correct output
document = nlp('I took a building, car and squirrel on the weekend')
[(ent.text, ent.label_) for ent in document.ents]
# >> [('building', 'FOOD'), ('car', 'FOOD'), ('squirrel', 'FOOD')]
# wrong output
document = nlp('stir well, and cook an additional minute.')
[(ent.text, ent.label_) for ent in document.ents]
# >> [('stir well', 'FOOD'), ('cook', 'FOOD'), ('additional minute.', 'FOOD')]
# wrong output
Вместо этого я ищу способ извлечения определенных объектов или, по крайней мере, классификации слов в общем тексте с дополнительными категориями, выходящими за рамки базового синтаксического анализа.
Какие методы мне следует использовать/рассмотреть для достижения этой цели ?
Подробнее здесь: https://stackoverflow.com/questions/792 ... tured-text
Мобильная версия