1

最近、私は、Cavnar と Trenkle の記事「N-Gram-Based Text Categorization」やその他の関連ソースに基づいて、テキストの分類と言語の分類をいじっています。

言語分類を行う場合、この方法は非常に信頼性が高く便利であることがわかりました。ドキュメントから最も一般的な n 個の N-gram を使用しているだけなので、N-gram 頻度プロファイルを生成するために使用されるドキュメントのサイズは、「十分な長さ」である限り、それほど重要ではありません。

一方、適切に機能するテキストの分類は私にはわかりません。IDF の重み付けや他の人々の実装などのさまざまな調整の有無にかかわらず、手元にあるアルゴリズムのさまざまなバリエーションの独自の実装の両方を試しました。カテゴリ参照ドキュメントに対してある程度類似したサイズの頻度プロファイルを生成できる限り、それは非常にうまく機能しますが、それらが少しだけ違い始めた瞬間、全体がバラバラになり、プロファイルが最も短いカテゴリが不均衡になりますそれに割り当てられたドキュメントの数。

さて、私の質問です。この影響を補償するための好ましい方法は何ですか? アルゴリズムは、カテゴリ頻度プロファイルの長さに等しい特定の N グラムの最大距離を想定しているため、明らかに発生していますが、何らかの理由で、それを修正する方法について頭を悩ませることはできません。私がこの修正に興味を持っている理由の 1 つは、実際には、長さが異なる可能性がある既知のカテゴリを持つドキュメントに基づいて、カテゴリ プロファイルの生成を自動化しようとしているからです (プロファイルが同じ長さであっても、最終的には長さが違う)。これに対する「ベストプラクティス」ソリューションはありますか?

4

2 に答える 2

1

私が知っているように、タスクは言語モデルMによってテキストが生成される確率を数えることです。

最近、私は意味論的、同期的、語彙的特性を使用してテキストの読みやすさを測定することに取り組んでいました。言語モデルアプローチでも測定できます。

適切に答えるには、次の質問を検討する必要があります。

対数尤度アプローチを使用していますか?

どのレベルのN-Gramsを使用していますか?ユニグラムダイグラム以上?

使用している言語コーパスの大きさはどれくらいですか?

ダイグラムとユニグラムのみを使用して、いくつかのドキュメントを分類し、素晴らしい結果を得ることができました。分類が弱い場合は、より大きな言語のコーパスを作成するか、より低いレベルのn-gramを使用することを検討してください。

また、一部のテキストを無効なカテゴリに分類すると、テキストの長さによってはエラーになる可能性があることにも注意してください(ランダムに別の言語モデルに表示される単語はほとんどありません)。

言語コーパスを大きくすることを検討し、短いテキストを分析すると誤分類の可能性が高くなることを知ってください

于 2011-05-17T11:06:30.357 に答える
1

それでも興味があり、私があなたの質問を正しく理解していると仮定すると、あなたの問題に対する答えは、n-gram 頻度を正規化することです。

ドキュメントごとにこれを行う最も簡単な方法は、ドキュメント内のすべての n-gram の合計頻度をカウントし、個々の n-gram 頻度をその数で割ることです。その結果、すべての n-gram 頻度重み付けは、全体の長さに関係なく、ドキュメント コンテンツ全体の割合に関連するようになりました。

距離指標でこれらのパーセンテージを使用すると、ドキュメントのサイズが割り引かれ、代わりにコンテンツの実際の構成に焦点が当てられます。

n-gram 表現は、分類ソリューション全体のごく一部しか構成していないことにも注意してください。また、次元削減、異なるインデックス重み付けメトリック、および明らかに異なる分類アルゴリズムの使用を検討することもできます。

テキスト分類での n-gram の使用例については、こちらを参照してください

于 2013-04-14T16:23:56.900 に答える