辞書.app を活用する (2)

先日の記事 で、 Babylon Dictionary を Apple の「辞書.app」でサポートされているフォーマットに変換して使用する方法を試みた。今回は EPWING (JISX4081) 形式の辞書を Mac OS X の辞書.app フォーマットにできるか試してみたい。この試みはすでに、こちらのページ でなされているが、今回は異なったアプローチで試してみる。

アイデアとしては 先日の記事 の延長線上にあり、Windows 上で PDIC の変換用オプションを利用して EPWING 形式から PDIC 1行形式へ変換、Linux 上で PDIC 1行形式から StarDict 形式へ、最後に OS X 上で Apple 辞書.app フォーマットへと変換しようとするものだ。以下に書く手順は充分な動作を保証するものではなく、(なるべく丁寧には書くように心掛けるが) 個人の備忘録の域を出ず、もしも実践しようとする方がいらっしゃればくれぐれも自己責任でお願いしたい。また、辞書によっては変換が禁止されている場合もあり、使用許諾条件には充分配慮すべきであろう。なお、以下の作業は VMWare Fusion (3.1.3) を用いて、Mac OS X (10.6.7) 上で、Windows XP (Service Pack 3) および Ubuntu (10.10) をエミュレートして実行している。

今回は こちらのページ で配布されている、

の変換を試みる。このゴンダの語彙集は作成者の rw さんがフリーソフトとして配布してくださっているもので、文法書の巻末語彙のみならず名詞変化や連声ルールなども含まれる大変有益な語彙集である。

Windows

まずはじめに Windows 上で PDIC/Unicode を用いて EPWING 形式から PDIC 1行形式へと変換する。Gondavoc_20091124.zip を解凍すると中に Gondavoc.map という外字定義ファイルが含まれるので、エディタなどで次のような形式に変換する (gondavocab.tbl という別名で保存したとする)。

B021=x{9127}
B024=x{00E6}
B025=_
B026=x{01FD}
B027=x{0390}
B028=x{0391}
B029=x{0392}
...

このファイルは EPWING の外字番号と16進表記の Unicode 番号 (x escaped hexadecimal numbers in braces) の対応表である。PDIC は変換オプションとして外字テーブルを読み込むが (詳しくは PDIC Help の「EPWING/EB変換用オプションの設定」参照 → Web page)、その際 UTF-8 Unicode は読み込めないので、この段階ではこのまま escape しておくことにした。PDIC を立ち上げ、「ファイル」「辞書設定<詳細>」右クリック「既存辞書の追加」を選び、CATALOGS ファイルを選択する。「PDIC 用の辞書ではありません。PDIC 用の辞書に変換しますか?」に「はい」、「詳細」をクリックし、「外字変換テーブル」に先ほど編集した gondavocab.tbl を選択する。変換文字列に Unicode 番号が配当されているのを確認する。

https://skalldan.files.wordpress.com/2011/06/wpid-gaiji_table_henshu1.png

「内容も変換する」にチェックを入れ「OK」、変換先辞書 (gondavocab.dic) を指定して「OK」、「連続実行」で変換を開始する。

https://skalldan.files.wordpress.com/2011/06/wpid-henkan_kekka2.png

出来上がった gondavocab.dic を右クリックし「辞書の変換」を選択、「変換先ファイル形式」を「PDIC 1行テキスト形式」にして変換先辞書 (gondavocab.txt) を指定し、「OK」で変換する。以上で Windows 上での作業は終了である。

Linux

次に Windows で作成した gondavocab.txt (PDIC 1行形式) を Ubuntu 上で編集する。まず文字コードを UTF-8 (改行コード LF) に変換して、escape しておいた Unicode 番号 (hexadecimal number) を Unicode 文字に変換する (uni2ascii を使用)。最後に PDIC 1行形式から StarDict 用の tab ファイルに変換して、エディタで内容を確認してみる。

$ cd ubuntu-work/Gonda   # osx との共有フォルダ
$ ls
gondavocab.txt    # <-- Windows からコピー
$ nkf -w -Lu gondavocab.txt > gondavocab-utf8.txt
$ sudo apt-get install uni2ascii
 ...
