目次
サンプル・プログラムの実行例
サンプル・プログラム
BayesClassifier.php | サンプル・プログラム |
pahooTwitterAPI.php | Twitter APIを利用するクラス pahooTwitterAPI。 使い方は「PHPでTwitterに投稿(ツイート)する」などを参照。include_path が通ったディレクトリに配置すること。 |
サンプル・プログラムの流れ
「PHPで機械学習(その1):ツイートを取得しDB格納」に加え、メソッド learnTweets が学習の中心を担う。
学習処理では TwitterAPI は使わず、テーブル $table_tweets に登録されたツイートを取りだし、形態素解析ツール MeCab を使って単語に分解していく。MeCab については「PHPで MeCabのユーザー辞書を作成する」で紹介している。
学習処理では TwitterAPI は使わず、テーブル $table_tweets に登録されたツイートを取りだし、形態素解析ツール MeCab を使って単語に分解していく。MeCab については「PHPで MeCabのユーザー辞書を作成する」で紹介している。
準備
MeCab の実行プログラムは定数 MECAB に、ユーザー辞書は FILE_UDIC_MECAB に定義しておく。
登録されたツイートのうち未学習のものをまとめて取り出す
メソッド takeTweet は、テーブル $table_tweets に登録されたツイートから、未学習(flag が 1以外の値のレコード)のものを取り出す。
取り出したら、flag を立てておく。
取り出したら、flag を立てておく。
テキストを単語ベクトルに変換
メソッド text2vector は、与えられたテキストを MeCab に食わせて単語に分解する。
学習する単語か否かは、メソッド isword で判定している。
この部分を変更することで、学習結果が変わってくる。
学習する単語か否かは、メソッド isword で判定している。
この部分を変更することで、学習結果が変わってくる。
単語ベクトル情報を更新
メソッド updateVectors は、ユーザー毎、単語ごとに単語の出現回数をカウントし、テーブル $table_vectors に書き込んでいく。
参考サイト
- PHPで機械学習(その1):ツイートを取得しDB格納:ぱふぅ家のホームページ
- PHPで機械学習(その2):ツイート内容を学習:ぱふぅ家のホームページ
- PHPで機械学習(その3):単純ベイズ分類機:ぱふぅ家のホームページ
- PHPとデータベース:ぱふぅ家のホームページ
- PHPでTwitterに投稿(ツイート)する:ぱふぅ家のホームページ
- 機械学習とは:sas
- ベイズの定理:高校数学の美しい物語
- 数式無しで理解する機械学習(エンジニア向け):情強志向
- 天文でも機械学習が始まるみたいです:迷人の日記
- PHPで形態素解析(分かち書き)する方法:浜村拓夫の世界
(この項おわり)
今回は、収集したデータ(ツイート)を単語に分解し、学習させた結果をデータベース(SQLite)に登録していく。
機械学習にはいくつかのアルゴリズムがあるが、ここでは実装が簡単な単純ベイズ分類器を用いることにする。学習方法は簡単で、ユーザー別の単語の出現回数をデータベースに登録していけばいい。
(2021年7月11日)PHP8対応,リファラ・チェック改良