BBS の改良
チャットと掲示板を融合したような環境を作りたいなと。ご意見くだされ。
このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。
以下の文章は注意書きです。
名前はかならず記入してください。ハンドルネームでも構いません。
またパスワードを入力することをお勧めします。
その場合他人による *なりすまし* と区別出来るかもしれません。
さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。
コメントスパム防止のため記事の内容を機械的にモデレート
(スパムである確率を計算)
する処理を通します。
どのような投稿であれ、たまたま計算誤差によりスパムとみなされ
秘密の場所
に収納される可能性があります。
その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。
-
94
owa
2014/06/11 23:43
id: mJs8kxp1Zus
prob: 0.0%
-
-
チャットBBS作ったほどの手練なら
Django での開発は楽勝だと思われます。
多分 Django 版 BBS は Kiyo さんに先を越されてしまうのでしょう。
> やっぱベースは Zope2 がヨサゲだが、開発が止まるのが心配
Zope はとりあえずサイトの頭に置きます。他は分散処理させる目論見です。
うまく行けば BBS, ブログ, 画像, 将棋などのコンテンツを
他の鯖に移行するつもりです。
-
93
kiyo
2014/06/11 09:53
id: N2rB9N33muU
prob: 0.0%
-
-
上野です。
私の勘違いですね。
Django ですか?
Python系web鯖、色々触っているのですが、
Zope3 難しいと言うよりややこしい
Plone 素まま使うのは良いかも知れないが拡張は敷居が高い
素のままなら wordpress の方が情報が多い
やっぱベースは Zope2 がヨサゲだが、開発が止まるのが心配。
Django 少し触って見ます。
-
92
owa
2014/06/10 23:47
id: mJs8kxp1Zus
prob: 0.0%
-
-
たとえば自由にリンク
http://owa.as.wakwak.ne.jp/zope/shogi/Games/Meijin/M69_6/dem...
...張れますよね (^^;
このようなことを専用鯖を立ててしたいのです。そして、
心は、今の Zope から部分的な独立が目的。つまり象脱 (^^;
とりあえず画像鯖 (自分も欲しい) あたりが狙い目かなと。
たとえば Django 使ってユニークな鯖を作りたい。
hoihoi-p 師曰く「人は思い出を作るためだけに生きている」
そだね! 認知症ぎみで写真の管理は自分でらもう不可能かも。
-
91
kiyo
2014/06/08 10:52
id: N2rB9N33muU
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
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: とても
|