<?xml version="1.0" encoding="EUC-JP"?>
<rss version="2.0">
   <channel>
      <title>kh.log</title>
      <link>http://www.kharakawa.com/kh.log/</link>
      <description>http://www.kharakawa.com/kh.log/</description>
      <language>ja</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Sun, 06 Apr 2008 22:35:04 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.34</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>日本人の平均余命と死亡率</title>
         <description><![CDATA[<p>「<a href="http://khlog.net/seimei/" target="_blank">日本人の平均余命と死亡率</a>」というページを公開しました。</p>

<p>年齢と性別を入力すると、</p>

<ul>
 <li>統計的にどれくらいの余命がありそうなのか</li>
 <li>将来のある年齢までの死亡率はどれくらいなのか</li>
</ul>

<p>を表示します。</p>
]]><![CDATA[<p>データは<a href="http://www.mhlw.go.jp/toukei/saikin/hw/life/life06/index.html" target="_blank">厚生労働省：日本人の平均余命　平成１８年簡易生命表</a>から抜粋しています。「平均余命」についてはこの生命表の値をそのまま、特定の年齢までの死亡率については、入力年齢での生存人口＝A、将来の年齢での生存人口＝Bとして、(A-B)/A で算出しています（これが本当に正しい方法なのかは調べていません）。</p>

<p>試しに自分の場合、30歳・男性では以下のようになります。平均余命はあと50年弱、つまり平均的には80歳近くまで生きられるようですが、75歳になるまでには1/4以上の確率で亡くなってしまうようです。85歳に至っては、生存率のほうが低い、というのが事実のようです。</p>

<img alt="seimei30.png" src="http://www.kharakawa.com/kh.log/images/seimei30.png" width="503" height="661" style="border: 1px gray solid;" />

<p>これは過去の実績からなる統計値なので、自分（特定の個人）の平均余命や死亡率がこの通りというわけではありません。また、将来の環境変化によっても変わってきます。それでも集団として見たときに、自分や自分と同い年の友人の4人にひとりがあと45年以内に亡くなってしまい、その10年後には今の半数以下になってしまう、という事実にはなかなか厳しいものがあります。</p>

<p>これまでは、自分の人生にあとどれくらいの時間が残されているのかということは考えてこなかったのですが、実際に数字を見て、残りの人生でいったい何ができるのか、何をすべきなのか、正直なところ考えさせられてしまいました。</p>

]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/04/post_33.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/04/post_33.html</guid>
         <category>インターネット</category>
         <pubDate>Sun, 06 Apr 2008 22:35:04 +0900</pubDate>
      </item>
            <item>
         <title>携帯できる読書スタンド「ほんたった」がすごく便利</title>
         <description><![CDATA[<p>生まれて初めて書見台、それも携帯用のものを使ってみたのですが、これが非常に良くできていて感動しました。<a href="http://edisonworld.jp/" target="_blank">エジソン</a>の「<a href="http://edisonworld.jp/?pid=2847840" target="_blank">ほんたった</a>」という商品がそれで、<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O64WS6%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O64WS6%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">アマゾン</a>でも買うことができます（左のリンクは黒。他に<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O67BKM%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O67BKM%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">白</a>、<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O65HOO%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O65HOO%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">青</a>、<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O69FLA%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O69FLA%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">赤</a>もあり）。本体価格にマーケットプレイスの送料が必要になりますが、それを含めても十分に「買い」だと思います。</p>

<p>実際に使ってみるとこんな感じです。経済学を独習中。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2365711395/" title="IMGP0070 by kharakawa8, on Flickr"><img src="http://farm3.static.flickr.com/2326/2365711395_49431378a9_m.jpg" width="240" height="180" alt="IMGP0070" /></a></p>

<p>裏側。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2366545520/" title="IMGP0071 by kharakawa8, on Flickr"><img src="http://farm4.static.flickr.com/3130/2366545520_9ea7e06eb9_m.jpg" width="240" height="180" alt="IMGP0071" /></a></p>

<p>アーム部分。本を固定するための主バインダーと、これからめくるページ、めくったページを挟むための補助アームの2段構成になっている。便利。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2365711665/" title="IMGP0072 by kharakawa8, on Flickr"><img src="http://farm3.static.flickr.com/2339/2365711665_100fdf17d7_m.jpg" width="240" height="180" alt="IMGP0072" /></a></p>]]><![CDATA[<p>そもそも書見台を使おうと思ったきっかけなのですが、コンピュータ関連の技術書を読んでいると、その大きさと重さをもてあます感がありませんか？</p>

<p>持ち上げて読むと腕とか肩が痛くなるし、かといって、机の上に置いて広げると、覆い被さるようにして読まないといけないので首が痛くなったり。手を離すと勝手にページがめくれたりするので、パソコンでメモをとったりするのも面倒です。</p>

<p>自分は数年前からの首の痛み、去年ぐらいからの頭痛に悩まされているのですが、その原因のひとつがこの技術書読みのせいではないかと思っています。「そんなに読んでないだろ」、とか言われるとアレなのですが、それはそれで置いておくとして。</p>

<p>それで、先日自宅の机を大きなものに買い換えたのをきっかけに、いわゆる書見台を試してみようと思い立ったのでした。</p>

<p>ところが、検索してみると意外とむずかしく、5000円以上するようなものでも、扱える本の厚さが2cmほどまでで、3cmからようやくそれっぽくなってくる（※）技術書の世界ではお話にならないようなものだとか、デザインがダサすぎるとか、やたらと高いとか、あるいは場所をとりすぎるとかで、これといったものが見つかりませんでした。</p>

<p>※ちなみに、これまでに自分が実際に手に取ったなかでいちばん厚かったのものは<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=0596009259%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0596009259%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">Programming Python 3rd edition</a>で、6.4cmでした。</p>

<p>「ほんたった」はそのなかでも携帯用ということであまりまじめにチェックしていなかったのですが、最後の最後に確認してみると、</p>

<ul><li>文庫本からA4サイズまで対応</li><li>約4cmまでの厚さに対応</li><li>しかも2000円以下</li></ul>

<p>ということで、すべてのポイントを満たしていたのでした。</p>

<p>試しに、自宅にあるいちばん分厚い技術書であるところの<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=4894712059%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/4894712059%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank">UNIXネットワークプログラミング〈Vol.1〉</a>−アマゾンによると4.4cm、実測では4.2cm−を乗せてみたところ、これもご覧の通り。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2365711947/" title="IMGP0074 by kharakawa8, on Flickr"><img src="http://farm3.static.flickr.com/2288/2365711947_8e44634732_m.jpg" width="240" height="180" alt="IMGP0074" /></a></p>

<p>裏側もたわんだりしていない。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2365712183/" title="IMGP0075 by kharakawa8, on Flickr"><img src="http://farm4.static.flickr.com/3169/2365712183_9b3d733ac1_m.jpg" width="240" height="180" alt="IMGP0075" /></a></p>

<p>本をはずしたところ。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2366546508/" title="IMGP0077 by kharakawa8, on Flickr"><img src="http://farm3.static.flickr.com/2109/2366546508_dac2a24471_m.jpg" width="240" height="180" alt="IMGP0077" /></a></p>

<p>もちろん携帯用なので、畳むと小さくなります。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2365712617/" title="IMGP0078 by kharakawa8, on Flickr"><img src="http://farm3.static.flickr.com/2347/2365712617_aa84a60013_m.jpg" width="240" height="180" alt="IMGP0078" /></a></p>

<p>付属のポーチに入れるとこれぐらい。常時鞄に入れておくにはちょっと大きいかもしれません。</p>

<p><a href="http://www.flickr.com/photos/48716144@N00/2366546802/" title="IMGP0079 by kharakawa8, on Flickr"><img src="http://farm4.static.flickr.com/3213/2366546802_3b02557d78_m.jpg" width="240" height="180" alt="IMGP0079" /></a></p>

<p>プラスチック製ということで耐久性に不安があったのですが、さわった感じでは、よほど手荒にあつかったり、夏の車内に放置したりしなければ問題なさそうでした。また、実際に到着した商品に同封されていた送り状によると、購入後1年間は、破損（落下もOKだそうです）に対して無償でパーツを支給しています、とのこと。この手の便利グッズにしてはサポート体制が手厚いようです。</p>

<p>2個目も買ってしまいそうだ…</p>

<p><a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O67BKM%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O67BKM%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank"><img src="http://ecx.images-amazon.com/images/I/01Cg2QS5TkL.jpg" border="0" alt="B000O67BKM" /></a><img src='http://www.assoc-amazon.jp/e/ir?t=khlog1-22&l=ur2&o=9' width='1' height='1' border='0' alt='' />&nbsp;<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O65HOO%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O65HOO%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank"><img src="http://ecx.images-amazon.com/images/I/11UY0q99Y%2BL.jpg" border="0" alt="B000O65HOO" /></a><img src='http://www.assoc-amazon.jp/e/ir?t=khlog1-22&l=ur2&o=9' width='1' height='1' border='0' alt='' />&nbsp;<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O69FLA%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O69FLA%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank"><img src="http://ecx.images-amazon.com/images/I/11FHtVQvwGL.jpg" border="0" alt="B000O69FLA" /></a><img src='http://www.assoc-amazon.jp/e/ir?t=khlog1-22&l=ur2&o=9' width='1' height='1' border='0' alt='' />&nbsp;<a href="http://www.amazon.co.jp/gp/redirect.html%3FASIN=B000O64WS6%26tag=khlog1-22%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/B000O64WS6%253FSubscriptionId=0G91FPYVW6ZGWBH4Y9G2" target="_blank"><img src="http://ecx.images-amazon.com/images/I/01o2sAiYReL.jpg" border="0" alt="B000O64WS6" /></a><img src='http://www.assoc-amazon.jp/e/ir?t=khlog1-22&l=ur2&o=9' width='1' height='1' border='0' alt='' /></p>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/post_12.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/post_12.html</guid>
         <category>ハードウェア</category>
         <pubDate>Thu, 27 Mar 2008 22:31:21 +0900</pubDate>
      </item>
            <item>
         <title>日本語の文章校正支援ツールをリリース</title>
         <description><![CDATA[<p>Yahoo! Japan が提供する校正支援APIを利用して、文書校正支援ツールを作ってみました。</p>

<p><a href="http://khlog.net/emend_jp/" target="_blank">文章校正支援ツール</a></p>

<p>「はるか彼方に小形飛行機が見える。」という文を校正してみると、こんな感じになります。</p>

<p><a href="http://www.kharakawa.com/kh.log/images/emend_jp.png"><img alt="emend_jp.png" src="http://www.kharakawa.com/kh.log/images/emend_jp-thumb.png" width="640" height="230" /></a></p>

<p>ブログ書きのお供にどうでしょうか。</p>]]><![CDATA[<p>校正すべき箇所と、言い換え候補はYahooの校正支援APIからの情報をそのまま使っているのですが、実際に使ってみるとちょっと苦しいところがあるようです。</p>

<p>たとえば、「遙か」に対して返ってくる「言い換え候補文字列」が「●か」になっているとか、「他の」に対しては「ほかの（「たの」と読む場合は漢字表記可）」が返ってくるとかいうケースです。これらの修正候補をそのまま指摘箇所に埋め込んでしまうと、文章としてはおかしくなってしまいます。「●か」とか「（「たの」と読む場合は漢字表記可）」という部分は本来言いかえ候補の一部ではなく、指摘に関する説明事項なのですが、「本来の言い換え候補」と「説明事項」がごっちゃになって「言い換え候補」として返ってきてしまっているようです。</p>

<p>校正支援APIを提供している意図は、「他のプログラムに校正支援機能を付けられるように」ということだと思うのですが、どこまでが「言い換え候補」なのかよくわからない情報が返ってくる、という状態だと、「言い換え候補を横目で見ながらユーザーにその言い換え候補を手入力させる」というレベルのものしか作れないことになるのではないでしょうか。あるいはそのレベルでしか提供をしない、というのが狙いなのかもしれませんが、改善を希望したいところではあります。</p>

<p>プログラム内部では、校正支援APIを呼び出すために、拙作のPythonライブラリ<a href="http://www.kharakawa.com/kh.log/archives/2008/03/yapi03.html">YAPI</a>を使っています。興味があればどうぞ。今回使ったのは、今のところまだ公開していないリビジョン 0.3.1です。これもいずれ公開します。</p>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/post_1.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/post_1.html</guid>
         <category>Python</category>
         <pubDate>Sun, 23 Mar 2008 16:31:01 +0900</pubDate>
      </item>
            <item>
         <title>YAPI-0.3 校正支援、ローカルサーチ、トピックスへの対応を追加</title>
         <description><![CDATA[<p>Yahoo! Japan の Web API を Python から利用するためのライブラリ、YAPI-0.3 をリリースします。</p>

<p><a href="http://www.kharakawa.com/program/YAPI/YAPI-0.3.tar.gz">YAPI-0.3 をダウンロード</a></p>

<p>（YAPI-0.2はこちらから：<a href="http://www.kharakawa.com/kh.log/archives/2008/02/yahoo_japan_web_python.html" target="_blank">kh.log - Yahoo! Japan の Webサービス用 Pythonライブラリ</a>）</p>

<p>これまでの検索（Web、画像、動画、関連検索ワード）と形態素解析サービスに加えて、新たに校正支援、ローカルサーチ、トピックスへの対応を追加しました。</p>

<p>APIのパラメータ詳細については<a href="http://developer.yahoo.co.jp/" target="_blank">Yahoo!デベロッパーネットワーク</a>を参照してください。</p>

<p>以下、READMEより：</p>
]]><![CDATA[
<pre>
== YAPI ==

This is a module package to make use of the Web API
provided by Yahoo! Japan Developer Center.

Currently supported API:
  Search (Web, Image, Video, WebUnit)
  MAService
  KouseiService
  Topics
  LocalSearch


== Install ==

python setup.py install


== Synopsis ==

&gt;&gt;&gt; from YAPI import *
&gt;&gt;&gt; APPID='Your Application ID Here.'
&gt;&gt;&gt;
&gt;&gt;&gt; ma = MAService(APPID)
&gt;&gt;&gt; d = ma.call(sentence=u'すもももももももものうち'
                output_coding='utf-8')
&gt;&gt;&gt;
&gt;&gt;&gt; d
&lt;YAPI.Response.MAServiceResponse object at 0x309547f0&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; if not d.is_error:
&gt;&gt;&gt;   for w in
&gt;&gt;&gt;   d.response['ResultSet']['ma_result']['word_list']['word']:
...     print '\t'.join((w['surface'], w['reading'], w['pos']))
...
すもも  すもも  名詞
も      も      助詞
もも    もも    名詞
も      も      助詞
もも    もも    名詞
の      の      助詞
うち    うち    名詞




&gt;&gt;&gt; ks = KouseiService(APPID)
&gt;&gt;&gt; d = o.call(sentence=u'遙か彼方に小形飛行機が見える。',
               output_coding='utf-8')
&gt;&gt;&gt;
&gt;&gt;&gt; for r in d.response['ResultSet']['Result']:
&gt;&gt;&gt;     print '\t'.join([str(r['StartPos']), str(r['Length']), r['Surface'],
...                      r['ShitekiWord'], r['ShitekiInfo']])
...
0       2       遙か    ●か     表外漢字あり
2       2       彼方    彼方（かなた）、かなた  用字
5       5       小形飛行機      小型飛行機      誤変換
</pre>

]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/yapi03.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/yapi03.html</guid>
         <category>Python</category>
         <pubDate>Sat, 22 Mar 2008 22:32:36 +0900</pubDate>
      </item>
            <item>
         <title>VRTServers.netで専用サーバを借りてみた</title>
         <description><![CDATA[<p>3週間ほど前になりますが、<a href="http://www.vrtservers.net/" target="_blank">VRTservers.net</a>という海外のホスティング業者からレンタルサーバーを借りてみました。専用サーバーにもかかわらず、月額29ドルから借りられる破格の価格設定で、なおかつ初期費用が無料であること、OSとしてCentOS5を選べること、メモリの増設が比較的安いこと、が決め手になりました。</p>

<p>いまのところまずまず良く動いています。以下に、契約したサーバーの構成や注意事項などを書いておきます。</p>
]]><![CDATA[<h4>サーバー構成</h4>
 
<p>AMD Sempron 2400+  ...  $29.00<br />
1GB RAM  ...  $75.00 （セットアップ時のみ）<br />
バックアップ領域1GB  ...  $1.00</p>

<p>合計：  $30.00/月、　初回のみ $105.00</p>

<p>という構成でオーダーしたのですが、なぜかCPUが  Intel Celeron 2.4 Ghz にアップグレードされていました。</p>

<p>メモリに限らず、ハードウェア系のアップグレードは「毎月$xx」と「初回のみ$xx」という2種類が選べるようです。半年から1年ほど使うと、だいたい初回払いの方が安そうです。</p>

<h4>支払い方法</h4>

<p>PayPalを使うことになりました。</p>

<p>当初、クレジットカードでの支払いを選択していたのですが、申し込み後、VRTServersの課金担当から「詐欺防止のため、カードのコピーを郵送するか、メールで画像を送ってちょ」と連絡がきたので、「それは無理。カード会社に承認とったらいいじゃん」と返したら、「うちは客が多いのでそんなことやってられないっす（意味不明）」「PayPal使ってくれたらコピー送らなくていいよ」と言われたので、いったんオーダーをキャンセルしてPayPalで申し込み直しました。</p>

<p>PayPal はあまり使ったことがなかったのでとまどったのですが、アカウントを作ってクレジットカードを登録し、VRTServersの申し込みフォームで「PayPal ID」という欄に、PayPalアカウントのメールアドレスを入れると良いみたいです。</p>

<p>申し込み送信後、PayPal経由で初月分の費用請求が来るので、PayPalにログオンして承認すると、VRTServersに支払いが行くようです。</p>

<p>クレジットカードと違って、たぶん毎月手動で承認しないといけないのかな？面倒だな…。</p>

<h4>気になること</h4>

<h5>転送量の把握</h5>

<p>一般的なレンタルサーバーのように、「今月のあなたの転送量はこれだけ」というページはないようです。「どうやって把握するの」と聞いたら、借りているサーバーをMRTGで監視しているらしいURLが送られてきて、「自分で把握してね。リミット超えたら追加料金発生するから」とのこと。でも、送られてきたURLでは「合計」ではなく、24時間ごとの「推移」しか出てないんですよね。これでどうやって把握するんだろう…毎日メモるのか？</p>

<p>まあしばらくは250GBの制限を超えることもなさそうなのでとりあえずは放置で。いずれ何らかの方法で計測しようかと思っています。</p>

<h5>解約方法</h5>

<p>Termsには「解約は更新日の8日前までに行うこと」と書かれているだけで、方法が明記されていません。メールで解約を申請したら「書面と電話でConfirmしてね」とか言われそうで怖いです。まあ、そのときはそのときでなんとでもしようがあると思いますが。</p>
]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/vrtserversnet.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/vrtserversnet.html</guid>
         <category>インターネット</category>
         <pubDate>Thu, 20 Mar 2008 12:34:28 +0900</pubDate>
      </item>
            <item>
         <title>第137回 TOEIC 申し込み失敗</title>
         <description><![CDATA[<p>3月23日のTOEICに申し込んだつもりだったのですが、どうやら失敗していたようです。</p>

<p>受験票が届かないので問い合わせようと思ったら、そもそも申し込み履歴がありませんでした。</p>

<p>前回の試験を受けた帰りにタリーズでネットにつないで、クレジットカードを取り出して番号を入力して、というところまではたしかに記憶しているので、ちょっと信じがたいのですが、最後の確認ボタンを押し忘れたといったところでしょうか。</p>

<p>すっかり試験直前モードで勉強していたのに…残念。<br />
</p>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/137_toeic.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/137_toeic.html</guid>
         <category>英語</category>
         <pubDate>Tue, 18 Mar 2008 16:21:55 +0900</pubDate>
      </item>
            <item>
         <title>Pythonで全角半角を正規化する方法</title>
         <description><![CDATA[<p>インターネット上の日本語を扱っていると、全角半角が統一されていない事による表記揺れをなんとかしたい場面に出くわします。半角で書かれた iPod も、全角で書かれたｉＰｏｄも同じものとして扱いたいときや、あるいは単に見た目がきれいになるように、英数字は半角に、カタカナは全角にそろえたい、という場合です。</p>

<p>Python では <a href="http://matatabi.homeip.net/blog/setomits/139" target="_blank">setomitsさんによる zenhan.py</a> を使うと、文字種ごとに全角半角を選択して変換することができ、除外文字も設定できるので便利です。ただ、そこまで柔軟でなくても良く、単に表記揺れがなくなれば良い、という場合も多いかと思います。その場合はPythonの標準ライブラリに含まれる unicodedata モジュールの normalize 関数を使うと便利です。</p>
]]><![CDATA[<pre>
&gt;&gt;&gt; import unicodedata
&gt;&gt;&gt;
&gt;&gt;&gt; s = 'ﾌｶﾞホゲ-%*@AＢＣ−％＊＠１２3'.decode('euc-jp')
&gt;&gt;&gt; n = unicodedata.normalize('NFKC', s)
&gt;&gt;&gt;
&gt;&gt;&gt; print s.encode('euc-jp')
ﾌｶﾞホゲ-%*@AＢＣ−％＊＠１２3
&gt;&gt;&gt;
&gt;&gt;&gt; print n.encode('euc-jp')
フガホゲ-%*@ABC−%*@123
</pre>

<p>Unicode で定義される各文字は、等価な別表現がある場合（たとえば半角のAと全角のＡ）に、どの表現を標準とするべきか、という情報が付与されているそうです。normalize関数はこの情報を使って、表記を統一する処理を行います。normalize関数の第一引数に 'NFKC' を渡すことで、ガ（カ＋濁点）のような複合文字が期待通りに分解・再合成されます。（詳しく知りたい方は <a href="http://homepage1.nifty.com/nomenclator/unicode/normalization.htm" target="_blank">Unicode正規化</a> あたりをどうぞ）</p>

<p>実際の変換結果を見てみると、英字、数字は半角に、カタカナは全角に正規化されることになっているようです。記号については、基本的に半角のようですが、全角マイナスと半角マイナスのように、別の文字として扱われているものもあるようです。マイナスが半角に正規化されるべきかどうかは場合によって異なると思われますが、ほとんどの用途にはこれで十分なのではないでしょうか。</p>
]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/python.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/python.html</guid>
         <category>Python</category>
         <pubDate>Fri, 14 Mar 2008 21:23:44 +0900</pubDate>
      </item>
            <item>
         <title>2008.03.06のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://nltk.sourceforge.net/index.php/Main_Page" target="_blank">Main Page - NLTK</a></strong>
<div style="margin-left: 12px;">PythonのNLP教育用ライブラリ。PDFで読める本もある。</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/03/20080306delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/03/20080306delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Fri, 07 Mar 2008 06:21:07 +0900</pubDate>
      </item>
            <item>
         <title>Yahoo! Japan の Webサービス用 Pythonライブラリ</title>
         <description><![CDATA[<p><a href="http://developer.yahoo.co.jp/" target="_blank">Yahoo!デベロッパーネットワーク</a> で公開されているWebサービスの Python バインディングを書いたので公開します。</p>

<p><strong style="color:red">UPDATED 2008/03/22: </strong><br />
YAPI-0.3 がリリースされています。<br />
<a href="http://www.kharakawa.com/kh.log/archives/2008/03/yapi03.html" target="_blank">kh.log - YAPI-0.3 校正支援、ローカルサーチ、トピックスへの対応を追加</a></p>

<p>ダウンロード： <a href="http://www.kharakawa.com/program/YAPI/YAPI-0.2.tar.gz">YAPI-0.2.tar.gz</a></p>

<p>libxml2-python 2.6.30以上が必須です。</p>

<p>いまのところ、検索系4種と形態素解析の5つのAPIのみの対応です。</p>

<p>XMLをPythonオブジェクトに変換するところで悩んでしまって、ちょっと奇妙な実装になっています。Yahoo!のAPIにはすべて、XML Schemaが用意されているのですが、これをどう生かせば良いのかがわからなかったため、独自のパージング関数を書いてしまいました。興味のある方は中をご覧ください。（そして正しい方法をご連絡ください…）</p>

<p>使用法は以下。</p>

]]><![CDATA[<p>READMEより：</p>

<pre>
== YAPI ==

This is a module package to make use of the Web API
provided by Yahoo! Japan Developer Center.

Currently supported API:
  Search (Web, Image, Video, WebUnit)
  MAService


== Install ==

python setup.py install


== Synopsis ==

&gt;&gt;&gt; from YAPI import *
&gt;&gt;&gt; APPID='Your Application ID Here.'
&gt;&gt;&gt;
&gt;&gt;&gt; ma = MAService(APPID)
&gt;&gt;&gt; d = ma.call(sentence=u'すもももももももものうち'
                output_coding='utf-8')
&gt;&gt;&gt;
&gt;&gt;&gt; d
&lt;YAPI.Response.MAServiceResponse object at 0x309547f0&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; for w in d.response['ResultSet']['ma_result']['word_list']['word']:
...   print '\t'.join((w['surface'], w['reading'], w['pos']))
...
すもも  すもも  名詞
も      も      助詞
もも    もも    名詞
も      も      助詞
もも    もも    名詞
の      の      助詞
うち    うち    名詞

</pre>
]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/yahoo_japan_web_python.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/yahoo_japan_web_python.html</guid>
         <category>Python</category>
         <pubDate>Wed, 27 Feb 2008 22:45:50 +0900</pubDate>
      </item>
            <item>
         <title>2008.02.24のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://homepage1.nifty.com/nomenclator/unicode/normalization.htm" target="_blank">Unicode正規化</a></strong>
<div style="margin-left: 12px;">Unicodeの互換文字と正規化について。ひたすらややこしい。</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/20080224delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/20080224delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Mon, 25 Feb 2008 06:21:07 +0900</pubDate>
      </item>
            <item>
         <title>2008.02.23のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://e-words.jp/p/r-papersize.html" target="_blank">用紙サイズ ： IT用語辞典</a></strong>
<div style="margin-left: 12px;">用紙サイズ一覧</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/20080223delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/20080223delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Sun, 24 Feb 2008 06:21:06 +0900</pubDate>
      </item>
            <item>
         <title>2008.02.10のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://www.eigokyoikunews.com/eigokyoiku/essay/200506/index.shtml" target="_blank">英語にだって｢敬語｣はある！　英語教育エッセイ【英語教育ニュース】</a></strong>
<div style="margin-left: 12px;">…つまり相手の行動に頼る Can (Could) you ? という言い方より、相手の許可に基いて自分で行動する Can (Could) I ? という言い方が、彼らの感覚にしっくりするようです…</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/20080210delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/20080210delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Mon, 11 Feb 2008 06:21:05 +0900</pubDate>
      </item>
            <item>
         <title>第136回 TOEICの結果</title>
         <description><![CDATA[<p>キター。</p>

<p>来ましたよ。</p>

<p>935点！！</p>

<p>もうTOEICで思い残すことはありません…。</p>

<p><a href="http://www.kharakawa.com/kh.log/archives/images/toeic136.png"><img alt="toeic136.png" src="http://www.kharakawa.com/kh.log/archives/images/toeic136-thumb.png" width="400" height="221" /></a></p>

<p>ただ、900点超えても、コミュニケーション能力が上がったかどうかと言われると「まったくもってわかりません」。</p>

<p>勉強をはじめてこの8ヶ月、英語で誰かとコミュニケーションしたのはほとんどゼロなのですよ。外国人に道を聞かれたら、日本語で「あっち！」とか指さしてしまう自信ありあり。ニュース英語は集中すればかなり聴き取れる、本などを読むときに辞書を引く回数は格段に減った、というのがせめてもの変化でしょうか。</p>

<p>次は英語で面接しなきゃいけないらしい、英検1級あたりを目指すかな…。</p>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/136_toeic_1.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/136_toeic_1.html</guid>
         <category>英語</category>
         <pubDate>Mon, 04 Feb 2008 12:42:10 +0900</pubDate>
      </item>
            <item>
         <title>2008.02.01のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://nanto.asablo.jp/blog/2008/01/25/2578762" target="_blank">Google の大規模データ処理: Days on the Moon</a></strong>
<div style="margin-left: 12px;">&amp;quot;Google の鵜飼文敏さんによる講演会「大規模データ処理を可能にする Google の技術」に行ってきました。…&amp;quot;</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/20080201delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/20080201delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Sat, 02 Feb 2008 06:21:04 +0900</pubDate>
      </item>
            <item>
         <title>2008.01.31のdel.icio.us</title>
         <description><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://kuler.adobe.com/" target="_blank">kuler</a></strong>
<div style="margin-left: 12px;">Adobe の</div>
</div><div style="margin-bottom: 10px;">
<strong><a href="http://www.birdflubreakingnews.com/" target="_blank">BirdFluBreakingNews.com</a></strong>
<div style="margin-left: 12px;">Bird(Avian) Fluの速報サイトかな。最近風邪を引くたびに、自分はPandemicを乗り越えられるのだろうか、と不安になる…</div>
</div>]]><![CDATA[<div style="margin-bottom: 10px;">
<strong><a href="http://q.hatena.ne.jp/1201605922#a798554" target="_blank">30歳男性で退職金制度の無い会社に勤めています。 将来の生活のため退職金代わりに、自分で給与から毎月運用したいなと考えています。 以下の条件で始める場合におすすめの.. - 人力検索</a></strong>
<div style="margin-left: 12px;">ETFと投資信託どっちがお得かという回答。</div>
</div>]]></description>
         <link>http://www.kharakawa.com/kh.log/archives/2008/02/20080131delicious.html</link>
         <guid>http://www.kharakawa.com/kh.log/archives/2008/02/20080131delicious.html</guid>
         <category>del.icio.us</category>
         <pubDate>Fri, 01 Feb 2008 06:21:05 +0900</pubDate>
      </item>
      
   </channel>
</rss>