$ ascii2uni -a C gondavocab-utf8.txt > gondavocab-utf8-unicode.txt
9977 tokens converted
$ sed -e 's| /// |t|g' -e 's| |n|g' gondavocab-utf8-unicode.txt > gondavocab-stardict.txt
$ emacs gondavocab-stardict.txt

https://skalldan.files.wordpress.com/2011/06/wpid-gonda_stardict_emacs.png

ここからの手順は 先日の記事 と同様で、 stardict-tools を用いて StarDict が読み込める形式 (*.ifo, *.dict, *.idx) に変換した後、念のため Ubuntu 上で StarDict から動作を確認しておく。

$ /usr/lib/stardict-tools/tabfile gondavocab-stardict.txt 
 ...
$ mkdir gondavocab-stardict
$ mv gondavocab-stardict.ifo gondavocab-stardict.idx gondavocab-stardict.dict.dz gondavocab-stardict/
$ sudo cp -au gondavocab-stardict /usr/share/stardict/dic/gondavocab
$ stardict &

https://skalldan.files.wordpress.com/2011/06/wpid-gonda_stardict.png

Mac OS X

最後は Mac OS X 上で、

$ cd ~/ubuntu-work/Gonda/ # <-- Ubuntu と共有
$ tar -jcvf gondavocab-stardict.tar.bz2 gondavocab-stardict
$ /usr/local/sdconv/convert gondavocab-stardict.tar.bz2 -n Gonda_Vocabulary -i gondavocab
 ...
Done.
To test the new dictionary, try Dictionary.app.
~/ubuntu-work/Gonda
$ open -a Dictionary.app

https://skalldan.files.wordpress.com/2011/06/wpid-gonda_apple.png https://skalldan.files.wordpress.com/2011/06/wpid-kakuhenka.png https://skalldan.files.wordpress.com/2011/06/wpid-gairenjo.png https://skalldan.files.wordpress.com/2011/06/wpid-zettaigomatsu.png

