仕事で英語を使う人に向けた大人の英単語帳システム「Diclog」

仕事で英語を使う人に向けた大人の英単語帳システム「Diclog」

この記事は、九州大学大学院システム情報科学研究院助教の荒川豊さんより、寄稿いただきました。

荒川豊
福岡出身、34歳、博士(工学)、ドイツ在住
久留米附設高校から慶應義塾大学・同大学院と進学し、2006年より同大学院理工学研究科助教。
慶應義塾大学在学中に、ITベンチャーの立ち上げに参画したり、未踏ユースの代表者としても活動。2009年に12年ぶりに福岡に戻り、九州大学大学院システム情報科学研究院助教として、社会と共生するソフトウェアについて研究を行っている。中でも、Twitterなどのソーシャルデータを分析することによって社会現象を抽出する研究は産学の両方で高く評価されており、情報処理学会山下記念研究賞、安藤博記念学術奨励賞、Mashup Award 6 Geo Hack賞&沖電気工業賞、フクオカRuby大賞奨励賞など数々の賞を受賞している。この研究成果をより発展させるべく、現在、ドイツ人工知能研究所に留学し研究を行なっている。


仕事で英語を使う人に向けた大人の英単語帳システム「Diclog」とは?
仕事で英語を使う人に向けた大人の英単語帳システム、それがDiclogです。

英単語帳と言えば、中高生というイメージがありますが、語彙力UPは永遠の課題です。今や、英語での仕事も増え、オンライン辞書や翻訳サイトを頼りに英語のメールを苦労して書いたり、Skype英会話でコツコツと英語力を高めたりしているビジネスマンも多いかと思います。私も英語の論文を読むのに、オンライン辞書サイトを愛用させてもらっています。また、今は海外に住んでいることもあり、少しでも語彙を増やしたいのですが、なかなか英語だけを勉強する時間は取れないのが現状です。

単語帳アプリは、App Storeにたくさんあります。例えば、無料アプリAは、自分で好きな単語を追加できます(ただし、FTPやケーブルを繋いでCSVをアップロードが必要です)。この、『ただし』がとにかく面倒くさくありませんか?一方、有料アプリBは、なんと85円で30000語も予め収録されています。私もこれを買いました。でも継続して使えません。まったく知らない単語(例えるなら、辞書を適当にひらいて見えた単語)を覚えるのは、結構、苦痛です。どういう場面で使うかもわからないので、丸暗記をしないといけません。

Diclogは自分の経験に基づいて、『こないだ調べたあの単語』を『復習』することによって記憶の定着を図る英単語帳です。しかも、単語登録の手間を完全に自動化してあります。DropboxやEvernoteを使っている人なら、自動同期の快適さは理解できると思います。最初にChrome Extensionを入れる必要がありますが、その後はその Extensionが自動的に調べた英単語を記録してくれます。あとは、iPhoneでチェックして、消していくだけです。チェックするのは、トイレでも電車でも、ほんとちょっとした隙間時間です。

『覚えたら消して、常に0ページを目指す単語帳』という変わった単語帳です。

自分がめんどくさがりで続かないので、この勝手に登録されていく仕組みを作りました。英単語を勉強するかどうかわからない人もとりあえず入れておけば、ライフログの1つにもなりますし、あとで勉強しようと思った時に、少なくとも必要に駆られて自分で調べた単語からなる英単語帳ができているわけです。

Diclogのテクノロジー
Diclogは、英単語帳アプリではなく、英単語帳システムと呼んでいるのにはわけがあります。
それは、DiclogがiPhoneアプリ単体では動かないからです。単語を記録するChrome Extension、同期用のサーバ、そして閲覧用のiPhoneクライアント、この3つが三位一体となって動きます。普段はPCで英単語を調べる人が、iPhoneで復讐するという使用形態を想定しています。

技術的な話を説明すると、Chrome Extensionは、単にURLを正規表現で分解して、対応したオンライン辞書サイトにアクセスした場合のみ、そのURLの中から英単語に相当する部分を切り出しています。非常にシンプルな仕組みなので、簡単に辞書サイトを今後も追加できる反面、スペース区切りで英熟語を調べた場合は、現状『+』などが含まれてしまいます。ここは改善ポイントの1つです。

同期用のサーバは、Rubyで開発してあります。RESTfulなAPIっぽく書いてるものもあれば、適当に書いてしまったものあり、今後はちゃんと整備して、外部にAPIを公開してもいいかなと思っています。自分の学習ログですから、自由に使ってもらえればいいですしね。

iPhoneクライアントは、Titaniumを使って開発しています。Objective-Cでも良かったのですが、Androidクライアントもまとめて作れるといいな~と思って、興味のあったTitaniumの練習も兼ねて作ってみました。Titaniumは、なかなか良く出来ていますが、iPhoneとAndroidの同時開発はやっぱりそれなりの手間が必要ということもわかりました。また、iOS6が出た場合、Titanium がちゃんと追随してくれるのかはちょっと心配です。でも、ちょっとしたアプリを作るのに、Titaniumはいい選択肢だと思います。

iPhoneクライアントで苦労したのは、アクティブチェック機能という、定期的にiPhoneの通知を使って単語チェックを促す部分です。ローカルノーティフィケーションを登録するのに、バックグラウンド処理で登録する必要があるということになかなか気づきませんでした。

iPhoneクライアントでは、内蔵の辞書を参照して意味を表示しています。iOS5から搭載されたこの辞書は非常にありがたかったです。というのは、オンライン辞書サイトで表示される英単語の意味は、著作権があり、その意味を参照することが許されていません。Diclogでは、辞書サイトで表示されるものは一切利用せず、URLから調べた単語を得るというのもこの著作権が理由です(なので、多数の意味を持つ単語の場合、調べたときの意味と表示される意味が違う可能性もあります)。URLから英単語はわかるのですが、その意味を表示するためには何かしらの辞書が必要です。辞書サイトを運営しているわけでもないので、フリーで使える辞書データ(PDEJ2005)をサーバやクライアントに入れ込むか、イースト社のデ辞蔵APIを使うか、Wikiのようにユーザに意味登録をしてもらうか、という選択肢しかなかったのですが、iPhoneであれば内蔵辞書の意味を参照できるということで、スマートにこのアプリを実現できました。実は、Androidクライアントの開発をやめているのは、この理由が大きいです。インテントを飛ばして、別の辞書アプリと連携とかは考えられるのでもしかしたら次期バージョンで作るかもしれません。辞書アプリ会社さんから連携とか持ちかけていただけると超嬉しいです。

Diclogの今後の機能について
今後は、iPhoneアプリ内に何らかの形で辞書機能を付けて、iPhone上で調べた単語も、ログとして記録できるようにしたいと思っています。あとは、Chromeだけでなく、SafariやFirefoxのエクステンションも作れたらないいなと思っています。

余談ですが、私は一応、大学教員ということで、このアプリはもともと教育の一環で考えたものです。スマホのクライントアプリ、ブラウザのエクステンション、サーバ側のスクリプト、ネットワーク同期の仕組みやデータベースなど、情報系の学生に必要なスキルを幅広くカバーしています。また、何よりこれらを同時開発することで、チーム開発の練習にもなります。実際に、昨年、半年かけて、学生5人で同様のアプリを開発してもらい、かなりスキルアップが図れました。