3368114 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

傀儡師の館.Python

傀儡師の館.Python

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Recent Posts

Calendar

Keyword Search

▼キーワード検索

Category

Archives

2025.01
2024.12
2024.11
2024.10
2024.09
2024.08
2024.07
2024.06
2024.05
2024.04

Freepage List

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
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 のあれなところ。いろいろ選択肢があるのはよいのだけど。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2007.05.22 02:46:01
コメント(1) | コメントを書く



© Rakuten Group, Inc.
X