Python: разделение на части, кроме имен существительных (например, предлог), используя Spacy и т. Д.
Поскольку мне сказали, что Spacy является таким мощным модулем Python для естественной обработки речи, я теперь отчаянно ищу способ сгруппировать слова по более чем существительным фразам, наиболее важно, предлогам. Я сомневаюсь, что для этого есть функция Spacy, но это будет самый простой способ, который я предполагаю (импорт SpacySpaCy уже реализован в моем проекте). Тем не менее, я открыт для любой возможности распознавания фраз.
1 ответ
Вот решение, чтобы получить PP. В общем, вы можете получить фразы, используя subtree
,
def get_pps(doc):
"Function to get PPs from a parsed document."
pps = []
for token in doc:
# Try this with other parts of speech for different subtrees.
if token.pos_ == 'ADP':
pp = ' '.join([tok.orth_ for tok in token.subtree])
pps.append(pp)
return pps
Использование:
import spacy
nlp = spacy.load('en')
ex = 'A short man in blue jeans is working in the kitchen.'
doc = nlp(ex)
print(get_pps(doc))
Это печатает:
['in blue jeans', 'in the kitchen']