: O. Yuanying

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_and_token.png

クラス図はこんな感じ??

将来的にはコーパスはデータベースに保存するとして、 とりあえずはファイルシステムにこれらを保存することにしよう。 ファイル読み書きの勉強にもなるしね。

それぞれのコーパスはあるディレクトリにファイルとして保存するとして、 その保存するディレクトリは指定しておく必要がある。


Category.init(directory='/Users/yuanying/corpus')

ということで、仕様(単体テスト)を(あとで)書いてみる。