Рассмотрим следующий пример: «10% от всех курсов по искусственному интеллекту». В этом примере я должен извлечь два предопределенных класса, таких как искусственный интеллект и курсы. Даже программа должна классифицировать такие слова, как ANN, CNN, RNN, AI и т. Д., В категорию искусственного интеллекта. Я использовал spacy, чтобы тренироваться, но я не впечатлен результатами, так как они не обозначены правильно. Есть ли альтернатива для извлечения сущностей из предложения в Python?

0
Coderash 18 Июл 2020 в 14:58

2 ответа

Лучший ответ

Вы можете использовать flashtext для этого.

from flashtext import KeywordProcessor

kp = KeywordProcessor()

# make a dictionary and create key , insert all keyword in one key (i.e CNN, ANN RNN will come under artificial Intelligence, whenever this value will appear it will extract key for you ) 
dict_= {'Artificial Intelligence': ['ANN','CNN','RNN','AI','Artificial Intelligence'],'courses' : ['courses']} 

kp.add_keywords_from_dict(dict_)

# here Artificial Intelligence, ANN and CNN come under Artificial Intelligence key , that why it will extract the tag as Artificial Intelligence
kp.extract_keywords('10% of on all Artificial Intelligence, ANN, and CNN courses.')
#op
['Artificial Intelligence',
 'Artificial Intelligence',
 'Artificial Intelligence',
 'courses']

Для получения дополнительной информации вы можете ознакомиться с документацией по флэш-тексту https://readthedocs.org/projects / flashtext / загрузки / PDF / последние /

0
qaiser 21 Июл 2020 в 02:25

Вот несколько вариантов, которые я бы опробовал.

1. Извлечение объекта с Расой.

https://rasa.com/docs/rasa/nlu/entity-extraction/#custom-entities
  1. NER на основе Bert для пользовательских объектов. Взгляните на следующие репозитории
https://github.com/allenai/scibert
https://github.com/dmis-lab/biobert
0
Mathew Alexander 18 Июл 2020 в 12:21