「日本人の平均余命と死亡率」というページを公開しました。
年齢と性別を入力すると、
- 統計的にどれくらいの余命がありそうなのか
- 将来のある年齢までの死亡率はどれくらいなのか
を表示します。
続きを読む≫
データは厚生労働省:日本人の平均余命 平成18年簡易生命表から抜粋しています。「平均余命」についてはこの生命表の値をそのまま、特定の年齢までの死亡率については、入力年齢での生存人口=A、将来の年齢での生存人口=Bとして、(A-B)/A で算出しています(これが本当に正しい方法なのかは調べていません)。
試しに自分の場合、30歳・男性では以下のようになります。平均余命はあと50年弱、つまり平均的には80歳近くまで生きられるようですが、75歳になるまでには1/4以上の確率で亡くなってしまうようです。85歳に至っては、生存率のほうが低い、というのが事実のようです。
これは過去の実績からなる統計値なので、自分(特定の個人)の平均余命や死亡率がこの通りというわけではありません。また、将来の環境変化によっても変わってきます。それでも集団として見たときに、自分や自分と同い年の友人の4人にひとりがあと45年以内に亡くなってしまい、その10年後には今の半数以下になってしまう、という事実にはなかなか厳しいものがあります。
これまでは、自分の人生にあとどれくらいの時間が残されているのかということは考えてこなかったのですが、実際に数字を見て、残りの人生でいったい何ができるのか、何をすべきなのか、正直なところ考えさせられてしまいました。
≪閉じる
生まれて初めて書見台、それも携帯用のものを使ってみたのですが、これが非常に良くできていて感動しました。エジソンの「ほんたった」という商品がそれで、アマゾンでも買うことができます(左のリンクは黒。他に白、青、赤もあり)。本体価格にマーケットプレイスの送料が必要になりますが、それを含めても十分に「買い」だと思います。
実際に使ってみるとこんな感じです。経済学を独習中。

裏側。

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

続きを読む≫
そもそも書見台を使おうと思ったきっかけなのですが、コンピュータ関連の技術書を読んでいると、その大きさと重さをもてあます感がありませんか?
持ち上げて読むと腕とか肩が痛くなるし、かといって、机の上に置いて広げると、覆い被さるようにして読まないといけないので首が痛くなったり。手を離すと勝手にページがめくれたりするので、パソコンでメモをとったりするのも面倒です。
自分は数年前からの首の痛み、去年ぐらいからの頭痛に悩まされているのですが、その原因のひとつがこの技術書読みのせいではないかと思っています。「そんなに読んでないだろ」、とか言われるとアレなのですが、それはそれで置いておくとして。
それで、先日自宅の机を大きなものに買い換えたのをきっかけに、いわゆる書見台を試してみようと思い立ったのでした。
ところが、検索してみると意外とむずかしく、5000円以上するようなものでも、扱える本の厚さが2cmほどまでで、3cmからようやくそれっぽくなってくる(※)技術書の世界ではお話にならないようなものだとか、デザインがダサすぎるとか、やたらと高いとか、あるいは場所をとりすぎるとかで、これといったものが見つかりませんでした。
※ちなみに、これまでに自分が実際に手に取ったなかでいちばん厚かったのものはProgramming Python 3rd editionで、6.4cmでした。
「ほんたった」はそのなかでも携帯用ということであまりまじめにチェックしていなかったのですが、最後の最後に確認してみると、
- 文庫本からA4サイズまで対応
- 約4cmまでの厚さに対応
- しかも2000円以下
ということで、すべてのポイントを満たしていたのでした。
試しに、自宅にあるいちばん分厚い技術書であるところのUNIXネットワークプログラミング〈Vol.1〉−アマゾンによると4.4cm、実測では4.2cm−を乗せてみたところ、これもご覧の通り。

裏側もたわんだりしていない。

本をはずしたところ。

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

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

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





≪閉じる
Yahoo! Japan が提供する校正支援APIを利用して、文書校正支援ツールを作ってみました。
文章校正支援ツール
「はるか彼方に小形飛行機が見える。」という文を校正してみると、こんな感じになります。

