ドキュメント分類:機能フィルタリングの前または後のtf-idf?


8

文書分類プロジェクトで、サイトのコンテンツを取得し、コンテンツに応じて多数のラベルの1つをWebサイトに割り当てています。

これにはtf-idfが非常に役立つことがわかりました。しかし、それをいつ使うべきか正確には分かりませんでした。

特定のトピックに関連するウェブサイトが繰り返し言及していると仮定すると、これは私の現在のプロセスでした:

  1. サイトのコンテンツを取得し、プレーンテキストを解析する
  2. コンテンツの正規化とステム
  3. トークン化してユニグラムにします(おそらくバイグラムも)
  4. 指定されたドキュメントの各ユニグラムの数を取得し、長さが短く出現頻度の低い単語をフィルタリングします
  5. 結果セットでNaiveBayesなどの分類子をトレーニングします

私の質問は次のとおりです:tf-idfはここにどこに適合しますか?正規化/ステミングの前に?正規化後、トークン化前?トークン化した後?

どんな洞察もいただければ幸いです。


編集:

よく調べてみると、TF-IDFの動作について誤解していたのではないかと思います。上記のステップ4 で、データ全体を一度にTF-IDF にフィードする必要がありますか?たとえば、私のデータが次のような場合:

[({tokenized_content_site1}, category_string_site1), 
 ({tokenized_content_site2}, category_string_site2), 
...
 ({tokenized_content_siten}, category_string_siten)}]

ここで、最も外側の構造は、タプルを含み、辞書(またはハッシュマップ)と文字列を含むリストです。

私が養うために必要があります全体所望の効果を達成するために、一度にTF-IDFの計算にそのデータのか?具体的には、これを行うためにscikit-learn TfidfVectorizerを検討してきましたが、例がかなりまばらなので、その使用については少しわかりません。

回答:


8

すでに説明したように、ステップ4はTF-IDFを使用する場所です。基本的に、TD-IDFは各ドキュメントの各用語をカウントし、ドキュメントのコレクション全体の相対的頻度を考慮してスコアを割り当てます。

ただし、プロセスに欠けている大きなステップが1つあります。それは、トレーニングセットに注釈を付けることです。分類子をトレーニングする前に、分類子を使用して自動的に適用できるようにするラベルを使用して、データのサンプルに手動で注釈を付ける必要があります。

これらすべてを簡単にするために、スタンフォード分類子の使用を検討することをお勧めします。特徴抽出を実行し、分類子モデル(いくつかの異なる機械学習アルゴリズムをサポート)を構築しますが、トレーニングデータに手動で注釈を付ける必要があります。


分類子をトレーニングする前に、データをのタプルにフォーマットします({tokenized content}, category)。データベースにトレーニングセットのWebサイトがあり、既に分類されているため、問題ありません。分類子が適用できるラベルは、注釈付きトレーニングセットから見たものだけですよね?
user991710 2014

再:「分類子が適用できるラベルは、注釈付きトレーニングセットから見たものだけですよね?」正しい。教師あり学習では、分類子は新しい/目に見えないカテゴリを作成できません。それを行う場合は、クラスタリングやトピックモデリングなどを調べる必要があります。
Charlie Greenbacker 14

情報、ありがとうございます!あなたも私の質問に答えたので、これを答えとして受け入れます。
user991710 2014

上記の回答を受け入れた後、これを元に戻したことをお詫びしますが、私が直接あなたに尋ねた場合、私の更新に対する回答を得られる可能性が高いと考えています。長いコメントを避けるために、元の投稿で私の編集を見ていただければ幸いです。
user991710 2014

1
RE:「データ全体を一度にTF-IDFにフィードする必要がありますか?」はい、そうです。RE:「これを行うためにscikit-learn TfidfVectorizerを検討してきましたが、例がかなりまばらなので、その使用については少しわかりません。」これが私が書いた例です:github.com/charlieg/…-作成したdict + stringタプルではなく、ドキュメントのコーパスを入力として使用するのがおそらく最善です。
チャーリーGreenbacker
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.