11 thoughts on “辞書.app を活用する (2)

  1. 先日はご丁寧なレスありがとうございました。
    その後このブログの記述に従って主に辞書環境を整えつつあります
    ゴンダの文法書を辞書.accで使うことは、ブログの記事に多少の試行錯誤を
    加えてなんとか成功したのですが、岩波仏教辞典のstardic化がさっぱりうまくいきません
    bukkyou2.mapに基づいて変換テーブルを作ることは本当にでしょうか?

    B024=\X{00E6}

    から始まるようなテーブルをつくっても変換ソフトが受け付けてくれません。
    お忙しいところ恐縮ですがヒントがあればご教示いただければと思います

    • この記事は、この時の思いつきを大雑把にメモしたような内容なので、今あらためて読んでみると本当に面倒な手順ですね。記事中に繰り返しているように、あまり推奨できるような方法ではないように思います。EPWING から StarDict 形式への、もう少し簡単な変換方法があればいいのですが…

      「外字変換テーブル」の作成についてですが、EPWING の外字を一時的に別の文字列に置き換えているだけなので、記事中では、

      B024=\x{00E6}
      

      としていますが、これについてはあとで機械的に戻せるなら、どんなものでもかまいません (“\#x00E6;” でも “\u00E6” でもお好きなもので。なぜこの時 “\x{00E6}” の記法を選択したのかは忘れてしまいました…)。 Bukkyo2.map を改めて見ると “\u00E6” となっているので、このままでもいいように思います。とにかく、一時的に一括変換可能な別の文字列に置き換えておいて、Windows のソフトでテキストファイルにダンプした後に、Linux でその文字列をもとに戻す、という作業を行なっています。

      この記事を書いた頃 (2011/6) から2年ほどたちますが、この時にあれこれ試行錯誤して OSX 用に手持ちの辞書を変換したものの、私の場合、結局 Emacs の Lookup から EPWING の辞書を利用することが殆どです。先日は確か Emacs に関してコメント頂いたと思うのですが、Emacs で文書を書く場合、同じ Emacs 内で検索できる方が便利かもしれません。面倒な変換作業をしなくてすみますし ^^;

  2. いつもご親切にありがとうございます
    あまりおすすめの方法ではないことはよくわかりました

    変換の件ですが、BUKKYO2.mapにあらわれる’B024′
    あるいはそれに続くコードに該当する外字がそもそも岩波仏教辞典では
    全く使われていないのではないでしょうか?

    Lookupもぜひ試してみたいと思います

    • 少し見てみました。

      確かに最初の「zb024 \u00E6」(ae, LATIN SMALL LETTER AE) に相当する文字は岩波仏教辞典の中で使用されてないようですね。しかし、その次の「zb027 \u4F49」(佉) については、

      不空羂索観音: 音写して<阿目佉播捨(あもくきゃはしゃ)>.<ふくうけんさくかんのん>とも読む.観音信仰の展開に伴って考えられた変化(へんげ)観音で七観音…

      の「阿目 播捨」で使用されています。その次のもの「zb028 \u4F60」(你) に関しても、

      公案: 禅の問答,または問題をいう.元来は官庁の調書・案件を意味する法制用語の一つだが,後に師が弟子を試み,指導するための問題を意味する禅語となった.唐末の睦州道蹤(ぼくしゅうどうしょう)(780−877)がある参問者に答えて,「現成公案,你(なんじ)に三十棒を放(ゆる)す」…

      と「 (なんじ)」が使用されているようです。

      以下すべて調べられませんが、 BUKKYO2.map にあらわれるコードに該当する外字がそもそも岩波仏教辞典では全く使われていない、ということはなさそうです。

      バックアップに昔の作業ファイル (変換テーブル) が残っているかもしれないので、また時間のある時に調べておきます。

      • 追記です。

        EBDump を使用して岩波仏教辞典の本文を検査してみました。

        BUKKYO2.map:

        B024 (ae) 0回出現
        B027 (佉) 3回
        B028 (你) 2回
        ...
        

        といったことが調べられます。

        以下、備忘録としてログを残しておきます。「Freq.」が外字の出現頻度のようです。

        [ID=00:本文] start=0003(3), blocks=2929
        
        ID  Freq.   Addr(page:offs)
        <1FE1>  11448   000003:1A6
        <1FE0>  11448   000003:194
        <1F03>   135    000A5E:004
        <1F07>  5443    000003:024
        <1F06>  5443    000003:01E
        <1F0A>  30044   000003:018
        <1F05>  19119   000003:016
        <1F04>  19119   000003:012
        <1F09>  21008   000003:002
        <1F02>   135    000003:000
        <1F11>  2075    000A62:15C
        <1F10>  2075    000A5E:6F8
        <1F3C>  2958    000004:284
        <1F4D>    67    0002D5:2F4
        <1F42>  40999   000003:2EA
        <1F41>  5443    000003:00A
        <1F5C>  2958    000004:298
        <1F6D>    67    0002D5:308
        <1F62>  41002   000003:302
        <1F61>  5443    000003:010
        
        GAIJI   Freq.   Addr(page:offs)
        hA326      2    00048C:1B2
        hA331     12    0001DF:44E
        hA332      4    0000F0:384
        hA223     41    000016:10A
        hA330    448    000009:0F6
        hA224   4228    000003:23A
        hA34C     20    00033C:504
        hA236     34    00025F:7E2
        hA230      1    0001DD:550
        hA348     32    0001B2:606
        hA23E     16    0000D1:41C
        hA34A     41    0000CE:7D0
        hA346     80    0000C4:7D6
        hA24D      9    00004D:5B6
        hA24E    606    000012:028
        hA36D      1    000AF7:316
        hA367      4    000888:3E0
        hA368      4    00069D:336
        hA365      1    00069B:3DA
        hA14A      1    0005C3:588
        hA36B      9    0004EF:652
        hA369    179    0000A7:55A
        hA366      6    000098:364
        hA36A    122    000015:550
        hA36C    433    000009:0F8
        hA36F    108    000003:254
        hA36E    686    000003:238
        hA374      1    0004FA:6C4
        hA371      3    000384:596
        hA373    269    000004:190
        hA372    668    000003:236
        hA370    340    000003:234
        hA270     25    00025F:7DE
        hA161     89    0001B2:5FE
        hA169     26    0000EF:620
        hA162     77    0000CE:7E4
        hA27D     99    00009F:35C
        hA16E     53    00004B:186
        hA16A     59    00004B:176
        hA16D    129    00003A:256
        hA27E    680    000004:242
        hA177      1    000AF8:114
        hA17D      4    00094C:5FA
        hA17A     52    0000EF:61A
        hA174     25    0000C2:55E
        hA17B     44    0000C2:548
        hA173     33    00004B:190
        hA172    355    00002A:096
        
        GAIJI   Freq.   Addr(page:offs)
        zB174      1    000A2E:78E
        zB06F      1    000991:3A6
        zB172      1    0008B5:35A
        zB17D      1    000894:69E
        zB17C      2    000869:30A
        zB061      1    000800:3F8
        zB171      1    0007F1:0E4
        zB062      1    00059A:618
        zB17B      1    000501:644
        zB179      1    000442:05C
        zB177      1    000442:05A
        zB067      2    00040F:4CE
        zB068      2    000406:216
        zB17A      3    0003D8:4EA
        zB173      1    000331:7C0
        zB178      1    000323:422
        zB063      1    0002D1:17E
        zB065      6    0002AC:230
        zB06E      4    000281:53E
        zB170      1    000269:6D0
        zB069     16    00016F:7F2
        zB066     10    000133:22C
        zB06B      3    00012B:4F2
        zB064      1    0000F5:49C
        zB17E      1    0000CF:13C
        zB060     25    0000B5:466
        zB175     19    000074:130
        zB074      1    0009E5:08A
        zB07D      1    0008B9:76E
        zB07B      1    00082D:2B8
        zB077      1    0007FC:4D2
        zB076      1    000767:17C
        zB07A      1    0006FA:4F2
        zB072      2    0006F1:096
        zB070      1    000621:720
        zB07C      1    0005CD:000
        zB07E      1    00035C:438
        zB078      1    0002C7:674
        zB079     13    00014B:27E
        zB073      2    0000E3:280
        zB071     13    00007C:5B2
        zEA00      2    000AB3:4AA
        zE600      2    000AEF:5DC
        zE500      3    000AAC:4F2
        zE400      1    000B49:6F4
        zB325      1    0009BD:042
        zB329      1    000845:556
        zB327      2    0007EB:496
        zB326      1    0006A1:21C
        zB321      1    00060E:3C8
        zB323      1    000492:0CA
        zB328      1    000491:3FC
        zB324      6    0001A6:514
        zB322      8    00017B:686
        zB22E      2    000A2B:714
        zB227      1    000A1C:3C6
        zB229      1    000997:546
        zB22F      1    000984:662
        zB223      1    00096F:33A
        zB221      1    0007FC:486
        zB224      5    00073F:38A
        zB225      1    000649:6BA
        zB22B      2    000449:718
        zB22D      2    000332:71C
        zB228      2    000270:130
        zB222      4    000191:002
        zB22C      7    000165:6A2
        zB22A      5    0000D3:2C2
        zB226      5    000053:296
        zB122      1    000A30:096
        zB23F      1    0009B8:4B4
        zB237      1    000916:4EA
        zB231      1    0008BF:3B4
        zB128      1    0008B5:20A
        zB238      1    00081D:190
        zB12F      1    0007D6:53A
        zB23D      2    0006F7:74C
        zB123      1    0006A6:222
        zB233      1    000648:51A
        zB129      1    000637:300
        zB12C      2    000637:294
        zB12D      3    000636:66E
        zB121      2    000629:686
        zB23A      1    0005B8:49A
        zB126      2    00040A:596
        zB235      1    000330:68C
        zB127      1    000227:27E
        zB234      1    000219:74E
        zB23C      4    000214:528
        zB236      1    0001EF:26C
        zB12B     16    0001A8:72E
        zB124      3    00016D:4E2
        zB12E      2    00014C:426
        zB232     12    00014B:090
        zB23E      2    00010C:696
        zB23B      6    0000E0:6AE
        zB239      2    0000DE:4C8
        zB125      7    0000C4:164
        zB12A      6    00007F:0D0
        zE100      1    000B62:110
        zB13D      1    000A03:3CA
        zB13C      1    0009ED:6C4
        zB131      1    0009D1:7F2
        zB13B      1    000969:598
        zB242      1    000962:28C
        zB02F      2    00076F:1A8
        zB135      1    000747:3B4
        zB241      1    000742:190
        zB029      2    000716:060
        zB13F      2    0006D1:592
        zB132      1    000661:76C
        zB133      1    000661:76A
        zB248      1    000626:440
        zB24A      1    0005D8:436
        zB137      1    0005D8:406
        zB247      1    000569:3A0
        zB240      1    00054F:6C6
        zB24B      2    0004EB:6CE
        zB02B      6    0004E5:354
        zB24F      1    0004D4:54A
        zB027      3    0004B4:43E
        zB243      1    000496:6D0
        zB246      1    000409:536
        zB136      3    0003CE:7F4
        zB134      3    0003AF:2BE
        zB24D      5    000350:43A
        zB13E      2    0002DF:16A
        zB028      2    0002DC:578
        zB02A      2    000225:1AA
        zB130     14    000219:73E
        zB02C      1    000161:3EA
        zB02D      2    000133:6E0
        zB24C      4    000108:3E0
        zB24E     18    000108:3BC
        zB13A      5    0000DA:1BC
        zB245      4    0000D6:7E6
        zB244      7    0000C2:522
        zB139      1    00007E:136
        zB138     18    00005E:304
        zE000      2    000AF1:438
        zB037      1    000A2B:73E
        zB140      1    000A14:2CA
        zB032      1    000A14:0FC
        zB25F      2    000A03:1FC
        zB251      1    0009D8:4D0
        zB255      1    0008B5:502
        zB253      1    000829:34E
        zB148      1    000816:2E4
        zB03C      1    0007FD:7E4
        zB14A      1    0007F2:01C
        zB14B      1    0007F2:01A
        zB259      1    0007E2:416
        zB03B      1    000776:7E8
        zB145      1    0006BE:51E
        zB030      5    000649:668
        zB03F      1    000602:272
        zB149      4    00057A:4D2
        zB034      1    000549:382
        zB25B      1    000519:3AA
        zB250      1    00050B:090
        zB039      1    0004E1:484
        zB031      1    0004B4:30C
        zB03E      1    000484:550
        zB25A      1    000406:214
        zB146      1    000309:1A6
        zB252      4    0002F1:060
        zB143      1    0002ED:3FC
        zB036      8    000237:400
        zB25D      1    00021B:7E4
        zB142      2    00020C:688
        zB14E     19    000166:492
        zB03D     17    000120:2EE
        zB25E      2    00011C:188
        zB033      1    0000FC:514
        zB144      1    0000F0:01E
        zB257      2    0000D2:07E
        zB03A      1    0000A8:542
        zB14C      2    0000A1:378
        zB141     28    000048:1C8
        zB25C      5    00000C:32E
        zB038     14    000008:562
        zB156      1    000B65:430
        zB048      1    000A49:1CE
        zB260      1    000A46:7A2
        zB04A      1    0009D7:7C8
        zB154      1    000970:032
        zB155      1    00095B:0B0
        zB043      2    0008FE:5E4
        zB15F      1    0008BB:1CA
        zB04C      1    0008B9:66C
        zB159      1    0007CF:406
        zB151      1    000783:18C
        zB152      1    000783:18A
        zB265      1    000782:3E2
        zB26A      1    00076B:024
        zB047      1    00074E:138
        zB153      1    000746:782
        zB157      1    0006DC:5F4
        zB263      1    0006D5:574
        zB267      1    000696:2E6
        zB04B      2    000648:1EE
        zB045      1    000602:270
        zB262      2    0004AA:484
        zB26B      1    000415:1DE
        zB26F      1    0002E9:6B4
        zB042      1    0002C7:618
        zB26D      6    0002B6:6B8
        zB150      1    000286:228
        zB15E      5    000279:7B4
        zB041      3    000269:648
        zB269      3    000235:3C8
        zB15B      6    0001CE:0B8
        zB04D     11    0001BF:72C
        zB26E      1    0001BA:0D8
        zB264      7    000125:4A0
        zB268      1    00011B:57C
        zB15D      7    00010A:308
        zB15A      3    0000FC:4F8
        zB261      3    0000D1:62C
        zB15C     21    00008E:75C
        zB266     14    000068:7FE
        zB044      2    000045:0D2
        zB046     10    000026:4F0
        zB158      1    00001E:07E
        zB26C     32    00001A:05E
        zB040      2    000015:54A
        zB04F     23    000009:1F2
        zB049     52    000008:1D4
        zB164      1    000A3E:224
        zB271      1    00083B:1F0
        zB050      1    0007FC:49A
        zB16F      1    0007F1:0E6
        zB168      1    000747:41A
        zB27A      1    0006B9:1D6
        zB273      1    00066C:234
        zB05E      1    00063E:450
        zB167      1    00062D:22C
        zB056      1    000528:7D4
        zB05C      2    0004EA:6A8
        zB160      1    0004CA:3BC
        zB27E      1    0004CA:1C0
        zB166     10    00043A:276
        zB058      2    00035B:72A
        zB057      1    00033D:06A
        zB165      4    000332:49C
        zB055      2    0002C7:626
        zB05D      9    000227:258
        zB05A      1    0001DC:106
        zB16E      2    0001CA:46E
        zB163      3    0001B5:622
        zB16B      3    000199:076
        zB161      3    000190:0F6
        zB279      1    000190:032
        zB270      1    000151:08E
        zB051      2    00014C:3D6
        zB059      3    000119:4D6
        zB054      1    0000C5:4E2
        zB27C      2    0000C4:65C
        zB16A      3    0000BC:626
        zB053     16    0000B5:542
        zB272      1    0000B5:336
        zB27D      1    0000A2:232
        zB27B    161    00005B:52A
        zB162      1    000055:436
        zB05F      3    000036:364
        zB275      1    000028:5D2
        zB274      2    000027:304
        zB277      5    000025:63E
        zB278      5    000023:1C0
        
  3. お忙しいところ貴重な情報ありがとうございます
    Personal Dictionaryで外字変換テーブルを指定したところ
    冒頭の「氵+亘」のJIS CodeはA421となっています
    このA421がBUKKYO2.mapの中に記載されていないため
    エディターで加工したtblファイルを指定しても「変換文字列」が
    空欄のままになってしまいます
    BUKKYO2.mapを具体的にどう加工すればいいのか
    この時点でつまずいてしまっているみたいです
    BUKKYO2.map中のB027はA467と記載されるべきではないのでしょうか?

    おそらくわたしが初歩的なところを理解していないと思うのですが
    何かヒントがあればよろしくお願いします

    • 私が Mac の辞書アプリ用に変換を試みたのは、岩波仏教辞典第二版 Toolkit を利用して EPWING 化したものです (第二版)。お手元の辞書はこれで間違いないでしょうか?

      私の手もとの辞書を PDIC で読み込むと、「外字変換テーブルの編集」では、

      First Code: B021 (File: GAI16F00)
      First Code: A121 (File: GAI16H00)
      

      となっています。

      • 大変失礼しました
        もう何年も前のことで正確なところは覚えておりませんが
        たしか「電子ブック版」をコンバートような気がいたします
        これでは無理ですよね
        間抜けすぎてお恥ずかしいかぎりです

      • 電子ブック版 (EB) だと第一版の方ですね。会話の食い違いの原因が漸く分かりました。最初に確認しておくべきで、失礼いたしました。

        上のリンク先の「EBWin 外字定義ファイル 一括ダウンロード」を解凍すると「IBE01.map」というファイルが含まれていると思います。これはどうも電子ブック版の岩波仏教辞典の外字定義ファイルのようです。もしかしたらこれがお役に立つかも知れません。ちなみに、「洹」には「A421」が充てられているのを先ほど確認しました。

      • IBE01.map を機械的に変換して IBE01.tbl を作成してみました。これを PDIC の「外字変換テーブル」に選択するとうまくいくでしょうか。残念ながら私の手元に電子ブック版がないので確認できないのですが…

  4. わざわざ変換テーブルまでアップしていただき恐縮です
    さっそく試しましたところ、全部確認した訳ではありませんが
    変換できているみたいです(tblファイルの一部を書換ました)

    今のところ、OSXとの相性は辞書.appですが辞書検索ソフト
    としての出来はEBMacが上という印象をもっています

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s