« サミティベのスタバで、コーヒーちう | トップページ | ばんからのとんこつラーメン »

2011年1月 9日 (日)

iPhoneでタイ語辞書 2011

以前のエントリでiPhoneでタイ語辞書を使う方法を投稿しましたが、だいぶネタが古くなったので最近の状況をご紹介します。

まず、使っているのはEBPocket Pro。600円ですが、その価値はあるかと。

このアプリはEPWING形式の辞書およびPDIC形式の辞書を直接開けるのが特徴です。

EPWING形式の辞書は英辞朗や広辞苑などCD-ROM版が多数出版されていて、日本語の紹介サイトも充実しています。

泰日、日泰辞書はこちらにあるPDIC用辞書を使えます。とくさんは2000円払ってメンバーシップシェア版を使っています。

そして、このアプリは多数の辞書を串刺し検索ができ、日本語から英語、タイ語など一度に検索してくれるのでとても便利です。しかも検索が早いです。

今、入れている辞書はEDICT2(標準の英和)、英辞朗V.127(英和、和英)、広辞苑 第六版、PDD百科事典、PDICタイ(泰日、日泰)、WordNet2.0(英英)、そしてLEXiTRON2.6(泰英、英泰)です。

英辞朗は本家からデータをダウンロード(1980円)、テキスト形式のファイルからEBStudioを使ってEPWING形式に変換。変換後のサイズはなんと900MBという怒級のサイズに。

広辞苑もEPWING形式をネットで***して、導入。こちらは460MB。

WordNet2.0も同様にEPWING形式をダウンロード。200MB。

PDD百科事典もネットでダウンロード。72MB。

大変だったのはLEXiTRON。

これはNECTECというタイの情報処理関係の総本山がアップデートし、無償で公開している辞書データで、英泰が8万語、泰英が5万語ほど登録されています。

発音記号や類語、用例、反対語なども登録されており、PDICタイで泰日で検索するより正確な意味が理解できる気がします。

で、こちらはデータのダウンロードだけはできず、検索ソフトと一体でダウンロードandインストールします。 インストールするとアプリのフォルダにApatch Derbyという形式のデータベースファイルが作られます。多分c:¥program files¥lexitron dictionary 2.6¥lexitrondatabase¥以下。

DerbyはSQLiteと同じようなスタンドアロンで使え,組み込みアプリ向けのRDBシステムらしいです。

このDerbyファイルを開くため、Apatch Derbyのバイナリ(zipファイル)をこちらからダウンロード。今日時点では10.6.2.1が最新のようです。
解凍してインストールすると、スタンドアロンで実行、参照、編集が出来るアプリが揃います。
一応以下ではc:¥program files¥derbyにインストールされたものとします。

ローカルでDBを開くには、1. Derbyのパスを通す。 2. ijを起動 3.データベースに接続という手順が必要です。

また、オリジナルが壊れると、困るのでlexitrondatabaseフォルダ以下をそっくりDerbyフォルダにコピーしておきます。

ものぐさな自分のためにバッチファイルを作る事にしました。
内容はこんな感じ


set DERBY_HOME=c:\program files\derby
set JAVA_HOME=c:¥program files¥java¥jre6
set PATH=%DERBY_HOME%¥bin;%PATH%
ij sqlcommand.sql > output.txt

最後の行はijに直接クエリーファイルを渡しています。

クエリーの中身は当該辞書ファイルをエクスポートしやすいように整形したVIEWを作って、ストアドプロシージャでエクスポートするというものです。

また、クエリーの仲でユーザ定義関数というのを作っていますが、これはDerbyのなかにReplaceというコマンドが無かったため仕方なくjavaで関数を作ったものです。

クエリーはこちら


--ローカルファイルの場所を指定してスタンドアロンモードで開く。

connect 'jdbc:derby:c:\program files\derby\lexitrondatabase';

--Replace関数を定義する。replace.classファイルを同じフォルダに置いておく事。

create function Replace(orgStr VARCHAR(1024), oldStr VARCHAR(50),
newStr VARCHAR(50)) RETURNS VARCHAR(1024)
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
EXTERNAL NAME 'replace.replace';

--英泰辞書のビューを作成する。
CREATE VIEW E2T (WORD,TRANS) AS SELECT REPLACE(REPLACE(SENTRY,'#1',''),'#',' #') ,
REPLACE('[' || SCAT || '] ' || TENTRY || CASE WHEN LENGTH(TRELATE)>1 THEN '
<i>Rel</i> ' || TRELATE ELSE '' END || CASE WHEN LENGTH(SSYN)>1 THEN '
<i>Syn</i> ' || SSYN ELSE '' END || CASE WHEN LENGTH(SANT)>1 THEN '
<i>Ant</i> ' || SANT ELSE '' END,'"','')
FROM DICT2_SENSE;

--英泰辞書をエクスポートする。

CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null,'E2T', 'LEXiTRON_2.6_ET.CSV', null, null, 'UTF8');


--泰英辞書のビューを作成する。

