文書分類プロジェクトで、サイトのコンテンツを取得し、コンテンツに応じて多数のラベルの1つをWebサイトに割り当てています。
これにはtf-idfが非常に役立つことがわかりました。しかし、それをいつ使うべきか正確には分かりませんでした。
特定のトピックに関連するウェブサイトが繰り返し言及していると仮定すると、これは私の現在のプロセスでした:
- サイトのコンテンツを取得し、プレーンテキストを解析する
- コンテンツの正規化とステム
- トークン化してユニグラムにします(おそらくバイグラムも)
- 指定されたドキュメントの各ユニグラムの数を取得し、長さが短く出現頻度の低い単語をフィルタリングします
- 結果セットで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を検討してきましたが、例がかなりまばらなので、その使用については少しわかりません。
({tokenized content}, category)
。データベースにトレーニングセットのWebサイトがあり、既に分類されているため、問題ありません。分類子が適用できるラベルは、注釈付きトレーニングセットから見たものだけですよね?