Pythonでスパムフィルタを書く/コーパス
A Plan for Spamに従って、 あるカテゴリ(Span/Ham)に分類されたトークンの出現回数を保持するハッシュを作成する。
さらに、あるカテゴリに分類されたテキスト(メールなど)の総数を保持するハッシュも作成する。
つまり擬似的に、
spam = Category.find_or_create_by_name('Spam')
# Spamとカテゴライズされたテキストから'click'というトークンが現れた回数
print spam.token_count('click')
# Spamとカテゴライズされたテキストの総数
print spam.count
こんな感じのことがやりたい。
あと、そのコーパスを作成する方法も必要だよね。
spam = Category.find_or_create_by_name('Spam')
# トークンのリストをSpamとして登録する
spam.register_tokens(['click', 'FF0000', 'Viagra', 'SALE'])
# Spamとして分類されたテキストの数をインクリメントする
spam.count += 10
クラス図はこんな感じ??
将来的にはコーパスはデータベースに保存するとして、 とりあえずはファイルシステムにこれらを保存することにしよう。 ファイル読み書きの勉強にもなるしね。
それぞれのコーパスはあるディレクトリにファイルとして保存するとして、 その保存するディレクトリは指定しておく必要がある。
Category.init(directory='/Users/yuanying/corpus')
ということで、仕様(単体テスト)を(あとで)書いてみる。