ATOK ダイレクトプラグインを開発する

 

*サンプルプログラムにはPythonを使用していますが、他にもPerlやRubyが使えるようです。

 

サンプルプログラムkanji_kana_usagのダウンロード

 

※変更履歴

2011.0105   今までは特定の表記を調べたいときに、その文字全体を入力しなければならなかったが、

先頭から数文字だけ入力すれば、該当するキーワードにヒットするようにした。

例) 「かまわない」か「構わない」か確かめたい場合、「か」と入力すると次のように、その一文字で始まる候補が表示される。

 

 

 

 

 

 

 

●免責条項

・このソフトウェアを使用して発生した損害について、作者 heeは一切の責任を
負わないものとさせて頂きます。本プログラムが原因で、データが破壊される等、
いかなる損害についても一切責任を負いません。各自の責任において使用してください。

 

インストールとアンインストール

 

 

 ATOK ダイレクトとは

 

昨年、Google FEP(日本語入力システム)を公開して話題になった。

 

無料であるうえに、Webから収集された豊富な語彙数と入力サジェストが

快適だと評判である。日本語入力システムはコンピューターで日本語を

扱うためには欠かせないソフトウェア。ましてや翻訳者にとっては

仕事の効率を大きく左右する大事な商売道具である。

早速コンピューターにインストールして、ときどき使っている。

 

第一印象としては評判にたがわずすばらしい仕上がりだと思う。

どんな言葉を変換するのかにもよるが、国語辞典にない「旬な」言葉が楽に

変換できるため、ブログや友人とのメール、Twitterでは、実用上、特に問題はないだろう。

 

個人的には仕事柄、いまのところは、業界にも愛用者の多いATOKを使い続けているが、

今後は Google日本語入力だけでよいかもしれないと思ったぐらいだ。

 

ところが、大量のデータから統計的言語モデルに基づくホニァララ..という

アルゴリズムの宿命か、Google日本語入力の変換候補には、

脈絡のない言葉が紛れ込んでしまうことが多く、思考過程で奇妙な言葉が飛び込んできて

乱されることがある。

 

 

一歩間違えばトンデモナイ表現が納品物に紛れ込んでしまう可能性があるので

油断できない。これではやはり、仕事で使うわけにはいかないだろう。

それで、自分は、ビジネス系の文章を書くならATOKの方が信頼できると感じている。

少なくとも現時点では。

 

ATOKは、なにより、きちんとした日本語を書いて欲しいという理想の下で作り込まれているし、

各種辞典との連携、校正支援、設定の選択肢が充実している。変換精度も高いのは言うまでもない。

 

そうした製品としての完成度もさることながら、

拡張性の高さでも、ATOKはすばらしいものがあると思う。

 

ATOKは、バージョン2008以降、API (ATOKダイレクト)が公開されていて、

フロントエンド処理をユーザーが簡単なスクリプトで自由にカスタマイズできるようになった*

 

*MS IME はとっくにAPIが公開されていたので、今さらそれがどうした、

という人もいるかもしれないが、決して手軽とは言えなかったと思う。

 

従来、翻訳の効率化の手段といえば、筆頭はマクロ(WordVBA、秀丸のマクロなど)だった。

 

しかし近年は、顧客であるローカリゼーションベンダーや翻訳会社から作業環境を指定されることが多く、

ローカリゼーション業に限って言えば、 翻訳者が勝手にエディタ・ワープロを選べない時代になってきている。

無理矢理、秀丸やWordを経由させるなどしなければ、マクロによる自動化手段が使えないことも多い。

 

その意味でも、ユーザーがFEP(Front End Processer) を文字通り「入力の最前線」で

操ることができるようになった意義は大きいと思う。

 

ちなみに先ほどの図のように、変換が未確定の状態(領域)を日本語入力システムの専門用語で

「コンポジション、コンポジション領域、composition」などというが、

