1992419 ランダム
 ホーム | 日記 | プロフィール 【ログイン】

傀儡師の館.Python

PR

日記/記事の投稿

カレンダー

キーワードサーチ

▼キーワード検索

カテゴリ

バックナンバー

2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月

フリーページ

楽天プロフィール


kugutsushiさん

怠惰な人

フォローする


■ 趣味・関心キーワード
デジモノ 

サイド自由欄

設定されていません。
2007年05月21日
XML
カテゴリ:Python
ppkfなんてのを作ってみました を見つける。Pure Python で書かれた日本語の文字コード判別か。Python の一つあれなのは標準でそういうものがないところなのだな。手はいろいろあるけれど。

低速(nkf_pythonと比べて100倍ほど遅い...とはいえ、 51万個の単語を71秒で処理する程度 は可能です)

51万語 / 71秒 = 7183語か。ppkf対python_nkfガチンコ対決 を見ると、

[ppkf] Recognize 512084 strings within 71 seconds.
[nkf] Recognize 512084 strings within 1 seconds.

ということで、遅いことは遅いが、POST された文字列のコードをチェックして程度なら、それほど問題にならない速度かな。

短い文字列に対しても高い判別精度(であってほしい)

これがうまく動いているようなら使ってみる価値はありそう。Universal Encoding Detector は、文字コード判定ライブラリ Universal Encoding Detector の投稿にあるようにファイル単位とか長めの文字列で判定するにはよいけど、短い文字列の判定は苦手っぽい。

ppkf の方はコメントを見たら

eucjpでエンコードされた文字列で、半角英数と全角がほぼ同数ほど入っていた場合に間違うことがあるりました。

なようだ。

これを読んで、思いつく。ちょっと意地悪してみる。

>>> import ppkf
>>> p = ppkf.ppkf()
>>> jstr = u"蛇のとぐろを見る".encode("euc-jp")
>>> print p.guess(jstr)
(0.7142857142857143, 'euc_jp')
>>> print p.guess(jstr[:-1])

IndexError: array index out of range
のエラーで落ちる。

中途半端にぶった切られた文字列が渡されたときにはエラーになるかもしれないので、それなりの対処が必要ね。

標準的な日本語の判別モジュールがないところが Python のあれなところ。いろいろ選択肢があるのはよいのだけど。






最終更新日  2007年05月22日 02時46分01秒
コメント(1) | コメントを書く
[Python] カテゴリの最新記事


Copyright (c) 1997-2017 Rakuten, Inc. All Rights Reserved.