Найдите следующее вхождение существительного после глагола или слова

#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, чтобы найти глагол — вы смотрели на анализ зависимостей, чтобы затем найти объект глагола, который, я думаю, вам нужен