HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

ドキュメント 象歩 Web瓦版
 BBSボード RDF
こんにちは (23)
おためし板 (321)
質問箱 (94)
テスト (30)
You散歩 (4)
建築 DIY (6)
MTB (32)
(9)
節電対策 (2)
このサイトに関する話 (186)
Linux (396)
PC用ハードウェア (6)
Vine Linux 野良系 (64)
PC 工作 (31)
ドローン (0)
自家製GAFA (0)
BBS の改良 (105)
Vine Seed (520)
Zope とプロダクト (95)
Web の利用技術 (131)
DB とファイルシステム (63)
Python と C/C++ と... (29)
Zopeプロダクト開発メモ (3)
UTF-8 化 (42)
Mail 環境 (8)
COREBlog (109)
Zope3 (51)
Windows 64bit (18)
Mac (2)
Squeak スクイーク (67)
Django ぶらり一人旅 (3)
64bits (52)
Mono 思いにふける (10)
Mint Linux (8)
CentOS (2)
ディスクトップ (4)
象歩将棋 (478)
将棋よもやま (210)
サイトのデザイン (31)
心配な話 (66)
うそ (21)
うそ総集編 (0)
昔のゲストブック (20)
ボート部 (23)
Web 日記 (199)
 スパム
逮捕しる (20)
スパムお溜り (47)
ごみ箱 (6)
 リンク
kiyoさんのサイト
ペンタ郎の漫漕ブログ
端艇部員日記
TIT漕艇部の練習動画 @YouTube
墨堤の雄 @FaceBook
ペンタ(五大学ミドル) @FaceBook
Facebook
Vine Seed パッケージビルド状況
Vine Linux パッケージ情報
VineLinux バグトラッキングセンタ
VineSeed 開発用 Trac
VineSeed Specs
RPMパッケージの作成方法
Linux Standard Base
Planet Vine
Vine Linux ユーザーフォーラム
Vine Users ML アーカイブ
VineSeed ML アーカイブ
twitter#VineLinux
勝手に将棋トピックス
詰将棋おもちゃ箱

BBS の改良

チャットと掲示板を融合したような環境を作りたいなと。ご意見くだされ。


このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。 以下の文章は注意書きです。

名前はかならず記入してください。ハンドルネームでも構いません。 またパスワードを入力することをお勧めします。 その場合他人による *なりすまし* と区別出来るかもしれません。 さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。

コメントスパム防止のため記事の内容を機械的にモデレート (スパムである確率を計算) する処理を通します。 どのような投稿であれ、たまたま計算誤差によりスパムとみなされ 秘密の場所 に収納される可能性があります。 その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。

名前  パスワード(任意)

全104件 - 01 02 03 04 05 06 07 08 09 10 11

90  owa  2014/06/07 03:28 id: mJs8kxp1Zus  prob: 0.1%
画像鯖だけは別にしようと
それは3年っ以上前のことでした。
ちあきなおみは今どこに。

画像管理が面倒。
画像サーバー作って分離できたら便利だと思ってます。
考える時間が無くて今に至ってます。
89  owa  2008/06/22 16:50 id: mJs8kxp1Zus  prob: 0.1%
ちと修正
投稿時に機械的にモデレートします。
あやしいもの → 997:「逮捕しる」
スパムと判定 → 998:「スパムお溜まり」

逮捕したものは目視で判定し手作業で移動します。
このとき自動的に SpamBayes データベースが更新されます。
997:問題ない投稿 → xxx: 投稿時の板に戻す
997:スパム → 998:「スパムお溜まり」に移動
88  owa  2008/06/21 22:31 id: mJs8kxp1Zus  prob: 0.0%
スパムフィルタを実装
SpamBayesをBBSに実装しました。おかげで面白くなって来ました、どうぞいらっしゃい;
スパムと判定 → 999:「ごみ箱」
あやしいもの → 997:「逮捕しる」に自動で入ります。

とりあえず逮捕したものは目視で判断し
997:まともな投稿 → 996:「無罪です。すまんのぅ」
997:スパムと確認 → 998:「スパムお溜まり」に手作業で移動します

後は定期的に以下のバッチ処理を起動します(同時にスパムデータベースを教育する)
996:まともな投稿 → xxx: 投稿時の板に戻す
998:スパム溜まり → 999:「ごみ箱」に移動

と言いながら、現時点では日本語スパムの献体がほとんど登録されていないので圧倒的に不利な状況...orz
87  owa  2008/06/20 22:26 id: mJs8kxp1Zus  prob: 0.0%
スパム確率を表示
各記事のヘッドラインに prob=x.xxx と表示しています。最大値は 1.000 です。
なお 0.900 以上はスパムと判断し赤色で表示します。

