White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

中国語判定(というか除外)したいという話

@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