中国語判定(というか除外)したいという話
@penguinana_さんからもらったtweetの山解析してるんだけど、中には日本語だけじゃなくて中国語とか英語も混ざってたりする。
この辺解析するのは時間の無駄なので機械的にカットできないかと思った。
この辺id:n_shuyoさんのlanguagedetect使って判定できると幸せなんだけど、tweetだと結構誤判定するのが残念なとこ。
http://code.google.com/p/language-detection/
でも中国語なら中国の簡体字弾くだけでも結構減らせるかなぁって。
そしたらid:takeda25さんが↓のようにやるといけると教えてくれた。
あとで試してみる。
http://d.hatena.ne.jp/takeda25/20110131
その最中にこんなの見つけた。
- Pythonの自然言語処理用パッケージNLTKをインストール
- http://d.hatena.ne.jp/sconvict/20100804/1280900642
- ナイーブベイズを使って女の子とsex出来るかを判定してもらう
- http://nobinobi03.lolipop.jp/home/?p=1203
NLTK使うとあっさりナイーブベイズ使えますね。
takeda25さんっぽいのをpythonでも組んでみて、手元の単語リストにかけてみた。
#!/usr/bin/env python #! -*- coding:utf-8 -*- def is_zh(in_str): """ なぜかdoctestはエラーになる。utf-8でcodingしてるからか? >>> is_zh(u'おはよう') False >>> is_zh(u'说地') True """ questions_before = [s for s in in_str] questions_gb2312 = [s for s in \ in_str.encode('gb2312','ignore').decode('gb2312')] questions_cp932 = [s for s in \ in_str.encode('cp932','ignore').decode('cp932')] #print questions_before #print questions_gb2312 #print questions_cp932 if (questions_gb2312 == questions_before) and ( (set(questions_before) - set(questions_cp932)) != set([])): return True else: return False if __name__ == "__main__": is_zh(u'说地') #import doctest #doctest.testmod()
これを使った単語解析(転置インデックス)
你哈 : (14812416186L,) :zh
闭博 : (14810332159L,) :zh
头全 : (14810327508L,) :zh
闭型 : (14810327508L,) :zh
费购 : (14817092881L, 14816605506L, 14817938453L, 14816705974L) :zh
决议 : (14817940121L, 14813024930L) :zh
漫步 : (14818291205L,) :zh
掉为 : (14810341061L, 14810094110L) :zh
给翻 : (14810317336L,) :zh
氧传 : (14810292539L,) :zh
chúa : (14812466149L,) :zh
一些东西上面会不会有富士康员工的冤魂 : (14812377914L,) :zh
藓 : (14810331833L,) :zh
扫掉 : (14810331833L,) :zh
师资 : (14810332159L,) :zh
stíidxa : (14810419832L,) :zh
现逊 : (14809631006L,) :zh
过预 : (14809630282L,) :zh
电都 : (14809629113L,) :zh
虑其 : (14809630514L,) :zh
变做 : (14809630514L,) :zh
ángel : (14809622503L,) :zh
进喜 : (14817965926L,) :zh
一梭子也是误伤 : (14819431229L,) :zh
娼妇 : (14810341061L,) :zh
细绳 : (14810350951L,) :zh
乐会 : (14810348555L, 14802116564L) :zh
盘子 : (14812467061L,) :zh
药片 : (14812436256L,) :zh
cobrarán : (14810385185L,) :zh
个签 : (14810389321L,) :zh
饰门 : (14809631828L,) :zh
一杆图即将进入下跌周期 : (14809632611L,) :zh
也刚 : (14810730011L, 14810907764L) :zh
卢安 : (14802102481L, 14802075186L, 14802000756L, 14802463096L, 14804064553L, 14801735979L, 14810332159L) :zh
栏只 : (14810349846L,) :zh