しばらく使った後、このBBSのフィルタリング処理を置き換える予定です。
何が嬉しいのかと言えば、コメントスパムへの対処がほぼ自動化されることです。
三日くらい家を空けても大丈夫。

ブラックリストやバズワードを手作業で登録する必要がありません。
時々スパム溜まりをチェックし、判別できなかったものを移動するだけです。
インターフェースは Zope プロダクトにしてあるので、そのうち公開するつもり。
86  owa  2008/06/16 22:32 id: mJs8kxp1Zus  prob: 0.0%
SpamBayes データベース作成
bbs のエントリと mail ではスパム情報が大分違います。
うまく判定してくれないこともあるので新規に作成することにした。
果たして、判別結果は(今のところ)恐ろしいほど的確です;;

下記プログラムは PostgreSQL に保存してある BBS 記事を取り出し、
SpamBayes データベースを作成します。

#! /usr/bin/env python
import os
import psycopg
from spambayes import storage
from unicodeblock_tokenizer import tokenize # 適当なスプリッタ

def bbsEntries(cond):
    conn = psycopg.connect('dbname=bbs user=zope host=localhost')
    curs = conn.cursor()
    curs.execute("SELECT * FROM chatsubtb WHERE %s" % (cond,))
    rows = curs.fetchall()
    for r0, r1, r2, name, mail, comm, r6, r7 in rows:
        yield 'X-NAME:%s X-MAIL:%s %s' % (name, mail, comm)
    conn.close()

def train(cond, is_spam=False):
    path = os.path.expanduser('./hammiedb') # 作成する DB へのパス
    bayes = storage.open_storage(path, 'dbm', 'w')
    for s in bbsEntries(cond):
        s = unicode(s, 'utf-8')
        bayes.learn(tokenize(s), is_spam) # データベースに教え込む
    bayes = None

if __name__ == '__main__':
    train('mid<=900', is_spam=False)               # 900番以下は通常の記事
    train('mid>=997 and mid<=999', is_spam=True)   # 99{7,8,9} はスパムが保存されている
85  owa  2008/06/15 23:02 id: mJs8kxp1Zus  prob: 0.0%
コメントスパムうざい
SpamBayes を利用して簡単にフィルタリング出来ないかな?
と、試してみると普通のテキストでも使える。さて効果あるかしら
------------------------------------------------------
#! /usr/bin/env python
import os
from spambayes import storage
from spambayes.SplitterForU import tokenize

def getScore(s):
    tokens = tokenize(s)
    fname = os.path.expanduser('~/.hammiedb')
    bayes = storage.open_storage(fname, 'dbm', 'r')
    score, items = bayes.spamprob(tokens, True)
    print 'spamprob: score=%.3f' % score
    for k, v in items:
        print '%.3f: %s' % (v, k.encode('utf-8'))

if __name__ == '__main__':
    getScore(u'この前はありがとう。とても参考になりました。')
------------------------ 〆 ------------------------------
実行出力:
spamprob: score=0.798
0.103: *H*
0.605: になりました
0.699: *S*
0.706: 前
0.767: とても
84  owa  2008/02/22 20:23 id: mJs8kxp1Zus  prob: 0.6%
Papasan のところで全文検索対応
http://papasan.org/papablog/483
http://papasan.org/papablog/30b530fc30fc/ping30b530fc30fc/51...

必要なものは postgresql, mecab, senna, ludia
http://mecab.sourceforge.net/
http://qwik.jp/senna/FrontPageJ.html
https://sourceforge.jp/projects/ludia/
軽くて正確で速そう。感謝^^
83  owa  2005/07/26 22:34 id: mJs8kxp1Zus  prob: 0.3%
「PostgreSQLで全文検索」なんて記事がありました。
http://blog.postgresql.jp/28 - JPUG広報担当blog
*rast* を使うと like 検索より 100 倍くらい速いらしい。
http://www.netlab.jp/rast/
インデクス作るのであたりまえか。でも後で試してみようっと。
82  owa  2004/10/09 23:37 id: mJs8kxp1Zus  prob: 0.7%
kiyo さん like な検索方式試してます。
http://owa.as.wakwak.ne.jp/zope/labs/bbs/2/254

便利ですね。論理式で検索するには PostgreSQL との間に一枚かますしかないのかな。like
演算子でも可能かもしれないけどペンディング。
81  owa  2004/07/18 22:15 id: mJs8kxp1Zus  prob: 0.1%
BBS のトップページに Google 検索機能追加した。本当は独自検索処理を付けたかったけど、ものは試し。
10 分もあれば追加できる Google はとても便利だ。
当然、もし Google がダウンした場合使えないし、イントラネットでも使えない。
使ってみれば、どういうものが必要か自然と解かるであろう。