[前のメッセージ (日付順)]  [次のメッセージ (日付順)]
[前のメッセージ (スレッド順)]  [次のメッセージ (スレッド順)]
[日付によるインデックス]  [スレッド・インデックス]  [記事検索]

examples of use of the new scripts



 三田です。


 tools/filters 及び tools/convert2skk の新規ファイルの利用法をかいつま
んでご説明したいと思います。より詳細な説明については、(まだ書きかけでは
ありますが)README ファイルをご参照ください。

		http://openlab.jp/skk/skk/tools/filters/README


 実際に動作させるためには、まず最初に tools/filters/skkdictools.rb を、
ruby のパスの通っている場所(カレントディレクトリでも大丈夫です)に置く
必要があります。



レジュメ
========

・annotation を(ある程度)簡単にカスタマイズ
・「朝焼け」のような語を okuri-ari 化
・prime-dict や ipadic の SKK辞書化


annotation の選別
=================

 以前に予告しました、annotation 選別・抽出のためのスクリプトがこの
annotation-filter.rb です。

 一番簡単な使い方として、

% annotation-filter.rb -d SKK-JISYO.L | skkdic-expr2 > SKK-JISYO.L.minimally-annotated

 とすることで、「†」や「旧字」「異体字」など、ほとんどの利用者にとって
有用と思われる最小限のannotation のみを残してあとは全て消去することがで
きます。「greek」「きごう」「こう」など、競合が多いエントリの註釈は残し
たい場合には '-j 5' を付けると良いでしょう。

 「†」などの annotation の整備が進めば(高橋さん、ありがとうございます)、
このスクリプトと併用することで、意味のレベルにまで踏み込んだ annotation
を利用したい人と、誤入力防止のみに絞りたい人との平和的共存が可能になるの
ではないかと思っています。是非一度お試しください。

 正規表現を用いた抽出のためのキーワードについては、wikiの該当項目もご参
照ください。

		http://openlab.ring.gr.jp/skk/wiki/wiki.cgi?page=annotation



SKK-JISYO.notes の annotation 更新
==================================

 こちらはコミッター向けの応用例として、

% annotation-filter.rb -k SKK-JISYO.L > 1
% annotation-filter.rb -b SKK-JISYO.notes > 2
% skkdic-expr2 1 ^ 2 > 3
% skkdic-expr2 3 + 2 > SKK-JISYO.notes

 とすることで、L辞書の annotation に加えられた変更を notes辞書に取り込
む(同期させる)ことができます。


体言の okuri-ari 化
===================

 「朝焼け」のような語を "AsayaKe" と "Asayake " のどちらで入力するかと
いうのは昔からある議論ですが、正直なところ、どちらかに決めねばならぬとい
う性質のものではなく、原理主義に陥るのは不毛なだけでしょう。

 asayaKe.rb を利用することで、このような送り仮名を伴う体言の okuri-nasi
ペアから、対応する okuri-ari ペアを生成することができます。

% asayaKe.rb SKK-JISYO.L > 1
% skkdic-expr2 SKK-JISYO.L + 1 > SKK-JISYO.L.new

 とすれば、4237 candidates の okuri-ari が追加されます。(これらについ
ては、近日中にコミットしてしまうかもしれません。)


 okuri-nasi の方はいらないやという方は、

% asayaKe.rb SKK-JISYO.L > 1
% asayaKe.rb -e SKK-JISYO.L > 2
% skkdic-expr2 SKK-JISYO.L + 1 - 2 > SKK-JISYO.L.new

 とすれば良いでしょう。8610 candidates 節約できます。


 なお、okuri-nasi から okuri-ari への変換は簡単ですが、逆は annotation
などに情報が残ってでもいない限りほぼ不可能なので、体言はまず okuri-ari
で L辞書に登録し、必要に応じて okuri-nasi へと変換するのが良いのかなと思っ
ています。

 また、前のメールでも少し触れたように、ここで切り捨てる送り仮名は、その
まま skk-henkan-strict-okuri-precedence のための情報として使えるものなの
で、将来何らかの形で活用を図りたいところです。



prime-dict を SKK辞書に変換する
===============================


#!/bin/sh
prime2skk.rb -gA prime-dict > prime-dict.skk
conjugation.rb -UCop prime-dict.skk > prime-dict-conj.skk
skkdic-expr2 prime-dict.skk + prime-dict-conj.skk | annotation-filter.rb -k > SKK-JISYO.prim
e


 273433 candidates の、きちんと okuri-ari も持っている SKK辞書が作成さ
れます。prime-dict は L辞書がベースの一つになっていることもあり、L辞書と
の重なりを除くと 41491 candidates になります。

 prime の辞書は GPL とのことなので、時間が許せばですが、諺などの有用な
ペアを順次 L辞書にマージさせていただこうと思っています。


ipadic を SKK辞書に変換する
===========================


#!/bin/sh
ipadicpath=/path/to/ipadic-2.7.0
ipadic2skk.rb -gA $ipadicpath/*.dic > SKK-JISYO.ipadic.raw
conjugation.rb -op SKK-JISYO.ipadic.raw | skkdic-expr 2 > SKK-JISYO.ipadic.conj
complete-numerative.rb SKK-JISYO.ipadic.raw | skkdic-expr2 > SKK-JISYO.ipadic.num
skkdic-expr2 SKK-JISYO.ipadic.raw + SKK-JISYO.ipadic.conj + SKK-JISYO.ipadic.num | annotatio
n-filter.rb > SKK-JISYO.ipadic


 こちらは 225340 candidates の辞書になります。L辞書との重なりを除いても
152140 candidates あります。

 ただし、固有名詞の類がかなり多いので、実際には

ipadic2skk.rb $ipadicpath/Noun.name.dic > SKK-JISYO.ipadic.jinmei
ipadic2skk.rb $ipadicpath/Noun.org.dic $ipadicpath/Noun.proper.dic > SKK-JISYO.ipadic.proper
noun
ipadic2skk.rb $ipadicpath/Noun.place.dic > SKK-JISYO.ipadic.geo

 と専門辞書として取り出した方が有用でしょう。

               candidates SKK辞書との重なりを除いた数
SKK-JISYO.ipadic         225340   152140
SKK-JISYO.ipadic.jinmei      30758   12989
SKK-JISYO.ipadic.geo       71494   18548
SKK-JISYO.ipadic.propernoun    40027   34807

;; 「わんさがーる /わんさガール;‖名詞 一般/」って何でしょう (^^;


 ipadic には ICOTライセンスが適用されるので、SKK の各辞書に直接マージす
ることには問題があるかもしれません。これらの語彙を L辞書などにマージした
場合にはライセンスがどのような状態になるのか、お詳しい方にご教示いただけ
れば幸いです。


================================================
三田祐介(key/clefs) <clefs@xxxxxxxxxxxxxx>