[Home]POPFile/BBS

Amatubu_Wiki | POPFile | RecentChanges | Preferences

POPFile で掲示板のメッセージをフィルタする

サンプルモジュール (Perl)

[Filter::POPFile]

必要なもの

準備

とりあえず動かすのを目標に。

  1. 必要なモジュールをサーバにインストールしておく。
  2. 掲示板の CGI が設置されたところに、POPFile の一部と上記サンプルモジュールをコピーする。
  3. バケツを作成する機能はまだ存在しないので、ローカルで POPFile を動かし、バケツをふたつ (inbox と spam とか) 以上作成する。このデータベースをサーバへ転送する (メール受信用のものを使用してもよい)。
  4. 設定ファイル(popfile.cfg)は自動的に作られるが、日本語処理を行いたい場合は、
    html_language Nihongo
    とだけ書いたファイルを準備してサーバへ転送する。

設定方法

POPFile のデータフォルダの場所を変更する

POPFile は、POPFILE_USER 環境変数を元にデータフォルダを探しにいく。CGI を動かすユーザにあらかじめ環境変数を設定しておくか、CGI 内で

$ENV{'POPFILE_USER'} = /path/to/data_folder/;
という感じで設定しておく。

ログファイルの保存場所を変更する

デフォルトではログファイルは POPFile のデータフォルダ内に保存される。この保存先を変更したい場合は、設定ファイル (popfile.cfg) の logger_logdir を編集する。

ログファイルを保存しないようにする

現状では、ログファイルを定期的に削除する機能がないため、ログを保存したくない場合は GLOBAL_debug オプションを 0 にするとよい。動作に問題がないことが確認できたら、無効にしてもよいだろう。

使用方法

今のところ、定義している関数は classify (分類させる) と train (学習させる) のみ。

コードサンプル

# POPFile に分類させる
# %FORM にフォームの内容が保存されている

use Filter::POPFile;

my $bucket = Filter::POPFile::classify(
    -title           => $FORM{'dai'},
    -name            => $FORM{'name'},
    -body            => $FORM{'t'},
    -encode          => 'Shift_JIS',
    -remote_addr     => $ENV{'REMOTE_ADDR'},
    -remote_host     => $ENV{'REMOTE_HOST'},
    -http_user_agent => $ENV{'HTTP_USER_AGENT'},
);

# POPFile に学習させる
# @line に掲示板への書き込みデータが保存されている

use Filter::POPFile;

my $result = Filter::POPFile::train(
    -title           => $line[3],
    -name            => $line[4],
    -body            => $line[7],
    -encode          => 'Shift_JIS',
    -remote_addr     => ( $line[13] || '' ),
    -remote_host     => ( $line[12] || '' ),
    -http_user_agent => ( $line[14] || '' ),
);

解説

まだ。

TODO


Amatubu_Wiki | POPFile | RecentChanges | Preferences
This page is read-only | View other revisions
Last edited November 8, 2009 19:07 by Amatubu (diff)
Search:

Copyright (c) 1996-2006 naoki iimura e-mail