web-dev-qa-db-ja.com

検索テキストのトークン化に適した手法

検索エンジンが行うのと同じまたは同様の方法で一部のテキストをトークン化する方法を探しています。

これを行う理由は、トークンに対して統計分析を実行できるようにするためです。私たちが使用している言語はpythonであるため、その言語で機能するテクニックを好みますが、必要に応じて別の言語を使用するように設定することもできます。

元のトークン:

私たちはいくつかの素晴らしいブリトーを持っています!

簡略化:(複数形と句読点を削除)

私たちはいくつかの素晴らしいブリトーを持っています

さらに簡略化:(余分な単語を削除)

素晴らしいブリトー

ベスト:(正と負の意味を認識する):

ブリトー-ポジティブ-
8
Chris Dutrow

Pythonにはすばらしい自然言語ツールキット [〜#〜] nltk [〜#〜] があります。すぐに使えるWordトークン化をサポートします。

>>> import nltk
>>> input = 'We have some great burritos!'
>>> tokens = nltk.Word_tokenize(input)
>>> tokens
['We', 'have', 'some', 'great', 'burritos', '!']
>>> nltk.pos_tag(tokens)
[('We', 'PRP'), ('have', 'VBP'), ('some', 'DT'), ('great', 'JJ'), ('burritos', 'NNS'), ('!', '.')]

最後の構造には自然言語タグが含まれており、分類に基づいて単語を検討対象から除外できます。 JJ(形容詞)およびNN接頭辞(名詞)のタグに焦点を当てたいと思います。

そこから先は stemming を適用し、肯定形容詞と否定形容詞を検出できます。

ただし、形容詞の分類では、オンラインリソースから独自のコーパスを作成する必要があると思います thisなど ;ライブラリはこのためのツールを提供します。

以下は、Porterステミングアルゴリズムを使用したステミングの例です。

>>> from nltk.stem.porter import PorterStemmer
>>> PorterStemmer().stem('burritos')
'burrito'

O'Reillyが図書館で本を出版しました オンラインで入手可能

7
Martijn Pieters