3

NLTK に、単語を説明する特定の形容詞属性を見つける方法はありますか? たとえば、「Skyscraper」という単語を入力すると、「背が高い」、「構造化されている」などの属性が表示されます。私は逆に興味があります。「tall」という単語を入力すると、他の単語との意味関係が一覧表示されます。

NLTK の属性メソッドはこのためのものだと思いますが、上記の方法では特に機能しません。これは私が使用しているコードです。

from nltk.corpus import wordnet as wn
synsets = wn.synsets('skyscraper')
print[str(syns.attributes()) for syns in synsets]

part_meronyms および attributes メソッドを使用してみましたが、これが常に単語の形容詞属性になるとは限りません。これを可能にする他の Python ツールを知っていますが、現時点では NLTK のみを使用することをお勧めします。

4

1 に答える 1

2

純粋にNLTKを使用すると、独自の機能を使用して、これを2段階のプロセスとして実現できます。

基本的な考え方

  • ステップ1.ターゲット単語(「skyscraper」または「tall」)の意味のあるコロケーションをすべて見つけます
  • ステップ2.関心のあるコロケーションで識別された形容詞について、POSを解析して意味関係を取得します。

ステップ1の場合、スコアリングバイグラムに関するこのSOの質問には、非常に関連性の高い定義があります。問題を微調整する必要がありBigramAssocMeasuresます。(茶色のコーパスを使用していますが、他の多くのコーパスを使用できます。)

ステップ2の場合、次のようなものを使用するか、pos_tag()またはTree.parse()探している関連をターゲット形容詞に取得することもできます。

(より単純な)代替アプローチの場合、このリンクtext.similar()には関連するはずの例があります。

お役に立てば幸いです。

于 2012-11-25T22:27:46.117 に答える