手始めに、ナイーブベイズはおそらくここでは適切ではありません。これは、入力(したがって、「ナイーブ」)間の独立性を前提としており、文内の単語は非常に依存しています。
ただし、実験を開始するアルゴリズムとしてNBを使用して本当に実行したい場合は、2つのオプションを検討します。
Ungraceful:多くのNB分類子
これは別の方法です。入力のベクトルとして観察されたすべての単語のコーパスを作成します。出力のベクトルとして観察されるすべてのタグからコーパスを作成します。複数の出力を持つNB分類子は、それぞれ1つの出力を持つ複数のNB分類子を持つことと同等です(使用しているソフトウェアフレームワークに実装する方が簡単です)。各要素をトレーニングサンプルとして扱います。指定された入力(単語)は、1
その単語が存在する0
場合と存在しない場合です。出力には同じバイナリスキームを使用します。
このブルートは、NB分類子をデータに適用することを強制し、残された分類子の膨大なセットをマイニングするために、引き続き調査を行うことによって意味を見つけることができます。
より優雅:データを処理する
これは、1つのマルチクラスNB分類子を使用して実行する場合に推奨する方法です。
ここでの目標は、タグの各セットを単一のクラスにマップする方法を理解することです。タグを1つのクラスタに適切にマッピングする、ある種のクラスタリングスキームまたはネットワーク分析([[殺人]]にリンクされた["有名人"]がセグメント["道楽"]になる可能性がある)があると思います。タグをノードとして扱い、与えられた2つのタグをリンクとして一緒に扱う場合は、コミュニティー検出アルゴリズム(ここから始めます)を調べます。ただし、何かを機能させたいだけの場合は、タグのリストをデータセットで最も一般的に見られるタグのみに変換するタグをハックするだけで十分です。
このメソッドは、データのクリーンアップ作業をフロントロードし、NB分類子の出力を理解しやすくします。