29

SO: N-grams: Explanation + 2 applicationsに関するこの前の質問を見つけました。OPはこの例を示し、それが正しいかどうか尋ねました:

Sentence: "I live in NY."

word level bigrams (2 for n): "# I', "I live", "live in", "in NY", 'NY #'
character level bigrams (2 for n): "#I", "I#", "#l", "li", "iv", "ve", "e#", "#i", "in", "n#", "#N", "NY", "Y#"

When you have this array of n-gram-parts, you drop the duplicate ones and add a counter for each part giving the frequency:

word level bigrams: [1, 1, 1, 1, 1]
character level bigrams: [2, 1, 1, ...]

回答セクションの誰かがこれが正しいことを確認しましたが、残念ながら、他のすべてのことを完全には理解していなかったので、それ以上は少し迷っています! 私は LingPipe を使用しており、7 から 12 の間の値を選択する必要があると述べたチュートリアルに従っていますが、理由は述べていません。

適切な nGram 値とは何ですか? また、LingPipe のようなツールを使用する場合は、どのように考慮する必要がありますか?

編集: これはチュートリアルでした: http://cavajohn.blogspot.co.uk/2013/05/how-to-sentiment-analysis-of-tweets.html

4

3 に答える 3

47

N-gram は、ソース テキストで見つけられる長さnの隣接する単語または文字のすべての組み合わせです。たとえば、単語 が与えられた場合fox、すべての 2 グラム (または「バイグラム」) はfoおよびoxです。単語の境界を数えることもできます。これにより、2 グラムのリストが#ffoox、およびx#に拡張されます。ここで#、単語の境界を示します。

単語レベルでも同じことができます。例として、hello, world!テキストには次の単語レベルのバイグラムが含まれています: # hello, hello world, world #.

n-gram の基本的なポイントは、与えられた文字や単語の後にどのような文字や単語が続く可能性があるかなど、統計的な観点から言語構造を捉えることです。n-gram が長いほど ( n が大きいほど)、より多くのコンテキストを処理する必要があります。最適な長さは実際にはアプリケーションによって異なります。n-gram が短すぎると、重要な違いを捉えることができない可能性があります。逆に長すぎると、「一般的な知識」がつかめず、特定の事例だけに固執してしまう可能性があります。

于 2013-08-12T17:48:37.663 に答える