勉強のため、PHPでベイジアンフィルタを書いてみました。下記のサイトを参考にしています。スムージングとして、単語の出現回数に1を足しています。アルゴリズムはリンク先の解説が正確だと思うので、割愛しますが、手計算での計算と結果は合っているので、多分正しく動作しているかと。 ●参考: 第3回 ベイジアンフィルタを実装してみよう http://gihyo.jp/dev/serial/01/machine-learning/0003?page=2 P(word|cate)を求める時の分母になるカテゴリの全単語出現回数(getAllWordNumCate($cate))を都度計算しているので、無駄がありますが、分かりやすさを優先してそのままにしています。 <?php error_reporting(E_ALL & ~E_NOTICE); /** * Classifier * * @package *