1
由於我被告知Spacy是一個用於自然語音處理的如此強大的Python模塊,我現在正在拼命尋找一種將單詞分組到一起以超過名詞短語,最重要的是介詞短語。 我懷疑這是一個Spacy函數,但這將是我猜測的最簡單的方法(SpacySpaCy導入已經在我的項目中實現)。儘管如此,我對任何可能的短語識別/組塊都是開放的。Python:使用Spacy等將其他名詞短語(例如介詞)分成
由於我被告知Spacy是一個用於自然語音處理的如此強大的Python模塊,我現在正在拼命尋找一種將單詞分組到一起以超過名詞短語,最重要的是介詞短語。 我懷疑這是一個Spacy函數,但這將是我猜測的最簡單的方法(SpacySpaCy導入已經在我的項目中實現)。儘管如此,我對任何可能的短語識別/組塊都是開放的。Python:使用Spacy等將其他名詞短語(例如介詞)分成
以下是獲取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
用法:
ex = 'A short man in blue jeans is working in the kitchen.'
doc = nlp(ex)
get_pps(doc)
此打印:
['in blue jeans', 'in the kitchen']
你能不能給你想要什麼具體的例子嗎?也許就像一個例子輸入與所需的輸出相對應。 – Harrison
當然。作爲德語輸入的翻譯,請寫下如下句子:「我需要多長時間才能開車去大學?」 (德語「Wie lange brauche ich bis zur Uni?」)。我希望「通過遠程瞭解介詞短語是由什麼組成,或者通過陳述確切的規則(PP-> PREP + NP)就像在其他語言中使用的那樣,將[DETEP]作爲介詞階段分成[DET] python模塊。 由於SpaCy用於我的程序中的標記,似乎只支持名詞塊,我想有一個支持模塊或只是一個函數內部識別額外的塊。 –