Python + NLTKを使用して文の主題を特定できますか?これまでに学んだことは、文を頭とその従属に分割できることです。たとえば、「私はこの文では、私と象は射撃の扶養家族です。しかし、この文の主題が私であることをどうやって見分けるのですか。
Spacy を使用できます。
import spacy
nlp = spacy.load('en')
sent = "I shot an elephant"
doc=nlp(sent)
sub_toks = [tok for tok in doc if (tok.dep_ == "nsubj") ]
print(sub_toks)
英語には、アクティブボイスとパッシブボイスの2つの声があります。最も使用されている音声を取りましょう:アクティブな音声。
subject-verb-object
モデルに従います。件名をマークするには、POSタグを使用してルールセットを記述します。文I[NOUN] shot[VERB] an elephant[NOUN]
にタグを付けます。最初の名詞が主語である場合は、動詞があり、次にオブジェクトがあります。
もっと複雑にしたい場合は、センテンス-I shot an elephant with a gun
。ここでは、前置詞またはwith、at、inなどの従属接続詞に役割を与えることができます。ここでは、文はI[NOUN] shot[VERB] an elephant[NOUN] with[IN] a gun[NOUN]
としてタグ付けされます。 Wordがインストルメンタルな役割を果たすことは簡単に言えます。ルールベースのシステムを構築して、文中のすべての単語の役割を取得できます。
また、受動態のパターンを見て、そのルールを書いてください。
doc = nlp(text.decode('utf8'))
のようなことを行うことで、問題について説明することができますが、これにより、今後さらに多くのバグが発生する可能性があります。