ブログ書きのお供にどうでしょうか。
続きを読む≫
校正すべき箇所と、言い換え候補はYahooの校正支援APIからの情報をそのまま使っているのですが、実際に使ってみるとちょっと苦しいところがあるようです。
たとえば、「遙か」に対して返ってくる「言い換え候補文字列」が「●か」になっているとか、「他の」に対しては「ほかの(「たの」と読む場合は漢字表記可)」が返ってくるとかいうケースです。これらの修正候補をそのまま指摘箇所に埋め込んでしまうと、文章としてはおかしくなってしまいます。「●か」とか「(「たの」と読む場合は漢字表記可)」という部分は本来言いかえ候補の一部ではなく、指摘に関する説明事項なのですが、「本来の言い換え候補」と「説明事項」がごっちゃになって「言い換え候補」として返ってきてしまっているようです。
校正支援APIを提供している意図は、「他のプログラムに校正支援機能を付けられるように」ということだと思うのですが、どこまでが「言い換え候補」なのかよくわからない情報が返ってくる、という状態だと、「言い換え候補を横目で見ながらユーザーにその言い換え候補を手入力させる」というレベルのものしか作れないことになるのではないでしょうか。あるいはそのレベルでしか提供をしない、というのが狙いなのかもしれませんが、改善を希望したいところではあります。
プログラム内部では、校正支援APIを呼び出すために、拙作のPythonライブラリYAPIを使っています。興味があればどうぞ。今回使ったのは、今のところまだ公開していないリビジョン 0.3.1です。これもいずれ公開します。
≪閉じる
Yahoo! Japan の Web API を Python から利用するためのライブラリ、YAPI-0.3 をリリースします。
YAPI-0.3 をダウンロード
(YAPI-0.2はこちらから:kh.log - Yahoo! Japan の Webサービス用 Pythonライブラリ)
これまでの検索(Web、画像、動画、関連検索ワード)と形態素解析サービスに加えて、新たに校正支援、ローカルサーチ、トピックスへの対応を追加しました。
APIのパラメータ詳細についてはYahoo!デベロッパーネットワークを参照してください。
以下、READMEより:
続きを読む≫
== 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 ==
>>> from YAPI import *
>>> APPID='Your Application ID Here.'
>>>
>>> ma = MAService(APPID)
>>> d = ma.call(sentence=u'すもももももももものうち'
output_coding='utf-8')
>>>
>>> d
<YAPI.Response.MAServiceResponse object at 0x309547f0>
>>>
>>> if not d.is_error:
>>> for w in
>>> d.response['ResultSet']['ma_result']['word_list']['word']:
... print '\t'.join((w['surface'], w['reading'], w['pos']))
...
すもも すもも 名詞
も も 助詞
もも もも 名詞
も も 助詞
もも もも 名詞
の の 助詞
うち うち 名詞
>>> ks = KouseiService(APPID)
>>> d = o.call(sentence=u'遙か彼方に小形飛行機が見える。',
output_coding='utf-8')
>>>
>>> for r in d.response['ResultSet']['Result']:
>>> print '\t'.join([str(r['StartPos']), str(r['Length']), r['Surface'],
... r['ShitekiWord'], r['ShitekiInfo']])
...
0 2 遙か ●か 表外漢字あり
2 2 彼方 彼方(かなた)、かなた 用字
5 5 小形飛行機 小型飛行機 誤変換
≪閉じる
3週間ほど前になりますが、VRTservers.netという海外のホスティング業者からレンタルサーバーを借りてみました。専用サーバーにもかかわらず、月額29ドルから借りられる破格の価格設定で、なおかつ初期費用が無料であること、OSとしてCentOS5を選べること、メモリの増設が比較的安いこと、が決め手になりました。
いまのところまずまず良く動いています。以下に、契約したサーバーの構成や注意事項などを書いておきます。
続きを読む≫
サーバー構成
AMD Sempron 2400+ ... $29.00
1GB RAM ... $75.00 (セットアップ時のみ)
バックアップ領域1GB ... $1.00
合計: $30.00/月、 初回のみ $105.00
という構成でオーダーしたのですが、なぜかCPUが Intel Celeron 2.4 Ghz にアップグレードされていました。
メモリに限らず、ハードウェア系のアップグレードは「毎月$xx」と「初回のみ$xx」という2種類が選べるようです。半年から1年ほど使うと、だいたい初回払いの方が安そうです。
支払い方法
PayPalを使うことになりました。
当初、クレジットカードでの支払いを選択していたのですが、申し込み後、VRTServersの課金担当から「詐欺防止のため、カードのコピーを郵送するか、メールで画像を送ってちょ」と連絡がきたので、「それは無理。カード会社に承認とったらいいじゃん」と返したら、「うちは客が多いのでそんなことやってられないっす(意味不明)」「PayPal使ってくれたらコピー送らなくていいよ」と言われたので、いったんオーダーをキャンセルしてPayPalで申し込み直しました。
PayPal はあまり使ったことがなかったのでとまどったのですが、アカウントを作ってクレジットカードを登録し、VRTServersの申し込みフォームで「PayPal ID」という欄に、PayPalアカウントのメールアドレスを入れると良いみたいです。
申し込み送信後、PayPal経由で初月分の費用請求が来るので、PayPalにログオンして承認すると、VRTServersに支払いが行くようです。
クレジットカードと違って、たぶん毎月手動で承認しないといけないのかな?面倒だな…。
気になること
転送量の把握
一般的なレンタルサーバーのように、「今月のあなたの転送量はこれだけ」というページはないようです。「どうやって把握するの」と聞いたら、借りているサーバーをMRTGで監視しているらしいURLが送られてきて、「自分で把握してね。リミット超えたら追加料金発生するから」とのこと。でも、送られてきたURLでは「合計」ではなく、24時間ごとの「推移」しか出てないんですよね。これでどうやって把握するんだろう…毎日メモるのか?
まあしばらくは250GBの制限を超えることもなさそうなのでとりあえずは放置で。いずれ何らかの方法で計測しようかと思っています。
解約方法
Termsには「解約は更新日の8日前までに行うこと」と書かれているだけで、方法が明記されていません。メールで解約を申請したら「書面と電話でConfirmしてね」とか言われそうで怖いです。まあ、そのときはそのときでなんとでもしようがあると思いますが。
≪閉じる
3月23日のTOEICに申し込んだつもりだったのですが、どうやら失敗していたようです。
受験票が届かないので問い合わせようと思ったら、そもそも申し込み履歴がありませんでした。
前回の試験を受けた帰りにタリーズでネットにつないで、クレジットカードを取り出して番号を入力して、というところまではたしかに記憶しているので、ちょっと信じがたいのですが、最後の確認ボタンを押し忘れたといったところでしょうか。
すっかり試験直前モードで勉強していたのに…残念。
インターネット上の日本語を扱っていると、全角半角が統一されていない事による表記揺れをなんとかしたい場面に出くわします。半角で書かれた iPod も、全角で書かれたiPodも同じものとして扱いたいときや、あるいは単に見た目がきれいになるように、英数字は半角に、カタカナは全角にそろえたい、という場合です。
Python では setomitsさんによる zenhan.py を使うと、文字種ごとに全角半角を選択して変換することができ、除外文字も設定できるので便利です。ただ、そこまで柔軟でなくても良く、単に表記揺れがなくなれば良い、という場合も多いかと思います。その場合はPythonの標準ライブラリに含まれる unicodedata モジュールの normalize 関数を使うと便利です。
続きを読む≫
>>> import unicodedata
>>>
>>> s = 'フガホゲ-%*@ABC−%*@123'.decode('euc-jp')
>>> n = unicodedata.normalize('NFKC', s)
>>>
>>> print s.encode('euc-jp')
フガホゲ-%*@ABC−%*@123
>>>
>>> print n.encode('euc-jp')
フガホゲ-%*@ABC−%*@123
Unicode で定義される各文字は、等価な別表現がある場合(たとえば半角のAと全角のA)に、どの表現を標準とするべきか、という情報が付与されているそうです。normalize関数はこの情報を使って、表記を統一する処理を行います。normalize関数の第一引数に 'NFKC' を渡すことで、ガ(カ+濁点)のような複合文字が期待通りに分解・再合成されます。(詳しく知りたい方は Unicode正規化 あたりをどうぞ)
実際の変換結果を見てみると、英字、数字は半角に、カタカナは全角に正規化されることになっているようです。記号については、基本的に半角のようですが、全角マイナスと半角マイナスのように、別の文字として扱われているものもあるようです。マイナスが半角に正規化されるべきかどうかは場合によって異なると思われますが、ほとんどの用途にはこれで十分なのではないでしょうか。
≪閉じる
- by
- at 06:21
- in del.icio.us