ログ日記

作業ログと日記とメモ

PHP Naive Bayesian Filter メモ

PHPベイジアン。ソースを見ながら動作をメモ。

参考:http://castor.s26.xrea.com/blog/2008/02/18

パターンの登録

  • train: 文章から分類用のデータを登録する。文章をトークンに分割してupdateWord、その後saveReference。
    • updateWord: {カテゴリ、単語}別に文章中の単語の出現回数を追加する。
    • saveReference: カテゴリと文章を関連付ける。
  • updateProbabilities: probabilityを保存する。probabilityは(カテゴリ別の全単語数)/(全カテゴリの全単語数)。

分類

  • categorize: スコアを付けたカテゴリを返す。
    • while カテゴリ:
      • カテゴリ別スコア = probability。
      • while 単語: カテゴリ別スコア *=(({カテゴリ、単語}別の単語出現回数 / カテゴリ別の単語出現回数) ^ 単語出現回数)*((全カテゴリの全単語数/カテゴリ数)^ 単語出現回数)
    • _rescale: スコアを0〜1の間に調整。


計算部分はソースを見るより説明を探した方がいいかな。