この部分を捕獲してスクリプト処理(基本的には連想配列の処理)に渡すことができる。

 

たとえば、スタイルガイドの「漢字とかなの使い分け」(「いっさい/一切」など)

いちいちスタイルガイドを開いて確認している人は少なくないと思う。自分もそうである。

そんな積年の煩わしさからもついに解放される。

 

 

 

現在試作中のプラグイン

 

コンポジションの処理は、マクロでは不可能か、できたとしてもMS IMEのAPIを使うなど、

かなり変則限定的な方法が要求される。

 

しかし、ATOK  APIを利用すれば、このようなスクリプトが非常に簡単に作成できる。

 

従来、この手のスタイルチェックは、完成した文章に対して事後的・機械的に行うのが普通だったと思う。

膨大な文書でもあっという間に処理が完了するが、盲目的なチェックである以上、誤検出は避けられない。

 

それに比べてフロントエンドでの処理は、大量データの処理には向かないが、人間の入力作業や思考判断と
有機的によくなじむ印象を受ける。

それがまた新鮮である。マクロの機械的な処理と、FEPの有機的な処理が組み合わされば面白いかもしれない。

 

ずっとATOK2007を使い続けていたが、そのような理由から、先日、ついに2010にアップデートした。

 

 

 ATOKダイレクトプラグインをPythonで開発するために必要な3つのもの*

 

*もちろん、ATOKのライセンスは必要。以下、ATOKのバージョンは ATOK 2010 for Windows を前提に説明。

詳しいセットアップ手順については、以下のサイトが参考になる

http://www.atok.com/useful/developer/api/setup.html

 

 

 

1) Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45)
   
インストールしたらパスを通しておく

 

2)  ATOKダイレクト API for Python モジュール(adsapi23.exe)

http://www.atok.com/useful/developer/api/summary.html#spec

 

自己展開形式になっている。開発・配布上の重要なファイルは黄色でハイライトした。

 

adsapi23  

|   atok_direct_script_api.pdf

|   FILELIST.TXT

|   LICENSE.TXT

||  

+---atok_direct_debugger  *  ATOKダイレクト スクリプトデバッガー

|   |   ATOK23DSD.EXE

|   |   ATOK_PLUGIN_MESSAGE.DLL

|   |  

|   \---plugin

|           atok_direct_script_perl_sample.pl

|           atok_direct_script_python_sample.py

|           atok_direct_script_ruby_sample.rb

|          

+---atok_direct_setuptool   *実際にスクリプトを配布する際に必要になる

|       ATOK_PLUGIN_MESSAGE.DLL

|       LICENSE.TXT

|       SETUP.EXE

|       SETUPINFO.XML

|      

\---Samples                     ※ATOKダイレクト スクリプトプラグインサンプル

    +---script_perl_sample

    |   |   ATOK_PLUGIN_MESSAGE.DLL

    |   |   LICENSE.TXT

    |   |   SETUP.EXE

    |   |   SETUPINFO.XML

    |   |  

    |   \---DATA

    |           atok_direct_script_perl_sample.pl

    |           atok_direct_script_perl_sample.xml

    |          

    +---script_python_sample

    |   |   ATOK_PLUGIN_MESSAGE.DLL

    |   |   LICENSE.TXT

    |   |   SETUP.EXE

    |   |   SETUPINFO.XML

    |   |  

    |   \---DATA

    |           atok_direct_script_python_sample.py

    |           atok_direct_script_python_sample.xml

    |          

    \---script_ruby_sample

        |   ATOK_PLUGIN_MESSAGE.DLL

        |   LICENSE.TXT

        |   SETUP.EXE

        |   SETUPINFO.XML

        |  

        \---DATA

                atok_direct_script_ruby_sample.rb

                atok_direct_script_ruby_sample.xml

               

    

 

3) テキストエディタ。

必須ではないが、Eclipse(+Pydev)を利用するとよい。VSほど親切ではないが簡単な入力補完機能が使えるので便利である。