#python #nlp #nltk
#python #нлп #nltk
Вопрос:
Я хочу найти следующее вхождение существительного после слова или глагола в предложении. Например, скажем, у меня есть эти строки:
'reconfigured the scanner and reset the base now working properly',
'reconfigured printer port to the correct port performed a print test on zebra strips was able to print a pslip through as normal agagin'
Затем я хочу вернуть
'reconfigured the scanner',
'reconfigured printer'
Я использую библиотеку nltk для обнаружения глагола в предложении, но поскольку его «перенастроено» нет в словаре слов nltk, мне нужно будет убедиться, что если первое слово в строке «перенастроено», то мне нужно взять подстроку сразу после того, как я найду первое существительное. В последнем случае это «сканер» и «принтер».
Кто-нибудь знает, как это сделать?
Что у меня есть до сих пор, так это:
if text[0] == 'reconfigured':
new_sentence.append("It is recommended to reconfigure " past_tense_to_future_tense(text[1:]))
return " ".join(new_sentence)
Где функция past_tense_to_future_tense
def past_tense_to_future_tense(text):
new_sentence = []
for word in text:
new_sentence.append(WordNetLemmatizer().lemmatize(word,'v'))
return " ".join(new_sentence)
Комментарии:
1. Вы можете попробовать некоторые более современные инструменты, такие как SpaCy или Stanza, вместо NLTK, поскольку они статистические / нейронные, у них гораздо лучший словарный запас и лемматизация.
2. вы на правильном пути с пометкой POS, чтобы найти глагол — вы смотрели на анализ зависимостей, чтобы затем найти объект глагола, который, я думаю, вам нужен