CREATE VIEW T2E (WORD,TRANS,EXP,LEVEL,MEMORY,MODIFY,PRON) AS SELECT
REPLACE(REPLACE(SENTRY,'#1',''),'#',' #'),
REPLACE('[' || SCAT || '] ' || TENTRY || CASE WHEN LENGTH(TRELATE)>1 THEN '
<i>Rel</i> ' || TRELATE ELSE '' END || CASE WHEN LENGTH(SSYN)>1 THEN '
<i>Syn</i> ' || SSYN ELSE '' END || CASE WHEN LENGTH(SANT)>1 THEN '
<i>Ant</i> ' || SANT ELSE '' END,'"',''),REPLACE(SSAMPLE,'"',''),'','','',SIPA
FROM DICT1_SENSE;

--泰英辞書をエクスポートする。

CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, 'T2E', 'LEXiTRON_2.6_TE.CSV', null, null, 'UTF8');

--オリジナルの英泰辞書をエクスポートする。

CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, 'DICT2_SENSE','ORIGINAL_ENTH.CSV', null, null, 'UTF8');

--オリジナルの泰英辞書をエクスポートする。

CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, 'DICT1_SENSE','ORIGINAL_THEN.CSV', null, null, 'UTF8');

--ビューと関数を削除

DROP VIEW E2T;
DROP VIEW T2E;
drop function Replace;

disconnect;
exit;

javaの関数はこちら


public class replace {
public static String replace (String orgStr, String oldStr, String newStr) {
return orgStr.replace(oldStr, newStr);
}
}

コンパイル済みのreplace.classはこちら(0.4kb)

これで、PDICに読ませるためのCSVファイルが出来ました。
っと、忘れてた、タイ英はこのまま読ませられますが、英タイはもう一工夫必要だった。
それは出来たCSVファイルの先頭にword,transを追加する事。
これをしないと辞書インポート中にエラーになります。

PDICはユニコード版を使います。タイ文字を使うんだから当然ですよね。
ユニコード版の最新は5.4.23です。ダウンロードはこちら

辞書のインポートはファイルー辞書設定(詳細)をクリック。
開いたダイアログの右側のペインで右クリックー既存辞書の追加ー開いたファイル選択ダイアログで、ファイルタイプをCSVに、先ほどのバッチファイルで作成したファイルを選択(多分LEXiTRON_2.6_ET.CSVとLEXiTRON_2.6_TE.CSV)を一つずつインポート。

これで、多分My DocumentsのPDICフォルダにLEXiTRON_2.6_ET.dicとLEXiTRON_2.6_TE.dicができるはずなので、これをiPhoneにFTPで転送。転送先はEBpocket以下。

LEXiTRONデータは無償配布可と思われるのでここにPDIC形式に変換済みのものを置いておきます。
よかったらダウンして使ってみてください。

LEXiTRON Dictionary ver 2.6 PDIC format <Available on PBPocket for iOS>Download Here
英タイ(Endlish-Thai) LEXiTRON_2.6_ET.dic 6.78MB
タイ英(Thai-English) LEXiTRON_2.6_TE.dic 7.26MB


追記 2011/1/31
コメントにいただきました、タイ語Wikipediaですが、EBPocketで表示できるようですが、文字コード or フォントの問題で母音,声調記号が正しく表示できないようです。
EPWingはたしかS_JISの文字コードしか扱わなかったはずですのでこのような結果になるのでは?
私もLEXiTRONをEPWINGに変換しようと試行錯誤しましたがユニコードを扱えないという制約を乗り越えることができずPDIC形式にしました。
ご参考になりましたでしょうか?
Img_0024


LEXiTRONはこんな風に表示されます。

Img_0025


PDICタイはこんな感じです。


Img_0029


追記 2011/5/1
GoogleDocsからダウンロードできない不具合が発生しているようなのでMEGAUPLOADにも置く事にしました。
LEXiTRON_2.6_ET
LEXiTRON_2.6_TE

« サミティベのスタバで、コーヒーちう | トップページ | ばんからのとんこつラーメン »

iPhone 3G」カテゴリの記事

iPhone 4」カテゴリの記事

コメント

wikipedia のタイ語版 Wikipedia(th)1105 版 タイ語
がありますが、ebpocketで利用できますか?

タイ語の辞書に興味を持っています。
今タイ語を勉強中なので。

この記事にあるLEXiTRONのデータ、ダウンロードして試してみようと思いましたが、ETもTEもダウンロードできませんでした。なにか特別なやり方が必要なのでしょうか?
教えていただければ助かります。

nishitsuka様

ご訪問ありがとうございます。
今日試してみましたら確かにダウンロードできないですね。
MEGAUPLOADにアップしましたのでそちらからお試しください。
アドレスは追記部分に記載してあります。

PDIC形式に変換済みのLEXiTRONデータを掲載していただき、有り難うございます。仕事で時々タイに行くので、PDICタイ語をiPhoneに入れて利用しているのですが、泰英・英泰辞書があればと思うシチューエーションが度々ありましたので、とても助かります。

PDIC形式に変換済みのLEXiTRONデータを頂きました。

LEXiTRONはアンドロイドアプリのを使ってましたが、アンドロイドOSのアップロードで使えなくなり困っていました。

ありがとうございました。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181193/50535404

この記事へのトラックバック一覧です: iPhoneでタイ語辞書 2011:

« サミティベのスタバで、コーヒーちう | トップページ | ばんからのとんこつラーメン »