BBS の改良
チャットと掲示板を融合したような環境を作りたいなと。ご意見くだされ。
↪ 新規投稿する
93 kiyo #3ff4445 2014/06/11 09:53 prob:0.0%
上野です。 私の勘違いですね。 Django ですか? Python系web鯖、色々触っているのですが、 Zope3 難しいと言うよりややこしい Plone 素まま使うのは良いかも知れないが拡張は敷居が高い 素のままなら wordpress の方が情報が多い やっぱベースは Zope2 がヨサゲだが、開発が止まるのが心配。 Django 少し触って見ます。
92 owa #e8faefa 2014/06/10 23:47 prob:0.0%
たとえば自由にリンク http://owa.as.wakwak.ne.jp/zope/shogi/Games/Meijin/M69_6/demo ...張れますよね (^^; このようなことを専用鯖を立ててしたいのです。そして、 心は、今の Zope から部分的な独立が目的。つまり象脱 (^^; とりあえず画像鯖 (自分も欲しい) あたりが狙い目かなと。 たとえば Django 使ってユニークな鯖を作りたい。 hoihoi-p 師曰く「人は思い出を作るためだけに生きている」 そだね! 認知症ぎみで写真の管理は自分でらもう不可能かも。
91 kiyo #3ff4445 2014/06/08 10:52 prob:0.0%
上野です。 >>90 画像サーバは考えていませんが、PC の写真の整理は何とかしたい。 子供が他県に住んでいる場合など、旅行写真とか Zope 上で見せる事ができたらいいなあと思ってます。 ただ他人には見せたくない物、そもそも写真の整理を取った日付で管理するのかイベント別(例えば結婚式)、等まとまっていないし、 Zope2, Zope3, Plone どれを使うかも決めていないので模索中です。 owaさんの考えている事がわかってないのですが、思い付きで書かせてもらうと、 1.画像サーバをたてる。 2.Zope 側から nfs で画像サーバをマウントする。 3.マウントしたフォルダーを LocalFS で Zopeと連結する。 4.セキュリティ等は Zope側で対処 他にも python の ftplibを使う方法はポート20,21を開放するのが抵抗ある python の ssh( paramiko が簡単みたい)使って ssh でトンネル掘る この方法は画像サーバ側にも apache がいるかも知れない。 <img src="http://画像サーバIPアドレス/...">で参照するのが簡単なので、、、 単なる思い付きですが。。。 実際試した訳ではないので無責任(^^;; 追加:  昔は dtml-methodで <dtml-call "RESPONSE.setHeader('content-type',"image/jpeg")"> を <img src="http://***"> の前に呼び出すのだと思い込んでいたのですが、 エラー(この画像は壊れている為表示できません)と出る。 <dtml-call "RESPONSE.setHeader('content-type',"image/jpeg")"> を削除すると表示する。 何時からかしりませんが、構文が変わったのかなあ?
90 owa #e8faefa 2014/06/07 03:28 prob:0.0%
画像鯖だけは別にしようと それは3年っ以上前のことでした。 ちあきなおみは今どこに。 画像管理が面倒。 画像サーバー作って分離できたら便利だと思ってます。 考える時間が無くて今に至ってます。
89 owa #e8faefa 2008/06/22 16:50 prob:0.0%
ちと修正 投稿時に機械的にモデレートします。 あやしいもの → 997:「逮捕しる」 スパムと判定 → 998:「スパムお溜まり」 逮捕したものは目視で判定し手作業で移動します。 このとき自動的に SpamBayes データベースが更新されます。 997:問題ない投稿 → xxx: 投稿時の板に戻す 997:スパム → 998:「スパムお溜まり」に移動
88 owa #e8faefa 2008/06/21 22:31 prob:0.0%
スパムフィルタを実装 SpamBayesをBBSに実装しました。おかげで面白くなって来ました、どうぞいらっしゃい; スパムと判定 → 999:「ごみ箱」 あやしいもの → 997:「逮捕しる」に自動で入ります。 とりあえず逮捕したものは目視で判断し 997:まともな投稿 → 996:「無罪です。すまんのぅ」 997:スパムと確認 → 998:「スパムお溜まり」に手作業で移動します 後は定期的に以下のバッチ処理を起動します(同時にスパムデータベースを教育する) 996:まともな投稿 → xxx: 投稿時の板に戻す 998:スパム溜まり → 999:「ごみ箱」に移動 と言いながら、現時点では日本語スパムの献体がほとんど登録されていないので圧倒的に不利な状況...orz
87 owa #e8faefa 2008/06/20 22:26 prob:0.0%
スパム確率を表示 各記事のヘッドラインに prob=x.xxx と表示しています。最大値は 1.000 です。 なお 0.900 以上はスパムと判断し赤色で表示します。 しばらく使った後、このBBSのフィルタリング処理を置き換える予定です。 何が嬉しいのかと言えば、コメントスパムへの対処がほぼ自動化されることです。 三日くらい家を空けても大丈夫。 ブラックリストやバズワードを手作業で登録する必要がありません。 時々スパム溜まりをチェックし、判別できなかったものを移動するだけです。 インターフェースは Zope プロダクトにしてあるので、そのうち公開するつもり。
86 owa #e8faefa 2008/06/16 22:32 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 #e8faefa 2008/06/15 23:02 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 #e8faefa 2008/02/22 20:23 prob:0.0%
Papasan のところで全文検索対応 http://papasan.org/papablog/483 http://papasan.org/papablog/30b530fc30fc/ping30b530fc30fc/51686587691c7d22/ 必要なものは postgresql, mecab, senna, ludia http://mecab.sourceforge.net/ http://qwik.jp/senna/FrontPageJ.html https://sourceforge.jp/projects/ludia/ 軽くて正確で速そう。感謝^^