2

NLTK を使用して名詞句を識別しようとしていますが、正規表現についてはまだ少し緑色です。

私はもともと次のような正規表現を使用していました:

  NP: {<PP\$>?<JJ.*>*<NN.*>+}

しかし、前置詞で終わる表現を取得し続けることがわかりました。そのため、前置詞「for」で終わる「Demonstration projects for」などは一致しており、これは望ましくありません。(上記の構文を使用しても、まだ方法がわかりません---私が知る限り、これは常に少なくとも1つの名詞で終わる必要がありますよね?)

そこで、量指定子を次のように変更して、量指定子を遅延型に減らしました。

  NP: {<PP\$>?<JJ.*>*<NN.*>+?}

しかし今では、「ニューオーリンズ」ではなく「オーリンズ」のような一致が得られます。フレーズがまったく一致していないようです。

最後に、先読み (ここで学んだこと) を使用して、端末の前置詞を明示的に削除しようとしました。

  NP: {((?!<IN>$)(<PP\$>?<JJ.*>*<NN.*>+))+}

これはまったく効果がありませんでした---「Demonstration projects for」のようなものをまだ一致として取得しています。名詞句に終端前置詞がないようにするにはどうすればよいですか?

名詞句を取得するためのより簡単で最適化された方法があれば、それもありがたいです!

4

0 に答える 0