Проблема:
Я пытаюсь извлечь список имен существительных из описания должности, например, следующего:
text = "Civil, Mechanical, and Industrial Engineering majors are preferred."
Я хочу извлечь следующее изэтот текст:
Civil Engineering
Mechanical Engineering
Industrial Engineering
Это один из случаев проблемы, поэтому использование информации для конкретного приложения не будет работать.Например, у меня не может быть списка основных предметов, а затем я пытаюсь проверить, есть ли в названии части названий этих основных слов вместе со словом «мажор», поскольку это необходимо и для других предложений.
Попытки :
1. Я изучил spacy анализ зависимостей , но отношения родитель-потомок не отображаются между каждым типом Engineering (Civil,Машиностроение, Промышленность) и слово Машиностроение.
import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u"Civil, Mechanical, and Industrial Engineering majors are preferred.")
print( "%-15s%-15s%-15s%-15s%-30s" % ( "TEXT","DEP","HEAD TEXT","HEAD POS","CHILDREN" ) )
for token in doc:
if not token.text in ( ',','.' ):
print( "%-15s%-15s%-15s%-15s%-30s" %
(
token.text
,token.dep_
,token.head.text
,token.head.pos_
,','.join( str(c) for c in token.children )
) )
... вывод ...
TEXT DEP HEAD TEXT HEAD POS CHILDREN
Civil amod majors NOUN ,,Mechanical
Mechanical conj Civil ADJ ,,and
and cc Mechanical PROPN
Industrial compound Engineering PROPN
Engineering compound majors NOUN Industrial
majors nsubjpass preferred VERB Civil,Engineering
are auxpass preferred VERB
preferred ROOT preferred VERB majors,are,.
Я также пытался использовать nltk pos-теги, но получаю следующее ...
import nltk nltk.pos_tag (nltk.word_tokenize (предпочтительны профили гражданского, машиностроения и промышленного строительства). '))
[('Civil', 'NNP'),
(',', ','),
('Mechanical', 'NNP'),
(',', ','),
('and', 'CC'),
('Industrial', 'NNP'),
('Engineering', 'NNP'),
('majors', 'NNS'),
('are', 'VBP'),
('preferred', 'VBN'),
('.', '.')]
Все типы инженерии и слово «Инжиниринг» называются NNP (собственно существительными), поэтому любой тип RegexpParser pattern IМожет думать, не работает.
Вопрос:
Кто-нибудь знает способ - в Python 3 - извлечь эти пары имен существительных?
EDIT: Примеры добавления
Следующие примеры аналогичны первому примеру, за исключением того, что это версии глагола-существительного / глагола-правильного.
text="Experience with testing and automating API’s/GUI’s for desktop and native iOS/Android"
Extract:
testing API’s/GUI’s
automation API’s/GUI’s
text="Design, build, test, deploy and maintain effective test automation solutions"
Extract:
Design test automation solutions
build test automation solutions
test test automation solutions
deploy test automation solutions
maintain test automation solutions