最近の(でもないけれど)出来事/落書帳/仲間内のネタ/覚え書き/whatsnew

基本的に落書き帳/メモ帳/備忘録なので、 わりと間違っていたり、 数分後とか後日とかに見たら、 いきなり消えていたり書き換わっていたりとかあります。


Wed,01 Apr,2009

考えてはいたけれども書き忘れた……書かなかったネタ。

いや、ワタヌキですから。
しかも全然おもしろくないし。

この手の事を本気で始めると人生かかってしまうから、 手付金が1億円とか数億円で失敗しても返還不要、 とかで無いと、無理だし。

Thu,02 Apr,2009

成功すれば誉めそやし擦り寄ってきておこぼれに預かろうとする。 それはまだマシな方で、時には成功に寄生し、隙あらば奪い取る。 妬み嫉み誹謗中傷する。
そうかと思えば、失敗すれば唾棄しけなし、 やっぱり誹謗中傷し、叩き潰す。

Sat,04 Apr,2009

品詞(単語)の漏れ?、 anthy-9100h + alt-cannadic-090308 + alt-depgraph-090308 の話。

「|古かったり|」(ふるかったり)が出ない。「|古かった|り|」になる。
「|新しかったり|」(あたらしかったり)が出ない。「|新しかった|り|」になる。
何かものすごく既視感がある……。
やっぱり既出だった
→「vagus氏 - 丘の道を登り - 2009年03月14日」。
しかも、alt-depgraph-090402 が出ていた。 更新、お疲れさまです。

↑ と言う訳で、 今、alt-depgraph-090402 に入れ直しているところ。 明日に続く。

誤報。
現場担当の人は、 もしかしたら誤報をやらかすかもしれないと 気付いてたかもしれない(憶測。根拠無し。嘘かも)。 でも、それを指摘すると、中央や上層部の面子を潰してしまい、 不興を買って、良くて冷遇、悪くて窓際か左遷。 だから言えない言わない。 見猿聞か猿言わ猿。
かと言って、言わないでトラブル起こしても、やっぱりアレなのだけれど。
かくして事なかれ主義に。

そう考えると、 あの係長とかあの係長とかあの係長とか、 それをちゃんと擁護していた課長とかも、 凄かったのだなと今更。

最近3ヶ月くらい、 白地に黒のラインと下側黒の色の、 わりとカクカク目だけれどもカドはトンがらないくらいに丸めてある ちょっと古い感じ(1980年代の国産車風?)のデザインのセダンの車を 何度も見かけるのですが、流行でしょうか。 見る度に、 ヘッドライトがフロントのスリット?の並びだったり、 出たり引っ込んだり?するタイプだったり、 ボンネットに吸気?のスリットが有ったり無かったり、 ボンネットの色が違ったり、 後ろのトランクが有ったり無かったり、 何か色々違うので、 同じ車を何度も見ている訳では無いと思いますが。

Sun,05 Apr,2009

Tue,31 Mar,2009の、 anthy-9100h + alt-cannadic-090308 + alt-depgraph-090308 の蛇足の話(間違いではないし、訂正すべき物でも無いけれど、 かといって最適というわけでもない微妙な付属語が出現してしまう話)。
vagus氏 - 丘の道を登り - 2009年04月03日 - 自作 depgraph 更新(4/2)」 にて、解説がありました。有り難うございます。
結局、行き着く所は、 コーパスを10倍100倍に増やすとか、 新しいエンジンを開発するとか、 になってしまうかなぁ。
すみません、良いあるいは良さそうなアイディアが浮かびません。

alt-depgraph-090402 の件、昨日の続き。 「|古かったり|」(ふるかったり)、 「|新しかったり|」(あたらしかったり)、 が、出る様になっていた。
「××(助詞)(補助動詞)」の系統で2文節に変更された物があった。 顕著な所で「××に|なる」「××に|なった」などの、 「××に|な○○」あたり。
と言う訳で、常用して試験中。
A4で4〜6ページぶんくらい書いた所では、 特段問題は見つかりませんでした。
以前、おこなった、 手持ちのデータ全部突っ込んで変換できるか否かみてみる件は、 やり方忘れてしまって、ちょっと難儀。
処理結果は以下。


Sun,05 Apr,2009 : alt-depgraph-090402版ベースで速報
Sun,12 Apr,2009 : alt-depgraph-090408版ベースに改訂

明らかに alt-depgraph の問題と思われる件は発見されず。
「××(助詞)(補助動詞)」の系統で2文節に変更された物は下記検討から除外。

1文節で出ない:
|みかんせいらしい| |未完成らしい|

1文節で出ない:mkworddic関連なので alt-depgraph, alt-cannadic は無関係。
|げんいんついきゅうできる| |原因追及できる|、「|げんいんついきゅうが|できる|」(|原因追及が|できる|)が本則?で、「原因追及|できる」は変則?かもしれない?。
|げんぶつしきゅうする| |現物支給する|、「|げんぶつしきゅうを|する|」(|現物支給を|する|)が本則?で、「現物支給|する」は変則?かもしれない?。

1文節で出ない:単語登録が無くなった。
|よてい|ろが| 「|予定|路が|」 → 「|予定|路|が|」になってしまう。「路」は単漢字。

1文節で出ない:音便?かもしれないので、1文節にならない方が適切かもしれない。
|かきかたして| |書き方して| #T35。「|かきかたを|して|」(|書き方を|して|)が本則?で、「書き方|して」は音便?かもしれない?。
|かきかたする| |書き方する| #T35。「|かきかたを|する|」(|書き方を|する|)が本則?で、「書き方|する」は音便?かもしれない?。

1文節で出ない:既出(丘の道を登り - 2009年03月14日) なので問題無し。
|しょざいする| |所在する|、#T35 → #T30 ?
|しょざいしている| |所在している|、#T35 → #T30 ?
|みていが| |未定が|、#T16 → #T15 ?
|けんえんする| |倦厭する|、#T35 → #T30 ?
|けんえんされそうな| |倦厭されそうな|、#T35 → #T30 ?
|けんえんしているらしい| |倦厭しているらしい|、#T35 → #T30 ?

1文節で出ない:既出(丘の道を登り - 2009年03月10日) なので問題無し。
|しゅくたいさせる| |縮退させる|、#T35 → #T30。
|しゅくたいした| |縮退した|、#T35 → #T30。

1文節で出ない:既出(丘の道を登り - 2009年03月09日) なので問題無し。
|どうこんした| |同梱した|、#T15 → #T30。
|どうこんして| |同梱して|、#T15 → #T30。


↑ Sun,19 Apr,2009 追記: 「vagus氏 - 丘の道を登り - 2009年04月13日 - 「未完成らしい」他 【追記】4/13」 に解説が来ていました。 いつもいつも、有り難うございます。

mkworddic関連は alt-cannadic で面倒を見なくとも良いと思います。
「現物支給」は1単語として認識されている傾向も有る様に思われるので
(alt-cannadic に入れるか mkworddic/compound.t のままにするか)迷いますが、
「原因追及」は複合語(2単語で mkworddic/compound.t に登録)のままの方が
妥当だと思います。

「原因追求」、「原因追及」、「原因追究」、気付いていませんでした。 ORZ
どんなに多くても誤用は誤用。
誤用を主辞書に追加してしまっては、誤用を助長してしまったり、
フォーマルな書類で間違えてしまう元になってしまったり、
別の問題が出てしまうかと思います。
# 2ch辞書とか、ブログ用?辞書を作るとか、そう言うのなら話は別ですが。

#D2T35 に関して。
[Anthy-dev 3457] 2007年 4月 20日 (金) anthy-8819 では使える状態だったが、
[Anthy-dev 3465] 2007年 5月  7日 (月) anthy-8906 にて使えない状態になっていた。
anthy-8906/DIARY に
> --(2007/04/25)(yusuke)
> 「運転席|側」のように接尾辞は別文節にする
とあるので、故意に切ったと思われます。
src-worddic/wtab.h の #D2T35 の行を
> {"#D2T35",POS_NOUN,COS_SUFFIX,SCOS_T40,CC_NONE,CT_NONE,WF_INDEP /* "名詞化接尾語(っぱなし)"*/},
に書き換えて(SCOS_NONE → SCOS_T40)、depgraph/verb_base.depdef に
> @カ行5段連用形5 "き" Cy@
を追加した所、「書き様」(かきよう)が1文節で生成できる様になりました。
「書」(か)#K5、「き」付属語、「様」(よう)#D2T35。
# 付属語グラフで「HvCy@」とかすれば、元の品詞が何であっても #D2T35 が付く様な気がする。
この辺りの複合語は、きりが無いので、バッサリ切り捨ててしまうのも手かと思います。
「書き|方|する」とすれば変換できますし。

言葉が足りませんでしたが、既出ぶんは自分用メモです(汗

「ある程度」は了解しました。あえて異なる考えをすれば、
「[こそあど]の程度」「ある程度」は、いっそ全部消すのも、一つの手かと思います。
変換する時に「|××程度|」になったり「|××|程度」になったりで迷わなくて済みますので。

一撃殺虫ホイホイさん ¥105-(2〜3冊) とか ¥500-(2〜3冊)とか。 なんかあちこちでみかける気がする。
新シリーズが始まったから旧シリーズがだぶつく?。

…… ラジオの放送が無い……。 ……。 ……。 ……。 電池切れだった(泣。

風の谷のナウシカ の宣伝用曲……。
TOM★CAT、ふられ気分でRock'n' Roll、1984.11.14。 サビが「Don't stop, Don't stop music.」なので、 それが曲名かと思いきや違う。
曲名、アーティスト不明。 カッコインテグラや Back to The Futer のテーマ曲? (HUEY LEWIS & THE NEWS の The Power of Love らしい)の サビに似た感じ。
Sun,08 Jun,2009 追記: にちゃんねるの実況とか言う名前の板で曲名を見つけた。 Jump、ヴァン・ヘイレン、1984年1月、らしい。

Tue,07 Apr,2009

C/C++ のポカミス。
昔書いたソースで、 volatile sig_atomic_t なグローバル変数に対して、 アトミックな操作を期待した「演算」を行っているのを見つけた。 ……恥ずかしい。 アセンブリだとアトミックな演算ができるので、 うっかりやってしまったのだが。 ……、i386以降だと、 アセンブリでも lock プレフィックス付けずに inc/dec すると、 アトミックにならない?。

shell script のポカミス。
test には [ と言う別名が有るが、 m4 がからむ所では [ は使えない (m4 の処理と誤判定されてしまう)。
……、既に治してあった。以前にも、はまっていたらしい。

shell script のポカミス。
shell script の if の ! は非標準。 dirname、mkdir -p は非標準。
以前、vagus氏に dirname 使った何かを送ってしまった事が orz。

Makefile のポカミス。
cp -p、touch は POSIX 標準では1秒単位。
なので、Makefile で cp -p とか touch -r とかすると タイムスタンプが古くなってしまい、判定がコケる場合がある。
これも、以前、vagus氏に cp -p 使った Makefile を送ってしまった事が orz。

Makefile のポカミス。
明示ルール中では $< は使えない。 行末バックスラッシュ \\ を使った場合、 空行をスキップしてその先の行まで連結する処理系もある。 VPATH は非標準。
ええ、もう、これ全部、以前、vagus氏に送ってしまった事が ORZ。

Makefile のポカミス。
明示の依存ルールの記述にて拡張子の無いファイルを指定した場合、 暗黙ルールが呼び出されない処理系がある。
Solaris でちゃんと処理されない Makefile があったのは、これか……。

Thu,09 Apr,2009

メモリバリア(メモリフェンス)。 Mon,29 Jan,2007の続き。

メモリバリアの各パターンの何が違うのか、また混乱してきたので、 個人的にまとめ。

autoconf/automake の依存順序。

なんか、見る資料毎に順序が違っているし、 ../configure の後に gmake すると、 勝手に実行している場合があるので確認してみた。
aclocal
        依存:$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
        生成:$(top_srcdir)/aclocal.m4

autoconf : aclocalの結果に依存。
        依存:$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in $(CONFIGURE_DEPENDENCIES) $(top_srcdir)/aclocal.m4
        生成:$(top_srcdir)/configure

autoheader : aclocalの結果に依存。
        依存:$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in $(CONFIGURE_DEPENDENCIES) $(top_srcdir)/aclocal.m4
        生成:$(top_srcdir)/include/config.h.in

automake : aclocalの結果に依存。
        依存:$(srcdir)/Makefile.am $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in $(CONFIGURE_DEPENDENCIES) $(top_srcdir)/aclocal.m4
        生成:$(srcdir)/Makefile.in
aclocal が最初で、残り3つの順番はどうでもいいらしい。

Fri,10 Apr,2009

桜。
桜と言ったら、 Vガン 前期OP で桜の枝を肩にしたウッソとか、 1〜4話あたりで 満開の桜の森だかの桜吹雪の中を 墜落しかけただか墜落しただかの コアファイターだったかシャッコーだったかとか。 ……花びらがエンジンに詰まりそうだ。

Sun,12 Apr,2009

anthy-9100h.patch13Bptn20 のバグ。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
ENABLE_ERROR_RECORD を有効にした時に、 ごくまれに判定ミスがある事に気付いた。
送り仮名のパターンが複数有る単語を学習してある場合に、 判定を間違えている。
例えば「おこなって」を変換した時の「行なって」と「行って」だと、 システム辞書で先頭に載っている「行って」だけ処理を行い、 それ以降に載っている「行なって」の判定は行われていなかった。
まぁ、実用上は問題無いのだけれど。治した。
Mon,13 Apr,2009に続く。

曲名、アーティスト不明。
Mon,18 May,2009 追記:突然思い出した。 フレンズ、レベッカ、1985.10.21。
愛は勝つ、KAN、1990.9.1。

Mon,13 Apr,2009

蛍光灯が切れた。 最後に購入したのが5年だか 10年だかくらい前だから、 値段が全然判らない……。 特売を掴めれば400〜600円で普通は600〜900円くらい?。
……定価1,000〜1,500円くらいで、 実売価格が、 30型1本450円〜定価どおり、 30型2本450円〜定価どおり、 32型1本600円〜定価どおり、 32型2本1,200円〜定価くらい、 30型32型2本セット750〜2,000円、 らしい。 長寿命タイプ(寿命2倍の12000h〜13000h)だと、 30型1本700〜1,000円、 30型2本700〜1,000円、 32型1本1,000〜1,600円、 32型2本1,500円〜定価くらい、 30型32型2本セット1,500〜2,000円、 するらしい。
……30型は1本でも2本でも同じ値段、 32型は30型とセットでも同じ値段って……、 2本買っても次に切れるのが5年後とか10年後とかだから、 失くしたり割ったりするよなぁ……。

↑ そして一番安いのが、家電量販店ではなく 西友だったりする。 家電量販店の販売価格からポイント引いた値段より確実に安い。 ケーズの特売価格と同じか微妙に安い。
意外。その代わり、品揃えが中核商品しかないけれど。

↑ 蛍光灯の省エネ。
Panasonic の web サイトによると、 蛍光灯を点ける瞬間には、 蛍光灯を点けっ放しにした時の5〜10分ぶん程度の電力を消費するらしい。 また、 蛍光灯を点ける瞬間には、 蛍光灯を点けっ放しにした時の30分ぶんの蛍光灯の寿命を消費するらしい。
電気の節約を考えると5分以上不要な時は消灯、 になるけれども、 製造の為の資源節約を考えると30分以上不要な時は消灯、 にしなければならないらしく。
微妙に悩ましい。

anthy-9100h.patch13Bptn20 のバグ、 Sun,12 Apr,2009の続き。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
そのせいで、システム辞書で先頭に載っている物以外には、 LATTICE_AUTOEXPAND_DEPS も適用しなくなっている事に気付いた。
治した。

インターネットとネットワークノードの説明に困った。 取り敢えず「個にして全、全にして個」とか言っておけば良いか?。

「個にして全、全にして個」の出典。
有名な所でナウシカの王蟲。 新しい所で攻殻機動隊のタチコマ。 海外だとスタートレックのボーグ(たぶん)。 海外と言っても All in one and one in all を三銃士とか言うと、 それはフランス語でないとおかしい気が。 そもそもの原典は仏教らしい?。
取り敢えずそんな所らしい。

GTE CyberTrust (Betrusted Japan 改め(2004年) Cybertrust Japan の上流) が verizon business に買収されたらしい。 2007年の話らしい。
SSL証明書は互換性確保の為、古い社名のままになっているから、 全然気付かなかった。

SSL証明書。
年度替わりの頃から、新生銀行の SSL 証明書が VeriSign から Entrust に変更になっていたらしい。 経費削減?。

SSL証明書。
半年位前から?、addons.mozilla.org の SSL 証明書が、 Equifax から GlobalSign Extended Validation に変わっていた。

web から閲覧する方式の RSS リーダーサービス?の不都合。

Fri,17 Apr,2009

提出図面を MS-PowerPoint で書けと指定されてしまった。 「CAD で書いて DXF で出したら駄目ですか?」と聞いたら、 「図面のファイル形式を揃えたいのだけれど、 まだ CAD が使えない新人もいるから駄目」。
仕方が無いので、 OpenOffice.org-2.3.0 で書いて MS-PowerPoint形式で保存したら、 OpenOffice.org-2.3.0 では読み込めなくなった(内容が崩れる)。
さらに仕方が無いので、 OpenOffice.org-3.0.1 に入れ直そうかと思ったが、 FreeBSD/amd64 6.4-RELEASE 用のバイナリパッケージが何処にも無い。 ソースパッケージから入れると 15〜20時間かかると言う話だし、 作業領域に 1.0〜1.5GB くらいのディスク容量が必要らしいが 空き容量が足りない。
試しに、 FreeBSD/i386 6.4-RELEASE用とか FreeBSD/amd64 7.1-RELEASE用とか GNU/Linux/i686用とかを動かしてみたが、 どれも Segmentation Fault で駄目だった。
さらにその辺りの操作をウダウダやっていたせいで、 メモリや MFS な /tmp を食いつぶしてスワップアウト大会。 スワップアウト中に amd(a daemon that automatically mount file systems) に触ったら、 カーネル近辺が不安定になった。
なんかどうでもいいところで頓挫しているなぁ。

↑ カーネル近辺が不安定になった件。
mount 情報に

pid*****@******:/amd/localhost on /amd/localhost (nfs)
とかが残ったまま amd が落ちると、 リトライタイムアウトがもの凄く長いか、 あるいはタイムアウト無しで無限に待ち続けるか、 してしまい、不安定になった様に見えるらしい。
% sudo /usr/sbin/umount -f /amd/localhost
とかやって -f の強制アンマウントで情報を消してやれば (通常アンマウントがタイムアウトで失敗してから 強制アンマウントを行うので、少し時間がかかる)、 またもとの安定した状態に戻った。

↑*2 OpenOffice-2.3.0 で MS-PowerPoint形式で保存したら 読めなくなった件。
MS-Windows版の OpenOffice-3.0 や、MS-PowerPoint だと、 問題無く読めた。 なので、 OpenOffice-2.3.0 のインポート機能が不完全なだけで、 OpenOffice-2.3.0 のエクスポート機能は問題無さそう。 なので、良いと言う事にしよう。

Acer Aspire One Ultra。 Atom 1.6GHz クラスらしい。
私の場合、 Atom 800MHz だと実用に耐えず、 Atom 1.6GHz クラスまで来て、ようやく実用になる最低レベルだからなぁ。 Core Duo 1.6GHz近辺 / Core2 Duo 1.6GHz近辺 クラスでも 標準状態(125MHz〜1.6GHz まで負荷に応じて可変)だと遅過ぎて我慢できず、 SpeedStep 回りの制御デーモンを改造して、 最低速度 750MHz、負荷が上がったら直ちに 1.6GHz に変更、 と言う状態にして、ようやく実用に耐えている状況だし……。
普通の文書タイプやソフトウェアのコード書きやハードウェアの図面書きで このざまだから、 ネットブック級でコンパイルなんぞやったら、 遅さに耐えられないだろうなぁ。

個人的な感覚としては、 Athlon64 / Phenom 系だと最低 1.0GHz 最高 2.0GHz くらいなら、 Pentium4 / PentiumD 系だと最低 1.5GHz 最高 3.5GHz くらいなら、 OpenOffice や Firefox や Thunderbird の再コンパイルだとか make world とかやらない限り、 ストレスを感じずに快適に利用できるし、 コンパイルもどうにか耐えられるのだが。

その辺りを考えると、 uPD70116 V30 10MHz でも実用に耐え 80386SLC 33MHz なら快適に使えたらしい、 Vz とか WXシリーズとか TurboC++/TurboAssembler って、 実は凄いのかもしれない。 あるいは、 現代のソフトウェアが高機能化/多機能化しすぎ、もしくは GUI が高度化しすぎ、 なのかもしれない。

Sat,18 Apr,2009

娘フロ ¥1,180- で4枚、 娘トラ ¥1,380- で2枚、 娘トラ(盤面にキズ)¥1,380- から2割引で1枚、 娘たま は忘れた……確か店頭在庫2〜3枚。

↑ 毎月¥200-のペースで下がっている気がする。 こう言う物の底値ってどのくらいなんだろう。 THM氏がいれば一発回答なのだろうけれど。 マクロス7以上に玉数出ただろうけれど、 マクロス7の状況をそのまま当てはめると、 普通¥500〜800近辺、瞬間最低底値¥100〜300近辺、なのかなぁ?。

uim-anthy で 文節区切りを明示的に指定しながら入力する入力方法。
たぶんThu,04 Dec,2008の続き。
以前、 「芝玉ブログ - 2007年1月14日 (日) - 文節区切りを検出するには?」、 「丘の道を登り - 2008年12月02日 - 自作 depgraph の進捗状況」、 辺りで見かけた、 uim や Anthy において、 文節区切りの位置を人間から取得すれば変換結果が良くなるのではないか、 と言う話。

↑ 唐突に、1〜3日前後で使い始める所まで持っていける実装方法を思い付いた。 思い付くも何も、取っ掛かりが掴めれば、わりと簡単な実装なのだけれど。
uim のキーマップを変更して、 「(文節区切り指定キー) (かなの入力)」と入力した場合は 片仮名が入力される様にする。 あとは anthy の文節区切り抽出のアルゴリズムを、 片仮名/平仮名で区切り位置を判定するアルゴリズムに交換する。 前方n文節なアルゴリズムを実装するよりは簡単。
何か適当なキーでカタカナが入力される様にしたり、 シフトキーと同時タイプでカタカナが入力される様にするには、 ${HOME}/.uim を適当にいじってやればよい。
拙作の 「uim-Anthy のキーカスタマイズで大文字と小文字を別のキーとみなすパッチ(Canna+kinput2風)」 参照。
普通は使わないと思うので、上記ページの設定サンプルでは、 コメントアウトしてある。 for KATAKANA (type 2) と for KATAKANA (type 3) の [] のあいだ。
さて、アイディア時点での話はともかくも、 現実的な需要は有るのだろうか。 需要が無いのにやってもなぁ。

Sun,19 Apr,2009

↑*2 リンク先の 「丘の道を登り - 2008年12月02日 - 自作 depgraph の進捗状況」 にて、追記が増えている事に、今頃気付いた。
済みません。冷徹に分析してみただけでして。 vagus氏に対して、怒っている訳ではありません。 むしろ、 かな漢字変換に於いて無視できない or 重要な事項として、 Thu,04 Dec,2008に 記述した様な事項が有ると私に気付かせるに至った根本は、 vagus氏の過去ログでして。

↑*3 Firefox と gimp の ソースパッケージからのアップデート終わんない〜、 とか何とかやっている待ち時間にいじっていたら、もうできた……。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」 の patch13Bptn21。 番号は patch13C か patch13-2 か patch14 にすべきかもしれないけれど、 バージョンの仕分け方を考えるのが面倒になった。 patch12/13B に対する付加機能だからいいか。
vagus氏の構想だと、 「区切りを指定した所では必ず区切り、指定しなかった所は自動判定」 だそうですが、 面倒なのと、 「絶対区切らない指定は、どうしたら良いだろう」と言うのが有って、 そこまでは至らず。 「区切りを指定した所では必ず区切り、指定しなかった所は絶対区切らない」 になっています。
あと、(辞書や変換エンジンのクセや傾向を考えて) 「文節区切り位置を間違えそうな所で、あらかじめ指定する」 と言う芸当ができるのは、vagus氏だけではないかと思います……。 「ここではきものをぬいでください」の様に、 どこが区切りなのか書いた本人にしか判らない物はともかくも……。

↑ とか何とか書いていたら、 「区切りを指定した所では必ず区切り、指定しなかった所は自動判定」 の実装方法も思い付いてしまった……。

↑ 「区切りを指定した所では必ず区切り、指定しなかった所は自動判定」、 取り敢えず試す事が出来そうな物はできあがり。
MANUALLATTICE_MODE true 指定すると 「区切りを指定した所では必ず区切り、指定しなかった所は絶対区切らない」。
VITERBI_MODE true か MAXLEN_MODE true 指定して、 LATTICE_HINTING_BY_KATAKANA true 指定すると、 「区切りを指定した所では必ず区切り、指定しなかった所は自動判定」。
あと、 日曜の夜にアップロードした版(Sat,18 Apr,2009版)はバグ (文節区切りの訂正操作が、できなかったり、 無理にやろうとするとメモリ破壊かメモリリークを起こす) があるので更新されたし。 月曜中に修正版(Sun,19 Apr,2009版)を再アップロードする予定。 アップロードした。

↑ うーん、上記の2方法を実装した感触だと、 カタカナ平仮名での区分けだけでなく、 文節区切り用文字を挿入する方法でも実装できるなぁ。
「bunnsetsu;kugiri;itiwo;syudou;nyuuryokusuru;mo-dowo;tuika」 とタイプすると、 「ぶんせつ;くぎり;いちを;しゅどう;にゅうりょくする;もーどを;ついか」 と表示されて、 「|ぶんせつ|くぎり|いちを|しゅどう|にゅうりょくする|もーどを|ついか|」 と区切られる方式。 この方が人間には見やすいし、 SKK方式のシフトキー連打で挫折した人でも使えるし。

↑ それから。 人間が文節区切りを全て漏れなく入力するのは大変、と考えると、 「区切りを指定した所では必ず区切り、指定しなかった所は自動判定」 の方が良いかもしれない。

↑*3 anthy-9100h + alt-cannadic-090308 + alt-depgraph-090308。
「|終わんね|」(おわんね)、
「|終わらね|」(おわらね)、
がでない……のだけれども、 ここまで極端な音便?方言?変則?は出なくて当然かも。
「|終わらない|」(おわらない)、
「|終わらねえ|」(おわらねえ)、
「|終わらねぇ|」(おわらねぇ)、
「|終わんない|」(おわんない)、
「|終わんねえ|」(おわんねえ)、
「|終わんねぇ|」(おわんねぇ)、
は出る。

Mon,20 Apr,2009 〜 Tue,21 Apr,2009

↑*? ここ数日の、 Anthy で文節区切りを明示的に指定しながら入力する方法の続き。 「かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
文節区切り用文字をタイプしながら入力する方法でも実装できた。 詳細は 「patch12/patch13/patch13B パターン21:」 を参照。


uim-anthy にて入力する際に、 短い文節を入力しては確定し、短く入力しては確定し、 の方法で入力する場合に、 変換結果を良くする方法。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ

先に結論:
実際に実装したとしても、そんなに劇的な効果は無いと思う。
実装するとすれば、 直前に入力された内容を保持しておき、 直前の内容と今回入力された内容を組み合わせて、 複合語が適用できるなら適用して高得点にする、 OCHAIRE学習が適用できるならば適用して高得点にする、 その辺りになると思う。
その際に、誤適用/誤学習を防ぐには、 フロントエンド(uim,scim,iiimf,imなど)の改造が必要。

適切に適用できる状況がどれ位の頻度で有るのか微妙。 手元の計測結果だと、1〜3割ぐらいかもしれない、 有効か無駄か微妙なライン。

Thu,23 Apr,2009 追記:
コーパスを有効にしている場合、 直前の文節によって、 現在の文節の各候補のスコアリングに調整が入っているのを忘れていた。
なので、下記に書いた思考過程には、スコアリング調整のぶんが抜けている。 Thu,23 Apr,2009に続く。

Mon,27 Apr,2009 追記:
何だかんだ言っておきながら、結局実装。 Mon,27 Apr,2009に続く。


適切に適用できる状況が発生する頻度を推定する為の実測結果は、 「Anthy 改造パッチの詳細解説と覚え書きと落書きとグチ - 継続使用の試験結果とかベンチマーク結果とか - Tue,21 Apr 2009」 を参照。


思考過程:

万事想定通りに情報が得られる場合:
直前の単語の品詞と付属語(のハッシュ)を見て ビタビアルゴリズムの確率を修正したとしても、 文節区切りの判定には用いられるが、 各文節毎の候補の並び順には反映されない。 ビタビの文節区切りの判定に用いたとしても、 文節を細切れに入力するクセのある人に於いて、 文節区切りの判定に役だっても……。
前方n文節最長一致は、そもそも直前の単語を見ていないし、 各文節毎の候補の並び順には影響を与えない。
よって、文節区切りには、あまり役に立たないかもしれない。
各文節毎の候補の並び順に於いては。 「(前に入力した単語につながる)複合語なので高得点」、 「(前に入力した単語につながる)学習が適用されて高得点」、 の点では、役に立つ。 でも、その様な状況がどれ位の頻度なのかと言う問題がある。

そもそも、想定通りの情報が得られるとは限らない:
現状では、 無変換で確定した場合は、 フロントエンドから変換エンジンには情報が来ない。 行編集やカーソル移動などを行った場合も、情報が来ない。
なので、直前の変換確定結果が、 今回の変換内容の直前の内容か否かが判らない。
「今回の変換内容の直前の内容か否かが判らない。」 と言う内容を 「今回」「の」「変換」「内容の」「直前」「の」「内容か」「否か」「が」「判らない」「。」 と分けて入力されたと想定すると、変換エンジン側では 「今回」「変換」「内容の」「直前」「内容か」「否か」「判らない」 を得る事になる。
複合語辞書に「変換_内容」が登録されていると仮定すると、 「変換」「内容の」は、 直前の変換内容を知る事で複合語の適用ができる。
「今回」「変換」は、 直前の変換内容を知っても何の情報も得られない (ビタビの遷移確率の計算に利用すると、むしろ害になる。 「今回」と「今回は」では品詞とか付属語ハッシュ値とかが違うので)。
「否か」「判らない」は、 直前の変換内容を知る事で有効な情報が得られるけれど、 「今回」「変換」の時と区別を付ける方法が無い。
「今回」「変換」、 「内容」「直前」、 「直前」「内容」、 「内容」「否」、 「否」「判」、 においては、 連続する文節の自立語部分を抽出した学習が適用できる。 但し、学習データの利用効率が低い。 あと、 行編集やカーソル移動などを行った事を知る事ができないと、 誤適用してしまう。
行編集やカーソル移動などを行った事を知る事ができないので、 OCHAIRE学習とか連続する文節の自立語部分を抽出した学習などにおいて、 行編集やカーソル移動をされると、誤学習してしまう。 誤学習を防ぐ為に学習しない様にすると、 文節を細切れに入力する人の場合に学習できなくなる訳で、 学習できないとなると学習の適用も出来なくなる訳で、 学習の適用ができないならば直前の内容を知っても無駄な訳で。
uim等のフロントエンド側を、 その手の情報を通知してくる様に改造する?。 誰が改造するの?。 原作版 Anthy との互換性確保はどうする?。

情報を通知する様にフロントエンドを改造したとして:
入力する文の内容を推敲しながら、 「直前の内容か否かが判らない。」、カーソル移動、 「変換内容の」、カーソル移動、「今回の」、 の順で入力されると、効果が無い (毎回リセット情報が通知されてくるだけ)。
平仮名/英数記号だけの入力があった場合、 自立語なのか、付属語なのか、自立語+付属語なのか、 複数の文節で平仮名/英数記号が続いているのか、 わからない。 なので、 「連続する文節の自立語部分を抽出した学習」や、 「連続する文節の付属語部分を抽出した学習」などを、 学習したり適用したりする事は、やっぱりできない。 OCHAIRE学習においても、 文節区切りが有るのか無いのか、 自立語と付属語の境目が有るのか無いのか、 あるいは区切れは全然関係無いのか、 などが、判断できないので、誤学習や誤適用が増えるかもしれない。


プログラムの構造上の話:
変換コンテキストは窓毎に保有しているっぽいので、 直前に入力された内容は変換コンテキストに保存しておく事ができそう。 ターミナルソフト側で IM の通信切断を行うまでは、 コンテキストは保持され続けているし。

以下、uim-anthy の処理の流れ。

起動(uim-xim 起動):
uim <-> XIM bridge. Supporting multiple locales.
Using full-synchronous XIM event flow
Anthy: TRACE: anthy_init();
Anthy: TRACE: anthy_get_version_string();
Anthy: TRACE: anthy_create_context();
ここで学習結果を読み込むので(たぶん)、ちょっと時間がかかる。
Anthy: TRACE: anthy_release_context();
ここで読み込んだ学習結果を破棄している。
Supported conversion engines:
  direct (*)
  anthy (ja)
XMODIFIERS=@im=uim registered, selecting anthy (ja) as default conversion engine

接続(kterm では Open Input Method、mlterm では mlterm 起動):
Anthy: TRACE: anthy_get_version_string();
Anthy: TRACE: anthy_create_context();
ここで再び学習結果を読み込むので(たぶん)、ちょっと時間がかかる。

IM を On(API 呼び出しは何も無し):

入力:
(API 呼び出しは何も無し)

変換:
Anthy: TRACE: anthy_set_string();
Anthy: TRACE: anthy_get_stat();
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_get_segment();

次候補:
Anthy: TRACE: anthy_get_stat();
Anthy: TRACE: anthy_get_segment_stat();
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_get_segment();

決定:
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_commit_segment();

入力:
(API 呼び出しは何も無し)

決定:
(API 呼び出しは何も無し)
ここで平仮名/英数記号だけからなる内容を入力されていると、
変換エンジンはその事を知る事ができない。
辞書に登録されていない単語を、別の読み方で分解して入力した場合も、
同様に知る事ができない(そういう内容の文章が有ると誤判定してしまう)。

入力:
(API 呼び出しは何も無し)
ここで、
継続して変換内容を入力しているのか、
行編集やカーソル移動などの継続入力ではない作業を行ったのか、
その辺りを uim から Anthy に通知する API が無いので、
変換エンジンは、継続入力なのか、新規入力なのか、知る事ができない。

変換:
Anthy: TRACE: anthy_set_string();
Anthy: TRACE: anthy_get_stat();
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_get_segment();

決定:
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_get_segment();
Anthy: TRACE: anthy_commit_segment();

入力:
(API 呼び出しは何も無し)

カタカナ/平仮名変換して決定(uim-1.5.5以降):
Anthy: TRACE: anthy_set_string();
Anthy: TRACE: anthy_get_stat();
Anthy: TRACE: anthy_commit_segment();
この辺りのカタカナ語/平仮名語の強制学習機構を応用して、
無変換の強制学習機構を追加してやれば、
無変換で入力確定された場合でも、変換エンジンがその事を知る事が出来る。

IM を Off(API 呼び出しは何も無し):

切断(kterm では Close Input Method、mlterm では mlterm 終了):
Anthy: TRACE: anthy_release_context();


備考:
継続した入力でない場合は一旦切断する(anthy_release_context)、と言うのは駄目。
初期化処理や、学習結果の再読み込み(たぶん)が入ってしまうので、遅くなる。
拙作パッチで学習量を増やしていた場合は尚更遅い。

備考:
継続ではない入力だった場合、空文字列で anthy_set_string(), anthy_commit_segment() で通知すれば、
API を追加する事無く、原作版 Anthy でも通知対応版 Anthy でも、どちらでも動作する様に出来るかも。
但し、原作版 Anthy にて、空文字列が入力された時に誤動作を起こさない事を確認する必要が有る。

Wed,22 Apr,2009

↑ anthy.scm を適当にいじっていたら、 無変換で確定した場合でも通知する様に出来た。
IM を off にした場合に、 リセット通知用の空文字列を通知する様に試行錯誤してみたが、 こちらは通知出来る様にできなかった。 トリガをかけるべき場所が見つからない。
原作版 Anthy の場合、無変換で確定した場合に通知すると、 入力した内容を何でもかんでも学習する様になった。 有害とは言い切れないが、無害とも言い切れず。
あと、先日書いた通りの理由で、 学習データの利用効率も低めだし 手間がかかる割に効果が高くないと思うので、 あんまり乗り気にならない。 さて、どうしたものか。

Mon,27 Apr,2009 追記:
↑ 何だかんだ言っておきながら、結局実装。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
Mon,27 Apr,2009に続く。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 の patch13Bptn21 更新。
フロントエンドの↑改造を行った時に、 無変換で確定の時は学習しない、 平仮名/カタカナ変換の時は ENABLE_AUTOLEARN で学習の有無を選択可能。

「;」(JIS X 0201) を区切り文字にした時の 「;」(JIS X 0208) の入力方法。
uim-anthy ならば、↓ を ${HOME}/.uim に追加すれば、 「;」(ASCII) とタイプした時は区切り文字となり、 「;;」(ASCII*2) とタイプすれば「;」(JIS X 0208) の入力となる。 「;;」(ASCII*2) とタイプしてカタカナ変換すると「;」(ASCII) が出る。 あるいは、 「;」(JIS X 0208) を入力して変換すると候補の中に「;」(ASCII) がある。
「;a」とかを追加しておかないと、 「;あ」が入力できなくなった。謎。

;;
(require "japanese.scm")
(define ja-rk-rule
  (append '(
;; for anthy patch13Bptn21 [
        (((";" ";"). ())(";" ";" ";"))
        (((";").     ())(";" ";" ";"))
        (((";" "a"). ())((";" ";" ";") ("あ" "ア" "ア")))
        (((";" "i"). ())((";" ";" ";") ("い" "イ" "イ")))
        (((";" "u"). ())((";" ";" ";") ("う" "ウ" "ウ")))
        (((";" "e"). ())((";" ";" ";") ("え" "エ" "エ")))
        (((";" "o"). ())((";" ";" ";") ("お" "オ" "オ")))
        (((";" "A"). ())((";" ";" ";") ("ア" "あ" "ア")))
        (((";" "I"). ())((";" ";" ";") ("イ" "い" "イ")))
        (((";" "U"). ())((";" ";" ";") ("ウ" "う" "ウ")))
        (((";" "E"). ())((";" ";" ";") ("エ" "え" "エ")))
        (((";" "O"). ())((";" ";" ";") ("オ" "お" "オ")))
;;]

        )
          ja-rk-rule))
;;

↑ uim 以外は使っていないので、 各自宜しくやって下さい。

文節区切りの入力。
句読点を多めに入れる感覚で「;」を打っていけば、 多分、読みを入力するのと同時にタイプしていても、 それほど気にならない様な気がする。
vagus氏の構想に書かれていた通り、 全部の区切りを入力するのは人間の負担が大き過ぎた。 指定が無い部分を自動補間させないと、やってられなかった。
「va vi vu ve vo」は「う゛ぁ う゛ぃ う゛ う゛ぇ う゛ぉ」と 平仮名で入力されると思う。 それから、 例えば「じゃ」が文節区切りになる場合は、 「ジゃ」と入力する必要が有る (拙作 uim.kana.conf では、 「;zya」と入力すると「ジゃ」、 「Zya」と入力すると「ジゃ」、 「ZYA」と入力すると「ジャ」、 となる様に設定してある)。
あと「;」は、微妙に場所が悪い。 shiftキーよりは楽だけれども、やっぱり押しやすくはない。 vagus氏の構想通り、スペースバー/スペースキーが押しやすそうだが、 スペースを文節区切り指定と変換開始で共用するには フロントエンドのソフトウェアの改造が必要なので、 誰かが改造版を作ってくれるまでは使えない。 キーバインドをいじって 「無変換」キーか「変換」キーを割り当てるならば、 改造は不要だが、これもやっぱり微妙に押しにくい。 そんな貴方に、 親指シフトキーボード(の、親指変換キー)?。

↑ Fri,24 Apr,2009 追記:
丘の道を登り - 2009年04月23日 - お返事色々」 での御指摘通り、 「va vi vu ve vo」とタイプした時に、どんな風に入力されるかは、 フロントエンドに使用するソフトウェアや環境設定に依って、 全然違います。
「va vi vu ve vo」が「う゛ぁ う゛ぃ う゛ う゛ぇ う゛ぉ」になるのは、 uim-anthy の標準設定で何も変更しなかった場合です。
ですので、各利用者側で、よしなに宜しくやって下さい。

「;」のコード。
区点が 01-08 で JIS が 2128。 ……どうでもいいな。

蛇足:
「前候補/変換」キーと「カタカナ/ひらがな」キーは使った事が無い。 指が届かないのだ。
「~」を入力する際は、「Shift + 0」(OADG109) を使っている。 「Shift + ^」(OADG109A) は指が届かないのだ。

Thu,23 Apr,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」 の patch13Bptn21 更新。

vagus氏 - 丘の道を登り - 2009年04月23日 - むう」 の件を修正、 文節区切り文字だけ入力した場合はそのままスルーします。
uim-anthy が落ちるのは、uim の方が落ちている気がする。 anthy-agent で試した時は、 anthy のエンジン側ではなく、anthy-agent側で落ちた。

uim-anthy にて入力する際に、 短い文節を入力しては確定し、短く入力しては確定し、 の方法で入力する場合に、 変換結果を良くする方法の話、 「Mon,20 Apr,2009 〜 Tue,21 Apr,2009」 の訂正。
コーパスを有効にしている場合、 直前の文節内容に依って、 現在の文節の各候補のスコアリングに調整が入っているのを忘れていた。
ソースで言うと、 src-ordering/infosort.c で mw->struct_score に設定し、 src-ordering/candsort.c でそれを参照している辺り。
「直前の文節の品詞と、現在の文節の品詞の、組み合わせ?」、 「現在の文節の付属語のハッシュ値」、 「現在の文節の付属語の品詞?」、 「現在の文節の自立語のシステム辞書上の頻度値が、大きい方の区分か小さい方の区分か(2択)」、 「現在の文節の付属語が、付属語グラフで weak 指定が有るか無いか(2択)」、 あと現在の文節に関してこまごまとしたのが幾つか、 のパラメータにて分類し、 同じ分類となる物がコーパスに有るかどうかを検索し、 該当があれば 「現在の文節の自立語のシステム辞書上の頻度値」に補正が行われる (コーパス情報に該当が有る場合、頻度値が最大10倍に補正される)。
なので、直前の文節の内容が判る場合、 複合語や OCHAIRE学習に該当が無い場合でも、 コーパスに該当情報があれば現在の候補一覧に影響が有る。
完全一致した時のみ利用される複合語や OCHAIRE学習よりは、 分類別での仕分けのコーパスの方が利用頻度(該当率)が高くなるとは思う。
毎度お馴染みの?、 コーパスが各利用者にみあった適切な文例集になっているか否かとか、 コーパスの分量が足りているのか否かなどは、 単刀直入に言うと、知らん。

↑ 直前の内容が無変換での確定の場合だと、 品詞が判らないからコーパスは利用できない。
逆に、複合語や OCHAIRE学習は、 読みと変換結果(読みと同じ)が判明しているので利用できる。

Fri,24 Apr,2009

Anthy で文節区切り文字。

を追記。 「patch12/patch13/patch13B パターン21:」。

Mon,27 Apr,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn22 追加。
直前に入力もしくは変換された内容を、 変換のスコアリングの参考情報として保持する機能を追加。
入力/変換する際に、 短い文節を入力しては確定し、短く入力しては確定し、 の方法で入力する場合に、 変換結果が良くなるかもしれないし、 変わらないかもしれないし、 悪くなるかもしれない。

この機能、構想自体は、 パッチ製作を始めたごく初期から有ったものだけれども。 実装するか否か迷い迷ってようやく実装。
効果の程は、今の所、体感できる程の明確な違いは見つからず。 むしろ、 学習させすぎで遅くなったり誤適用したりが目立ち始めているし。

↑ 動作確認中に、 想定していた処理が行われない場合が有るのを見つけた。
追究してみたら。 LATTICE_AUTOEXPAND_DEPS の実装を、 Anthy の構造に合わせて手抜きしていた部分がもろに出ているだけだった。 そう言えばこの件は、 以前から何度もひっかかっては棚上げしている部分だった。
いい加減、再実装してみるか……。
と言う訳で、patch13Bptn23 を予告。

Tue,28 Apr,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn22 修正。
patch13Bptn23 の内容が混ざってしまっていたのと、 ドキュメントの改訂を忘れていた。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23 追加。
LATTICE_AUTOEXPAND_DEPS を再実装し、想定通り機能する様にした。
これで問題無いかどうか、実地テスト中。

uim-anthy。
なんとなく anthy.scm を適当に眺めたら、 IM を on にした時の処理部分がみつかった。 数分眺めていただけで見つかるなんて、 1年以上前と半年前に各々小1時間いじって失敗したのは何だったのだろう……。
patch12/patch13/patch13B パターン22:」、 anthy.scm と anthy-utf8.scm を、 IM を on にした時には継続入力内容をリセットする物に更新。
これで、 非 GUI版のエディタ使いならば、問題はほぼ全て解決される筈。 CUI版の vim使いで vim連動モードにしている人とか……。 もっとも、GNOME とか KDE とか使っている人だと、 何も解決されていないのだけれど。
そして私は vim連動モードで CUI版の vimを使っている人なので、 これ以上、 uim-anthy用 anthy.scm の追究をする気は無かったりすると言う……。

追記:明日に続く。

中国のソフトウェア開示の件。
技術漏洩とか工業著作権侵害とか特許侵害とか開発へのフリーライドとか、 などは、その通り、そうなのだけれども。
機密情報の漏洩、と言う点だけは、 そもそもソフトウェアが漏洩しただけで機密が破られる様な機密システムは、 (アルゴリズムやソフトウェアそれ自体が機密の場合はともかくも) 機密になっていないと思うのだが (機密の突破にかかるコストと、防衛にかかるコストと、 守るべき機密の評価額の兼ね合いから、故意にそう言う 「機密になっていない、機密ごっご」を選ぶ事は有るけれども)。
具体例としては、OpenSSL とか GnuPG だと、 アルゴリズムもソフトウェアも、全て公開されているけれども、 それらのソフトウェアで扱うデータの機密は 高度に(現代の技術では、解読には数十年〜数万年かかる) 保持されている(適切に利用した場合に限る)わけだし。
逆に、有名な所で SONY の Felica系 (Suica, Edy, PASMO, ICOCA, TOICA, KITAKA, ...) の場合、 ソフトウェアが流出すると、 どうもまずいらしい?(機密が保持できない?)し。 それは、IC カードを分解して解析すれば、 偽造カードを作成できる事を意味する筈で……。 あとは単純に、 偽造コストと、それにより搾取できる評価額との戦いになるだけで…… (2万円の電子マネーを偽造するのに5万円かかる様だと、誰もやらない。 1000万円の銀行口座を強奪できるなら、 10万円かけて偽造する犯罪グループが現れるかもしれない。 もっとも、現状は、 振り込め詐欺の方が犯罪のコストパフォーマンスが良いわけで)。

エコ家電。
省エネ家電に交換する事で節約できる「色々」は確かに存在するが、 同時に、 今までの家電をリサイクル/廃棄したり省エネ家電を製造したりするのに 必要な「色々」も有るわけで。
例え省エネ家電にした後はずっと買い換えずに最後まで使い続けたとしても、 省エネ家電に交換する事で節約できる総量よりも、 省エネ家電に交換する為に必要な総量の方が、 実は大きかったりする事があるわけで。

Wed,29 Apr,2009

uim-anthy。
ふと anthy.scm を眺めたら、 カーソル移動やバックスペースを行った時の処理部分も見つかった。 数十秒眺めていただけで見つかるなんて、 1年以上前と半年前に各々小1時間いじって失敗したのは何だったのだろう……。 まぁ、そう言う事ってわりとあるけれど。
patch12/patch13/patch13B パターン22:」、 uim-anthy用設定ファイルのサンプルの、たぶん完成版。

↑ 問題は、無変換やカタカナ/ひらがな変換で確定した場合でも、 漢字変換を行なったのと同等の遅延が入ってしまう事。
処理構造上、一旦、漢字変換を行なって、 その中から無変換/カタカナ変換/ひらがな変換と 等価の変換結果となる候補を検索して、 その候補を選択して確定処理を行っているから、 当然、遅延が入ってしまうのだけれど。
はっきり体感できる程の遅延が増えている。 ううむ。

↑ 結局、専用 API 追加で遅延を無くしてみた。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn22, patch13Bptn23 更新。
patch12/patch13/patch13B パターン22:」、 uim-anthy用設定ファイルのサンプルを更新。

↑ 副作用として、内海 氏の強い要望が有ったらしい?、 カタカナ/ひらがな変換した結果を自動学習する機能が、 無効になる。
有効にしたければ、 anthy.scm と anthy-utf8.scm の、 anthy-commit-transposing-text と anthy-commit-unconverted-transposing-text と anthy-reset-commit-transposing-text と anthy-utf8-commit-transposing-text と anthy-utf8-commit-unconverted-transposing-text と anthy-utf8-reset-commit-transposing-text に、 (define (expand-segment) 以下略) を追加して (anthy-lib-commit-segment ac-id -1 ほげほげ) を (expand-segment) (anthy-lib-commit-segment ac-id 0 ほげほげ) にする。 その代わり、遅延が入る。
そんな事するのが面倒ならば、 普通に漢字変換して、その中から平仮名/カタカナの候補を選べば良し。

↑*2 余計な学習や間違った学習が行われなくなったので、 昨日よりは良い感じ。

中古PC。
デスクトップ型 Athlon64 3500MHz クラスが¥17,000弱らしい。 3500MHz は 3500+ の間違いなのではと言うのは置いておいて、 このクラスだと、 5年前に新品5〜8万円くらいしたと思うのだけれど。

一般個人向けの単一プロセサ単一コアの演算能力を考えると、 3〜5年前に天井にたどり着いて、そこから変わっていないのね。 それ以降はコア数やプロセサ数を増やす方向のみで。
でも、 マルチタスクで動作するソフトウェアを適切に書く事が出来て、 しかも処理性能をきちんと出す様に出来る人って、 どのくらいいるのだろう。 そう考えると、 能力を出し切る事が出来ない無駄なプロセサが増えていっているだけの気が。
そう考えると、 ……、 例えば、 ユーザアプリケーションで使う重負荷用コア、 OS 処理の様な軽負荷用コア、 GUI 処理の様な特化型コア、 と言う様な、 非対称型マルチプロセシングにすると、 利用効率が良いのでは、 ……、 とか言う話を何処かで聞いた様な気がする。

フロッピーキューブ、定価¥1,050-。
以前、何処かの web で見かけた気がする。 アイディアの盗作とかじゃないよね?。
と思ったら、 どうもその web ページを書いた発案者自身との提携で商品化したらしい。

工画堂の PD1。
店頭では売っていない。全く無い。斜陽?

Thu,30 Apr,2009

現実逃避で意味の無い落書き。
「森田将棋」と聞いて「森田のバトルフィールド」を連想してしまった。 「タイニーゼビウス」と聞いて「アルフォス」を連想してしまった。 ……両方、森田……。
xkobo は 50面が……、 あれは、 弾を避け続けられる腕とそれを続けられる精神力が有るか、 相当運の良いマップに当たらないと、クリアできないし。
2次元タイプのシューターは、 3次元タイプ(エースコンバットみたいなの)は得意なのだろうか。 2次元タイプのシューターでも、 縦スクロール専門の人と、横スクロール専門の人と、いるし。

vagus氏 - 丘の道を登り - 2009年04月29日 - depgraph: 「文末」属性」の、 付属語グラフに文末属性を追加するアイディア。 コメントに書こう(書くならコメントに書くべき)と思ったけれども、 長いのと書き終わらないのでヤメ。
Tue,05 May,2009 追記:
丘の道を登り - 2009年04月30日 - depgraph: 「文末」属性 - 【追記】5/2
付属語グラフに文末属性を追加。

→ patch13Bptn23 にて導入。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ

「Sz@」、「Sz.@」、「Sz:@」にて、文末属性が付加される。
ある文節に文末属性が付いており、 その文節の次の文字が平仮名/カタカナの場合、
・学習にて、そこで文節を区切る様に指定されている
。 ・変換時に、手動でそこで文節を区切る様に指定した。
の場合を除き、そこで文節を区切らなくなります。

例)
「|見んな|」(|みんな|)に文末属性が付いている場合。
「みんなといった」を変換する時に、 「|みんな|といった|」の区切り方だと、 文末属性が付いている文節「|見んな|」の次の文字が 「と」であり平仮名なので、 「|見んな|」と言う文節は使われなくなります。


試しに、 「文末属性の文節の直後に平仮名/カタカナが来たら、 1/100 に確率減少(ビタビ区切り)/減点(n区切り) /減点(文節の候補の並び順)」で、 実装してみたところ。
「|夢か|萎えてくれよ|」(|ゆめか|なえてくれよ|)。
なかなか思い通りにはいかない様でして……。
あるいは、確率減少/得点減少ではなくて、 完全使用禁止にした方が良いだろうか (その場合でも「|夢か|萎えてくれよ|」の場合は変わらないと思われる)。
なお、 文末属性の文節の次の文節が、単漢字の文節か否か、で 判定するのは無理です。 「次の文節」の後ろ側の文節区切りの位置によって、 単漢字になったり名詞/動詞/(以下略)になったり変化するので、 処理できません。
「ぁぃぅぇぉゃゅょ」辺りのどれかが、 平仮名ではない、と判定されている気がしますが、 もしそうなら、原作版 Anthy の仕様です。
「|見んな|と言った|」(|みんな|といった|)は不適切な区切りで、 「|見んなと|言った|」(|みんなと|いった|)が適切な区切りだろうか。 「見んな」(みんな)に文末属性を付けると、そうなってしまうけれども。
あと、文末属性に対応すると、
付属語グラフを文末属性対応に書き換える必要が有る、
原作版そのままの Anthy では使用できなくなる (要、文末属性対応パッチ)、
コーパスデータベースの更新 update_params が必須になる (既に alt-cannadic で、そうなってはいますが)、
問題と言うか手間と言うかがあります。

「anthy-9100h + patch13Bptn23.2009429 + alt-depgraph-090408 に、さらに追加するパッチ anthy-9100h.patch13Bptn23.2009429.alt-depgraph-090408.EndOfSentencePatch.2009430.bz2」。 付属語グラフの、「Sz@」、「Sz.@」、「Sz:@」にて、文末属性になります。
なぜ「Sz」かと言うと、 「Se」、「Sf」、「St」は、もう使われていたから。
EndOfSentencePatch.2009430版には、 変換しようとした内容と同じ内容が、学習データに有る場合、 文末属性が効かなくなるバグと言うか手抜きと言うか、 があるので注意。
Sat,02 May,2009 追記:
patch13Bptn23.2009501版にて、↑とか↓とかも修正して対応。

↑ 学習データにヒットすると文末属性が効かない件から 連想して気付いた。 原作版 Anthy でも拙作パッチ版でも、 学習データにヒットすると、コーパス処理が出鱈目になっている。
「|効かない|件から|」が学習に有った場合に 「|文末属性が|効かない|件から|連想して|」の変換をしようとすると、 「|文末属性が|効かない|」の部分と「|件から|連想して|」の部分で、 コーパスの検索に使う seg_class と dep_class と dep_hash などが 間違った値になっている。
結果、 「|文末属性が|効かない|」の部分と「|件から|連想して|」の部分で、 コーパス由来の確率調整が出鱈目になったり、 例えば「|件から|」が文末属性(現実の運用ではそんな事は無いけれど) だったりしても無視される。
「|効かない|件から|」の部分も間違った値にはなるが、 コーパスよりも学習が優先されるので、影響は無い。

anthy-9100h + patch13Bptn23.2009429 + alt-depgraph-090408。
「来んな」(くんな)が出ない。 原作版 Anthy-9100h + 原作版 anthy 同梱版 alt-cannadic + 原作版 anthy 同梱版 depgraph でも出ない。
カ行変格活用動詞 終止形/連体形「来る」(くる)の撥音便らしい。
「くん #kxuru 来ん」で登録すると、 「|来んな|」「|来んなよ|」などは出るけれども、 「|来ん|」「|来んようだ|」なども出てしまう。 カ行変格活用動詞 終止形/連体形の全部が全部、 撥音便になるわけではないらしい。
……、カ行変格活用動詞 終止形/連体形は、 「来る」(くる)と「得る」(うる)しかないらしい。 ……、となると、 語幹を「来」「得」で登録して付属語グラフを……、 Canna が駄目か。

↑ Thu,07 May,2009 追記:
丘の道を登り - 2009年04月30日 - depgraph: 「文末」属性 - 【追記】5/2」、 「丘の道を登り - 2009年05月04日 - 一つの活用形に複数の読みがある場合」、 「丘の道を登り - 2009年05月05日 - 自作 depgraph 更新(5/4) - 出し直し(5/6)」、 「新しい品詞コードを起こさないと対応できない」そうで、 alt-depgraph-090506.tar.bz2 にて対応されていました。
いつもいつも有り難うございます。

Fri,01 May,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009501 にて、文末属性対応。
付属語グラフの、「Sz@」、「Sz.@」、「Sz:@」にて、文末属性になります。
付属語グラフで文末属性を使わなければ、特に変化は無し。
手動指定時/学習で区切ると指定された場合を除き、 文末属性の文節の直後に平仮名/カタカナが来たら、 文末属性の文節が使用禁止になる (文末属性が付いていない文節を探して使用する)。
学習データにヒットした場合でも、一応、文末属性やコーパスが効く筈です。 一応と言うのは、Anthy の構造上、完治できないから。

↑ 文末属性を試してみたところ。
「|こんな|」と「|見んな|」が、 付属語グラフの同じ地点で終点になっている様な気がします。 「|見んな|」を文末属性にした所、 「|こんな|」も文末属性になってしまいました。
うーむ。 見間違いだとか作業ミスとかだと問題が出なくていいのですが。
Thu,07 May,2009 追記:
丘の道を登り - 2009年04月30日 - depgraph: 「文末」属性 - 【追記】5/2」、 「|来んな|」(|こんな|)の平仮名表記なので問題無いらしい。

anthy-9100h + patch13Bptn23.2009429 + alt-depgraph-090408。
「|末日|」(|まつび|)が変。 「まつび #JSSUC*20 末日」を「|末日|」単体で変換すると、 スコアが最低値になっている。 Anthy は、そう言う仕様なのだろうか。
Tue,05 May,2009 追記:
丘の道を登り - 2009年04月30日 - depgraph: 「文末」属性 - 【追記】5/2」、 単に読み方を間違えているだけらしい。 正しくは「まつじつ」だそうです。

Sat,02 May,2009

ビックカメラSuicaカードのポイント制度改悪。
以前、50Hz圏の電子マネー対応のクレジットカードを調べた時の 一覧表Tue,03 Mar,2009を更新。

ならば、 VIEWサンクスポイントの有効期限切れ前に、 最低限、Suicaチャージはできるので、 競合他社(Suica, PASMO, Edy 等。概ね 0.5%)よりは 良いポイント還元率を維持できるらしい。
でもクレジット払いを毎年10万円以上使うならば、 Yahoo JAPAN Suica がポイント還元率 1.0%らしい。
ルミネだけで買い物をする場合、ルミネカードならルミネで5%割引らしい (年会費1,000円なので2万円でトントン)。 でも、ルミネ以外での買物のポイントが 0.5〜0.62%相当になる。 JR東での利用は、1.50〜1.96%で同じらしい。
あるいは。 割り切って Suicaチャージ専用/JR東定期専用とみなし、 電子マネーで毎年3万円以上使う場合は、 1.5%で競合他社と比べて最強は変わらず。
もしくは。 面倒な事を一切切り捨てて、 辺りの、 電子マネーチャージもクレジット使用もポイント還元率 0.5%だけれども、 年会費永年無料でポイント有効期限も無期限のものにするか。

「備忘録」(びぼろく)が出ない……と思ったら、 正しい読みは「びぼうろく」だったのか。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009502 に更新。
ENABLE_ERROR_RECORD を使用した際に、 ENABLE_OCHAIRE2_WITHOUT_INDEP, ENABLE_OCHAIRE2_WITHOUT_INDEP_WITHOUT_DEP, ENABLE_OCHAIRE3_WITHOUT_INDEP, ENABLE_OCHAIRE3_WITHOUT_INDEP_WITHOUT_DEP にて学習された内容に対するエラー判定が間違っており、 エラーではない場合でもエラー判定する事が有ったので修正。

Sun,03 May,2009

中古屋で東方紅魔郷が¥2,100- で売っていた……、 ちょっとまて、新品流通価格は¥1,050- じゃなかったか。
中古屋で東方地霊殿が¥1,680- だった……、 ちょっとまて、新品流通価格は¥1,470- じゃなかったか。
その他の東方シリーズも、¥1,680〜2,100- だった。 新品より高いって……。

GUNDAM SINGLE HISTORY 2 ¥1,350-。

中島 みゆき 「空と君のあいだに」 1994.5.14。
中島 みゆき 「地上の星」 2000.7.19。
谷村 有美 「いちばん大好きだった」 1992.11.21。 ……これ恋愛歌だったのか。知らなかった、気にしていなかった。

どうでもいいけれど。
「プロジェクトX 〜挑戦者たち〜」って、 大失敗したプロジェクトチーム、な回も、かなり混じっているのだよなぁ。 自然や科学や技術に立ち向かって困難がどうのこうの、 と言う回もあるけれど。
その「立ち向かった困難」と言うのは、 経営陣や上司のタコ/無知/無謀/無策っぷりが原因だよね、とか、 その「壁」と言うのは経営陣/上司が反対している事だよね、とか、 言う回もかなり有ったし……。
でもそれを言わない事で、 その辺りの世代の評価を得た様な……。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009503 に更新。
patch13Bptn23.2009502 での修正に、修正漏れと修正間違いがあった。

Mon,04 May,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009504 に更新。
ENABLE_ERROR_RECORD と --enable-debug の調整。
……何かドツボにハマっている気がする。

Tue,05 May,2009

alt-depgraph-090504 が出ていたので、早速試してみる。
「みしよう」でアレな候補が混じっていた。 たぶん D2T35 の副作用。
まぁどうしようもないし、どうするべくもないなぁ。

↑ 関連のゴミネタ。
私が sourceforge.jp からダウンロードすると、 ダウンロード数にカウントされていなかったり、 重複カウントされたり、している気がする。

Anthy の付属語グラフを全探索するプログラム depgraphdump。
Anthy の付属語で、
「これは一体どういう遷移でここにたどり着いたのだろう (「見んな」に文末属性を付けたら、 「こんな」にも文末属性が付いてしまった気がする)」
と疑問に思う候補とか、
「weak を調整した方が良いかも (これは、以前、nosuke氏のサイトの nosuke氏や vagus氏の コメントを読みながらいじっていた頃の話)」
と思う候補とか、 が、たまにある。たまに。
Anthy 本体の付属語遷移の表示は、 目的の遷移を探すのにはどうにも使いにくい (ノードの名称が表示されないので、 元ファイルとの突き合わせが出来ない)。
Nanthy の 謎(nazodane) 氏のサイトにある付属語グラフの探索ソフトは、 ランダム表示なので、目的の遷移を探すのには使えない。 ノードの名称も表示されないし。 ソースも D言語で書かれているので、 利用させて貰い、ちょっと気軽に改変、と言う事はできない。
なので、自前で、 付属語グラフを全ダンプするプログラムを作ってみた……のだが。
内容的にはプログラミング初心者の練習用に最適な課題っぽい気がするなぁ、 と思いつつ、 3時間も有れば骨格部分は出来上がるかな、と思っていたら。
……とんでもなかった。 枠組みだけで累計2時間の、骨格部分だけで累計9時間かかった。 衰えたか?。
まぁ、 STL の map とか multimap とか言うのを、 使い方を調べながら初めて使ってみた、 のは確かなのだけれども。 途中で付属語グラフの書式を間違えていた事に気付いて、 作り直す羽目になるし。
まだ表示部分が未完成なのだけれども、骨格の探索部分は出来上がったので、 探索部分だけで、動かしてみたところ。 全探索させたら、 ちゃんとループの回避を行っているにも関わらず、 探索結果の表示が 500MB 越えても終わらない……。

↑ 取り敢えず4文字以上で探索打ち切り、の条件で探索してみたら、 240万パターン近く出てきた。 想像していたよりも2〜3桁くらい多い。
探索条件をもっと絞れる様にしないと駄目だね、こりゃ。

↑ でも、 付属語の学習を見ると、1300 ぐらいで頭打ちになり始めている感じで、 2000 は行きそうに無いし、 5000 は行かない様な気がする(気がするだけ)。 それを考えると、よく使う付属語って、結構偏っているのね。

Sat,09 May,2009に続く。

Wed,06 May,2009

Anthy 拙作パッチ。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ

nosuke(のすけ)氏 - 日記みたいな何か - 2009年 5月 2日 (土) - Anthy
alt-depgraph-090408 と組み合わせた前方n文節最長一致モードにて、 「さたーん」を「|沙汰|ー|ん|」(|さた|ー|ん|)と変換確定して 学習をした後に、 「|さたー|ん|」と文節を区切って変換候補を出そうとすると クラッシュする。

→ patch13Bptn23 にて、それと気付かずに治していた。

→ 原因
CAND_HISTORY 学習に「ん」があり、 かつ LATTICE_AUTOEXPAND_DEPS が有効になっているので、 「ん」の付属語を削除して、 別の付属語を付けた文節が生成可能かどうか探そうとする。
ここで、付属語グラフより、 「|ん|」が、自立語の文字数0、付属語の文字数1、 となっているので、 「||」(文字数0の文字列)を基準にして探し始めるのだけれども。
変換候補の文字数別一覧を使って、
for (
(無符号整数:探索中の文字数)=(その文節の先頭から文末までのよみがなの長さ);
(無符号整数:自立語の文字数) <= (無符号整数:探索中の文字数);
--(無符号整数:探索中の文字数)
)
とかやっていて、さようなら。

→ 対処
patch13Bptn23 にて、 LATTICE_AUTOEXPAND_DEPS の実装を丸ごと書き直した際に、 変換候補の文字数別一覧を使わない方法にした。

Thu,07 May,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009506 に更新。
AUTHORS.patch の内容が間違っていたので修正。
いかん、ジンクス発動しまくり。

anthy-9100h + patch13Bptn23.2009506 + alt-depgraph-090506。 色々入力してみて気付いた事。
「|××切れに|」(|××ぎれに|)などが、1文節で出たり、3文節「|××|切れ|に|」になったり。
「|時間切れに|」(|じかんぎれに|)、「|時間切れだ|」(|じかんぎれだ|)、「|期限切れに|」(|きげんぎれに|)
「|燃料|切れ|に|」(|ねんりょう|ぎれ|に|)、「|燃料|切れ|だ|」(|ねんりょう|ぎれ|だ|)、「|弾|切れ|に|」(|たま|ぎれ|に|)、「|電池|切れ|に|」(|でんち|ぎれ|に|)、

……、既視感が……。

補助動詞?の「で」が「っ」になる促音便?流行語?口語?、 それとも語尾に「っす」が付く流行語?口語?、 が出ない。
「駄目っす」(だめっす)、「無いっす」(ないっす)、
「出ないっす」(でないっす)、

……、出ない方が順当かも。

Sat,09 May,2009

EIZO P1700 ¥15,750- ……アナログ入力専用らしい。

EIZO L557 ¥12,600-。

Anthy の付属語グラフを全探索するプログラム depgraphdump。
取り敢えず、 探索を開始するノード名、 付属語の先頭部分の文字列、 を指定できる様にしてみた。
前方検索(左→右の方向での探索)は、こんな感じで完成だと思う。
いい加減、手段が目的化してきた……。
depgraphdump.cc(39KiB) 後方探索が未実装」。

↑ 探索範囲7文字、途中表示無、未使用ノードの検出のみ、 の条件で探索してみた所、 「する××形」の部分の探索だけで10分弱かかって、 全部完了するまでに2時間ちょっとかかった。
結果。
「@_サ変連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」
「@_上下一段連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」
が、無い。   と思ったら、コメントアウトしてあった。
それから、
@「たら」終助
@「たら」副助
@「ちゃ」接助(引用)
@「ほど」副助(準体)
@補動「ある」終止形I
が、未使用と出たが、探索範囲を長くすると使うのかもしれない。   でもこれ以上探索範囲を長くするといつまで経っても終わらなくなるので、 後方探索(右→左の方向での探索)を実装しないと、チェックできない。

↑*2 「いいのね」で始まる物だけで検索してみた所。
Loop: する仮定形「すりゃ」|いいのねーってだけならばですからみたいじゃそうじゃしでにらしいかからみたいだのじゃないながらのようじゃとするべからざるままであるまいなんぞとさえもなさそ うじゃとかのないくらいまでなんてものへなんかからとのなどは HnS Cg :0.3 @する仮定形「すりゃ」 "" @_補形「いい」 "" Cs@補形「いい」終止形 "いい" @「の」終助 "の" @「ね」終助 "ね" @(詠嘆音引き)終助 "ー" @_引用(共通) "" @「って」格助(引用) "って" @「だけ」副助 "だけ" @_助動「だ」 "" @助動「だ」仮定形 "なら" @「ば」接助 "ば" @_助動「です」 "" @助動「です」終止形 "です" @「から」接助 "から" @_助動「みたいだ」 "" @助動「みたいだ」終止形 "みたいじゃ" @_助動「そうだ」(伝聞) "" @助動「そうだ」(伝聞)終止形 "そうじゃ" @「し」接助 "し" @「て」接助(濁音便) "で" @_「て/で」接助後(助詞) "" .@「に」格助 "に" @_助動「らしい」 "" @助動「らしい」終止形 "らしい" @「か」副助 "か" @「から」格助 "から" @_助動「みたいだ」 "みたい" @助動「みたいだ」語幹後 "" @「だの」副助 "だの" @「じゃ」格助 "じゃ" @_補形「ない」 "" Cs@補形「ない」終止形 "ない" @「ながら」接助 "ながら" @「の」格助(連体) "の" @_助動「ようだ」 "" @助動「ようだ」終止形 "ようじゃ" @「と」格助(用言後) "と" @_補動「する」 "" Cs@補動「する」終止形SR "する" @_助動「べし」 "" @助動「べし」未然形 "べから" @_助動「ず」 "" @助動「ず」連体形 "ざる" @「まま」接助 "まま" @「で」格助 "で" @_補動「ある」 "" Cs@補動「ある」終止形 "ある" @_助動「まい」 "" @助動「まい」連体形 "まい" @「なんぞ」副助 "なんぞ" @_格助詞接続(共通) "" @「と」格助 "と" @「さえ」副助 "さえ" @「も」副助 "も" .@_補形「ない」 "な" Cg@補形「ない」語幹後 "さ" @_助動「そうだ」(様態) "" @助動「そうだ」(様態)終止形 "そうじゃ" @「とか」副助 "とか" @「の」格助(主格) "の" @補形「ない」連体形 "ない" @「くらい」副助 "くらい" @「まで」副助 "まで" @「なんて」副助 "なんて" Hn@形式名詞「もの」 "もの" @「へ」格助 "へ" @「なんか」副助 "なんか" Hn@「から」格助(準体) "から" @「と」格助(並列) "と" Hn@「の」格助(準体) "の" @「など」副助 "など" @「は」副助 "は" .@_助動「だ」
みたいに長い物が大量に有った。 しかも、この例だと 「いいのねーってだけ」の後に、 「ならばですからみたいじゃそうじゃしでにらしいかからみたいだのじゃないながらのようじゃとするべからざるままであるまいなんぞとさえもなさそうじゃとかのないくらいまでなんてものへなんかからとのなどは」 が無限ループする。


↑ 本来の目的を忘れていた。
Fri,01 May,2009 → 「丘の道を登り - 2009年04月30日 - depgraph: 「文末」属性 - 【追記】5/2」、 「|来んな|」(|こんな|)の平仮名表記なので問題無いらしい。 の件。 今更だけれど、せっかくプログラムが出来上がったので、一応見てみる。
「見んな」になるのは、 「み #KS 見」+「んな」だけで、
End: 上下一段活用動詞語幹|んな H SzC :0.0 @_上下一段語幹後 "" @上下一段未然形 "" @_上下一段未然形(共通) "" @_助動「ぬ」 "" @助動「ぬ」終止形(音便) "ん" @「な」終助 "な" Sz@
になる。
「こんな」は、
「こんな #RT*400 こんな」、
「こんな #T35*300 こんな」、
「こん #T35*200 こん」+「な」、
「こん #ZX*10 こん」は付属語「な」が付かない、
「こ #kxo*450 こ」+「んな」、
「こ #KY*400 こ」は付属語「んな」が付かない、
「こ #G5*300 こ」は付属語「んな」が付かない、
「こ #K5*300 こ」は付属語「んな」が付かない、
「こ #M5*300 こ」は付属語「んな」が付かない、
「こ #R5*300 こ」は付属語「んな」が付かない、
「こ #S5*300 こ」は付属語「んな」が付かない、
「こ #U5*300 こ」は付属語「んな」が付かない、
「こ #T35*201 こ」は付属語「んな」が付かない、
「こ #SX*200 こ」は付属語「んな」が付かない、
の各パターンがある。
「こんな #RT*400 こんな」は、
src-worddic/wtab.h:{"#RT",POS_ME,COS_NONE,SCOS_NONE,CC_NONE,CT_NONE,WF_INDEP /* "連体詞"*/},
……、開始ノードがみつからない。 "連体詞" だと WF_INDEP の部分が違う。
「こんな #T35*300 こんな」は、
src-worddic/wtab.h:{"#T35",POS_NOUN,COS_NONE,SCOS_T35,CC_NONE,CT_NONE,WF_INDEP /* "名詞(語幹,格助接続)"*/},
src-worddic/ptab.h:{"名詞35",POS_NOUN,COS_NONE,SCOS_T35,CC_NONE,CT_NONE,WF_INDEP},
End: 名詞35| H SeC :0.0 @_名詞35のあと "" Se@
になるので違う。
「こん #T35*200 こん」+「な」は、
src-worddic/wtab.h:{"#T35",POS_NOUN,COS_NONE,SCOS_T35,CC_NONE,CT_NONE,WF_INDEP /* "名詞(語幹,格助接続)"*/},
src-worddic/ptab.h:{"名詞35",POS_NOUN,COS_NONE,SCOS_T35,CC_NONE,CT_NONE,WF_INDEP},
End: 名詞35|な HjStC :0.1 @_名詞35のあと "" Hj.@形動ダナ連体形 "な" St@
になるので違う。
「こ #kxo*450 こ」+「んな」が、
src-worddic/wtab.h:{"#kxo",POS_V,COS_NONE,SCOS_NONE,CC_KV,CT_MIZEN,WF_INDEP /* "カ変動詞(こ)"*/},
src-worddic/ptab.h:{"カ変活用動詞未然形",POS_V,COS_NONE,SCOS_NONE,CC_KV,CT_MIZEN,WF_INDEP},
End: カ変活用動詞未然形|んな H SzC :0.0 @カ変未然形 "" @_助動「ぬ」 "" @助動「ぬ」終止形(音便) "ん" @「な」終助 "な" Sz@
になって、「見んな」の末端ノードと一致。

↑ 辞書から品詞を調べてヘッダファイルを検索して先頭ノード名を 調べる部分までは完全手動なので、結構面倒臭い。

そしてまた patch13Bptn23 にバグを見つけた。
ENABLE_ERROR_RECORD の記録メッセージを間違えている所が1ヶ所、 ENABLE_ERROR_RECORD や --enable-debug での判定間違いが1つ。
判定間違いの方は、 そもそも OCHAIRE学習に記録しているデータも間違えていた。
「|だと|思う|」とか「|と|言った|」の様に、 先頭に自立語が無い文節で確定した時に、 「自立語有り」と記録してしまっている。
もっともこれは、 「ほげほげ、だと思う」の様に、 文の中途の句読点の後に自立語が無い文節が来た場合、 Anthy の仕様で 「自立語有り、辞書上の該当単語不明。付属語無し。」 と言うデータしか得る事ができない事の兼ね合いもあるけれど。
仕方が無いので、仕様を変えて、 「自立語無し」の情報が得られる様にした。
……、 原作版の Anthy では、 句読点以外の記号の後に自立語の無い文節を書いた場合のみ、 「自立語無し」の情報が得られるけれども、 その時得られる情報での、 「この文節の開始位置」が間違っている気がする。 でも、修正した場合の影響範囲の予測が付かないので手が出せない。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009509 に更新。

↑ あと、 「nosuke(のすけ)氏 - 日記みたいな何か - 2009年 5月 9日 (土) - Anthy」、 『「すぱーぎあ」が何度確定しても「す + パーギア」に』 の件も多少は一応対応(形容詞が変だ……)。

まず、「スパーギア」が辞書に載っていない。
次に、 原作版の Anthy の設計だと、 平仮名語/カタカナ語の自動学習は、 平仮名/カタカナだけの文節にした場合のみ行われるので、 「|数えようとして|スパーギアの|方を|」の様に 途中までカタカナで最後に平仮名、と言う文節で確定した場合は 自動学習が行われず、 いつまで経っても「スパーギア」を覚えてくれない。
拙作パッチの 2009509版よりも前までも同様。

なので、何度確定しても「スパーギア」が出ない。
2009509版から、 途中までカタカナで最後1文字が平仮名、と言う文節で確定した場合でも、 カタカナ部分だけ抽出して自動学習する様にした。

追記:
変換確定した際に、何処で切ったのかは覚えているのです。 が、例えば、
「かぞえようとしてすぱーぎあのほうを」

「|かぞえようとして|すぱーぎあの|ほうを|」
と区切って
「|数えようとして|スパーギアの|方を|」
と言う変換候補を当てる、と学習しても、次に、
「しゃふとについているすぱーぎあはまったく」
と入力されると、 今回入力された内容は前回学習した内容にカスりもしないので、 何処で区切ったら良いのか、判断できないのです。

ここで、辞書に単語
「シャフト」(しゃふと)
「付」(つ) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
「す」(す) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
「パー」(ぱー)
「ギア」(ぎあ)
「全」(まった) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
が有ると、取り敢えずそれを当てはめて、
「|シャフト|に|付|いている|す|パー|ギア|は|全|く|」
と言う感じになって (厳密には大幅に間違っている。あくまで概念的イメージの話)、 付属語グラフを調べて接続できる付属語を引っ張り出してきて、
「|シャフトに|付いている|す|パー|ギアは|全く|」
と言う変換候補が作られるのです。
のすけ氏曰く「す + パーギア」は、多分これの事だと思うのです。

さて、単語登録がもうちょっと豊富で
「シャフト」(しゃふと)
「付」(つ) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
「す」(す) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
「パー」(ぱー)
「ギア」(ぎあ)
「スパーギア」(すぱーぎあ)
「全」(まった) ← alt-cannadic の内容を確認していないので、微妙に違うかも。
が有ると、取り敢えずそれを当てはめて、
「|シャフト|に|付|いている|す|パー|ギア|は|全|く|」

「|シャフト|に|付|いている|スパーギア|は|全|く|」
の2パターンが作られて (厳密には超絶に間違っている。あくまで概念的イメージの話)、 付属語グラフを調べて接続できる付属語を引っ張り出してきて、
「|シャフトに|付いている|す|パー|ギアは|全く|」

「|シャフトに|付いている|スパーギアは|全く|」
と言う2パターンの変換候補が作られ、 てきとーにどちらが良いのか選んで (厳密にはNovastic間違っている。あくまで概念的イメージの話)、
「|シャフトに|付いている|スパーギアは|全く|」
が提示されるのです。

ビタビの場合、結果論としては、 変換候補の各文節毎にコーパスから生成確率を取得して 総積?総乗?(Π、Product の日本語訳って何だっけ?)が 最も大きくなる候補を選ぶ、筈。
前方n文節最長一致の場合、 左から順番に、 なるたけ少ない文節数でなるたけ長い文章を作れる様に選択していく。 同じ文節数で同じ長さの文章になる場合は、 前の文節の長さが短い方を選ぶ。
前方n文節最長一致で MAXLEN_MODE_PUREMODE false かつ LATTICE_WITH_CAND_SCORE true にした場合、 左から順番に、 なるたけ少ない文節数でなるたけ長い文章を作れる様に選択していく。 同じ文節数で同じ長さの文章になる場合は、 各文節の辞書上の頻度値の前方加重の総和平均値が大きい方を選ぶ。

Tue,12 May,2009

VirtualBox on FreeBSD。
そこそこの速度が出て、かつ、安定して末永く使える様になると、 VMWare が動かなくて困る、事が解消されて嬉しいのだけれども。 さて、どうなることやら。

ソース コードのレビュー ツール の話の続き。 以前の話はいつだったか忘れた。

↑ RATS。

PRIdMAX とか PRId32 とかの系列を使っている部分に対して、
High: fprintf
Check to be sure that the non-constant format string passed as argument 2 to
this function call does not come from an untrusted source that could have added
formatting characters that the code is not prepared to handle.
と言ってきた。 誰か PRId?? 対応パッチを書いていないものかと探してみたが、 見つからなかった。

__attribute__((__format__ (__printf__, , ))) している vfprintf() に上記と同じ警告を出してきた。 誰か __attribute__ 対応パッチを書いていないものかと探してみたが、 見つからなかった。

char foo[NUM] 全部に対して
High: fixed size local buffer
と言ってきた。確かにそうなのだけれども。うーん。

getopt_long() に対して
High: getopt_long
Truncate all input strings to a reasonable length before passing them to this function
と言ってきた。 PRI??? は ISO 標準に入ったけれども非対応なのに、 getopt_long() は POSIX でも ANSI でも ISO でも非標準だと思うのだけれど対応なの?。 単にルールが古くて更新されていないのかな。

strlcpy() に対して
Low: strlcpy
Double check that your buffer is as big as you specify
と言ってきた。 あれ、strlcpy() 対応なの?。 strlcpy() も非標準だと思うのだけれど。

Low: snprintf
Double check that your buffer is as big as you specify.
When using functions that accept a number n of bytes to copy, such as strncpy, be aware that if the dest buffer size = n it may not NULL-terminate the string.
Low: fgets
Double check that your buffer is as big as you specify.
When using functions that accept a number n of bytes to copy, such as strncpy, be aware that if the dest buffer size = n it may not NULL-terminate the string.
Low: strlen
This function does not properly handle non-NULL terminated
strings. This does not result in exploitable code, but can lead to access violations.
これは仰る通り。

Low: fopen
A potential race condition vulnerability exists here. Normally a call to this
function is vulnerable only when a match check precedes it. No check was
detected, however one could still exist that could not be detected.
……、しれっと、どぎつい事言うなぁ。 これを本気で直そうとすると、直すの相当大変だよ……。

悪くはないけれど、 適切に使うにはそれなりの技量が必要そうだから、 新人には勧められないなぁ……。

↑*2 flawfinder。

RATS で出たものは全部出た。 fopen() に対するメッセージが直接的な表現で判りやすかった。 それに加え。

[2] (integer) atoi:
Unless checked, the resulting number can exceed the expected range.
If source untrusted, check both minimum and maximum, even if the input
had no minus sign (large numbers can roll over into negative number;
consider saving to an unsigned value if that is intended).
いかん。これはモロに見落としていた。

[1] (port) snprintf:
On some very old systems, snprintf is incorrectly implemented and
permits buffer overflows; there are also incompatible standard definitions
of it. Check it during installation, or use something else.
それは勘弁して欲しいなぁ。

flawfinder も RATS 同様、 悪くはないけれど、 適切に使うにはそれなりの技量が必要そうだから、 新人には勧められないなぁ……。

C/C++ での文字列処理の問題。
文字が ASCII/JIS X 0201 左 に収まっているかどうか判定する為に、
char* foo = hoge();
if (foo[0] < 0x80)
とかやると駄目。なのだけれども。
文字コードの規格を考えると unsigned char にして foo < 0x80 と記述する方が正しくて、 C/C++ での文字処理と考えると char型で書くのが適切で (unsigned char にすると、文字処理用の標準関数で、 引数不一致でウォーニング/エラーが大量発生してしまう)。
悩ましい。恨めしい。Pascal だと Char型なのだが。
wchar_t型は可搬性皆無 (処理系によって EUC だったり UTF-16 だったり UCS-4 だったり) だし。 EUC な wchar_t型でシングルシフトで 3Bytes になったり、 UTF-16 な wchar_t型でサロゲートペアが出現したら、 破綻する気がする。 long char型なんでのもあったのか。
行き着く先としては、iconv が無難かなぁ。

↑ で、当然の事ながら、この手のミスは、 ソースコードレビューソフトでは検出してくれない。
コンパイラのウォーニングレベルを上げておけば、 大抵は検出してくれるけれど。

anthy-9100h + patch13Bptn23 + alt-depgraph-090506。
「|直すの|大変だよ|」(|なおすの|たいへんだよ|)
が、1発では出ない。

% egrep "^なお " alt-cannadic/gcanna.ctd
なお #F14*400 なお 尚 #R5*301 治 #S5*301 直 #CJ*300 なお 尚 #R5*300 直 #S5*300 なお 治 #CJ*200 猶 #F14*200 猶 #R5*200 なお #JN*151 なお 直 #JN*150 尚 奈緒 #JN*100 奈央 奈穂 #JN*50 奈保
% grep -w "S5" src-worddic/wtab.h
{"#S5",POS_V,COS_NONE,SCOS_NONE,CC_S5,CT_HEAD,WF_INDEP    /* "サ行五段"*/},
% cat src-worddic/ptab.h | grep -w POS_V | grep -w CC_S5 | grep -w CT_HEAD
{"サ行5段活用動詞語幹",POS_V,COS_NONE,SCOS_NONE,CC_S5,CT_HEAD,WF_INDEP},
% depgraphdump -n "サ行5段活用動詞語幹" -w "すの" -e
End: サ行5段活用動詞語幹|すの H SzC  :0.0  @_サ行5段語幹後 "" @サ行5段終止形 "す" @_5段終止形(共通) "" @「の」終助 "の" Sz@

Sz@ が付いている。
「|直すのは|大変だよ|」(|なおすのは|たいへんだよ|)
の、 助詞の省略? 無助詞? である上に、 句読点も省略している変則?なのだけれども。
「なおすの」「たいへんだよ」の間に文節区切りをタイプするか、 文節の長さを一旦変更してから 「なおすの」「たいへんだよ」の区切りに変更すれば、 変換できる。
でも、変換できない、と、引っかかる人が出そうな気がした。
ううむ。 文末属性を外すべきか、 文節区切りのタイプを必須とするべきか、 あるいは文末属性の処理内容を変更するか、 迷う。
文末属性の処理内容を変更する場合、 文節区切りの候補としては使用せず(この部分は、これまで通り)、 変換候補の一覧では筆頭候補にする事だけを禁止するか もしくは候補の評価を大きく下げるか(この部分を、これまでと変える)、 辺りかなぁ。

↑ Sat,16 May,2009 追記:
丘の道を登り - 2009年05月16日 - 「|直すの|大変だよ|」」、 漏れが有ったそうです。

End: サ行5段活用動詞語幹|すの HnSeC  :0.0  @_サ行5段語幹後 "" @サ行5段連体形 "す" @_5段連体形(共通) "" Hn@「の」格助(準体) "の" Se@

このノード。

「大量発生して」(たいりょうはっせいして)が、 「|大量発生|して|」(|たいりょうはっせい|して|)か、 「|大量|発生して|」(|たいりょう|はっせいして|)になる。
……、また mkworddic/compound.t の #T35 だった。
mkworddic/compound.t は、 depgraph が手抜きバージョンである事を前提にして、 #T35 を使いまくっている気がする。
どうしたものか。 いっそ sed -e 's/#T35/#T30/g' とかしてしまった方が良いのだろうか。

↑ Tue,26 May,2009 追記:
alt-depgraph-090525 同梱版の alt-cannadic 付属?の compound.t にて、 修正されていました。有り難うございます。
でも、この調子だときりがない(vagus氏の負担が大きすぎる)ですね。 どうしたものか。

Sat,16 May,2009

Anthy の付属語グラフを全探索するプログラム depgraphdump。
後方検索(右→左の方向での探索)も、こんな感じで完成だと思う。
depgraphdump.cc(55KiB)」。
現状だと、 前方検索(左→右方向)時に 品詞から手動で先頭ノード名を探すのが面倒なのと、 後方検索(右→左方向)時に 先頭ノード名から手動で品詞を探すのが面倒なので、 気が向いたらおいおいその辺も実装するかもしれない。 しないかもしれない。
ただ、面倒なのと、そこまでやると 「それ何て単文節変換エンジン?」な状態になりかねず……。

Anthy の付属語グラフに於いて、 各品詞の根ノードがどうやって決まるかの話。


前提知識: wtype_t は pos, cos, scos, cc, ct, wf の集合。

付属語を付加しようとしている単語に関して、 ptab.h の全てのノードに対して src-worddic/wtype.c の anthy_wtype_include( 「ptab.h のノードの wtype_t」, 「単語の wtype_t」 ) にて 一致するか否かの判定を行い、 「一致」と判定されたノード全てが使われる。
複数のノードが一致と判定された場合、 一致と判定された全てのノードが使用される。

# 単語の wtype_t は、単語の品詞から wtab.h を使って決める。

判定では、


wtab.h の wtype_t の wf は、 に使用される。


あと、 付属語グラフのノード名は、 anthy.dic に変換する際に通し番号に変換される (ノードの名称は記録されていない)。 なので、 anthy-agent の ANTHY_SPLITTER_PRINT にてノード名を表示する事はできない。

C/C++ の構造体のビットフィールドで、よくある誤解。
anthy_wtype_include を web で検索してみたら。 「Rubyのある風景 - AHG_BitOperation」 と言う記事を見つけたのだけれども。
残念ながら、 C/C++ の構造体のビットフィールドがどの様にパッキングされるのかは コンパイラ/アキーテクチャ依存なので、 それはやってはいけないのですね。

引用> ppp|aaaaa|bbbb|ccccccc|ddddd|eeee|ffff
引用> pad|pos |cos |scos |cc |ct |wf
引用> 詰めかたは環境依存かもしれませんが、とりあえず僕の手元の環境ではこうなりました。 padはpadding(詰物)で、全体を32bitにするための物です。

まぁ、引用元の著者氏も、 環境によって変わってしまう事を承知してやっている様ですが。
# もっとも、
# 必須要件:
# ××と言うアーキテクチャの計算機の××と言うOSで ××と言うコンパイラの××バージョンを ××と言うオプションで使用する事。
# と書いてしまえば、 適切に動作しようが暴走しようが「仕様」になるので、 問題は無かったりしますが。

例えば、
 |ffff|eeee|ddddd|ccccccc|bbbb|aaaaa|ppp|
 |wf  |ct  |cc   |scos   |cos |pos  |pad|
こう言う詰め方をされるかもしれないし。
 |0が28bit|ffff|eeee|ddddd|ccccccc|0が4bit|bbbb|aaaaa|ppp|
 |        |wf  |ct  |cc   |scos   |       |cos |pos  |pad|
あるいはこうかもしれないし。
 |0が59bit|ppp|0が57bit|aaaaa|0が58bit|bbbb|0が55bit|ccccccc|0が57bit|ddddd|0が58bit|eeee|0が58bit|ffff|
 |        |pad|        |pos  |        |cos |        |scos   |        |cc   |        |ct  |        |wf  |
こうなるかもしれない。
 |0が58bit|ffff|0が58bit|eeee|0が57bit|ddddd|0が55bit|ccccccc|0が58bit|bbbb|0が57bit|aaaaa|0が59bit|ppp|
 |        |wf  |        |ct  |        |cc   |        |scos   |        |cos |        |pos  |        |pad|
こうかもしれない。

Anthy の付属語グラフの文末属性をチェックする方法。 「丘の道を登り - 2009年05月16日 - 「|直すの|大変だよ|」」、 に関して。
手持ちの学習結果の OCHAIRE を使えば、 チェックできるかなぁ。
問題は、 以前、CAND_HISTORY 学習から 付属語付加の可否を見てみた時の状況から考えると、 大量に出てくる「付加不能」判定から、 元にした OCHAIRE が間違えていてそうなった物や、 個人用の単語登録を使用している為にそうなった物や、 仕様変更(助詞を別文節に分離)に伴いそうなった物と、 付属語グラフの漏れや間違いでそうなった物を、 どうやって区別したら良いのか。   付加不能判定が 1000件くらい出ても、 そのうち漏れや間違いが原因の物は 10件も無かったりするから……。

↑ 変換する perl スクリプト自体は難しくない。 各種 version/variant 対応にするのは面倒だしどうせ誰も使わないので、 拙作patch22以降専用。
CAND_HISTORY から変換するスクリプトは手抜きで、 手動で last-record1_default から CAND_HISTORY セクションだけ 切り出してやらないといけなかったが、 今度はそこも全自動。
% ./anthy_ochaire2corpus.pl < ~/.anthy/last-record1_default > /tmp/corpus.ochaire.txt
とかやるだけ。

#!/usr/bin/perl --
#
# Anthy: Converter, from OCHAIRE to corpus.txt.
#	Sat,16 May,2009
#	Copyright(C)2009 G-HAL (fenix.ne.jp)
#
use encoding "EUC-JP";
use strict;

{
	my $output_mode = "";

	while () {
		chomp( $_ );
		my $input = $_;
		if ($input =~ /^--- (\w*)$/i) {
			$output_mode = $1;
		} elsif ($output_mode eq "OCHAIRE") {
			if ($input =~ /^\+([^ ]+) ([0-9]+) (.+?) ([-]*[0-9]+) ([-]*[0-9]+) ([-]*[0-9]+) ([-]*[0-9]+) ([-]*[0-9]+) (T[0-9]+ F[0-9]+)$/) {
				my $ochaire_key  = $1;
				my $ochaire_len  = $2;
				my $ochaire_core = $3;
				my $ochaire_ka   = $4;
				my $ochaire_wI   = $5;
				my $ochaire_woI  = $6;
				my $ochaire_woD  = $7;
				my $ochaire_wD   = $8;
				if ((2 == $ochaire_len) and (0 != $ochaire_wI) and (0 != $ochaire_wD)) {
					if ($ochaire_core =~ /^([0-9]+) "([^"]+)" ([0-9]+) "([^"]+)"$/) {
						my $p1_len  = $1;
						my $p1_cand = $2;
						my $p2_len  = $3;
						my $p2_cand = $4;
						print "|". substr($ochaire_key,0,$p1_len) ."|". substr($ochaire_key,$p1_len,$p2_len) ."| |". $p1_cand ."|". $p2_cand ."|\n";
					}
				}
			}
		}
	}

	exit 0;
}

__END__
# [ EOF ]

……20分後……。
結果、駄目だった。 読み仮名指定部分で文節区切り位置を明示している為、 文末属性をキャンセルするモードになっている。 まぁこれは、ソースをいじれば変えられる。
それだ。どれだ。
文末属性を無視する状態と、文末属性を使用する状態の、違いを見れば、 文末属性の影響により変換できなくなった部分が判る。 1000件とか出てこられて探すよりは、多分楽になる筈。
……20分後……。
入力件数が約37000件、変換できなかった物が約1300件、 変換できなかった物のうち文末属性由来の物が18件だった。 これなら人力で確認できる。

つぶれたよ              |つぶれたよ|てんてん|           |潰れたよ|……|
ひつようだよなぁ        |ひつようだよなぁ|てんてん|     |必要だよなぁ|……|
ほうほうだろうなぁ      |ほうほうだろうなぁ|てんてん|   |方法だろうなぁ|……|
ほすんですか            |ほすんですか|てんてん|         |干すんですか|……|

この辺りは仕方が無い。文末属性に引っかかって当然。
「……」の読み仮名を「///」や「。。。」などにすれば解決できる。


まぜるな                        |まぜるな|きけん|               |混ぜるな|危険|
しゅうりょうですか              |しゅうりょうですか|そうですか| |終了ですか|そうですか|
しようですか                    |しようですか|そうですか|       |仕様ですか|そうですか|
ちゅうどくですか                |ちゅうどくですか|そうですか|   |中毒ですか|そうですか|

これも意図的に文末の直後に文を書いている内容なので、引っかかって当然。
文節区切り位置を変更して学習すれば良し。


かなしみよ                      |かなしみよ|こんにちは|                 |悲しみよ|こんにちは|           End: 名詞35|よ H SzC  :0.0 @_名詞35のあと "" @「よ」終助 "よ" Sz@
おくるべきか                    |おくるべきか|おくらない|               |送るべきか|送らない|           End: ラ行5段活用動詞語幹|るべきか H SzC  :0.0 @_ラ行5段語幹後 "" @ラ行5段終止形 "る" @_5段終止形(共通) "" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
おこなうべきか                  |おこなうべきか|いなか|                 |行うべきか|否か|               End: ワ行5段活用動詞語幹|うべきか H SzC  :0.0 @_ワ行5段語幹後 "" @ワ行5段終止形 "う" @_5段終止形(共通) "" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
かうべきか                      |かうべきか|いなか|                     |買うべきか|否か|               同上
かんがえるべきか                |かんがえるべきか|あぐねて|             |考えるべきか|あぐねて|         End: 上下一段活用動詞語幹|るべきか H SzC  :0.0 @_上下一段語幹後 "" @上下一段終止形 "る" @_上下一段終止形(共通) "" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
どうするべきか                  |どうするべきか|まよう|                 |どうするべきか|迷う|           End: 副詞12|するべきか H SzCs :0.0 @_副詞12のあと "" @_補動「する」 "" Cs@補動「する」終止形SR "する" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
                                                                                                        End: 名詞30|するべきか HvSzCs :0.0 @_名詞30のあと "" Hv@_補動「する」 "" Cs@補動「する」終止形SR "する" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
へんかんするべきか              |へんかんするべきか|くぎらずに|         |変換するべきか|区切らずに|     End: 名詞30|するべきか HvSzCs :0.0 @_名詞30のあと "" Hv@_補動「する」 "" Cs@補動「する」終止形SR "する" @_助動「べし」 "" @助動「べし」連体形 "べき" @「か」終助 "か" Sz@
ねっきょうしているからか        |ねっきょうしているからか|ほんとうに|   |熱狂しているからか|本当に|     同上

この辺りは私では判断が付かない。
vagus氏に頼むしか手が無い……。

↑ 意図的に文末の直後に続けて文を書く事が有る事が判った。 と言うより、今更気付いた。
となると、現状の実装のまま、 文末属性の後に文を続けるのを、 文節区切りと候補の提示の両方で完全に禁止するのは、 やっぱりまずそう。
考えられる方策としては、 文節区切りのアルゴリズムに対して、

それから変換候補の提示の順番のアルゴリズムに対して、 の各パターンがあって、どう組み合わせるべきなのか。
文節区切りは 現状のまま「全面禁止。文節区切り位置を手動指定時のみ許可。」で、 変換候補の並び順で、どうするか、 辺りが妥当そうだけれども。

Sun,17 May,2009

Anthy の文末属性の話、昨日の続き。
と、言う訳で、文末属性による除外条件が該当した場合、 文節区切りは全面禁止(手動指定時を除く)、 変換候補の並び順ではスコア半減(手動指定時を除く)、 に変更してみた。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009517 に更新。

↑ 例えば、「まぜるなきけん」を変換すると、 「|混ぜるな|」が文末属性で後ろに「きけん」が続くので、 従来だと「|混ぜるな|」と言う候補が使用禁止になって、 完全に消えてしまう。
もし文節の区切り方が「|まぜるな|きけん|」だけしか存在しない場合 (実際には他にも有るけれど)、 「|まぜるな|」の部分の変換候補に 「|混ぜるな|」が出てこなくなってしまう。
2009517 だと、 文節の区切り方が「|まぜるな|きけん|」だけしか存在しない場合は、 「|まぜるな|」の部分の変換候補に 「|混ぜるな|」がスコアは低いけれども出てくる。
従来版でも 2009517 でも、 文節区切り位置を手動で「|まぜるな|きけん|」と指定した場合や、 学習でそう区切ると判定した場合は、 「|混ぜるな|」が普通のスコアで出てくる。

alt-depgraph-090506。
間違いではないし修正すべきと言う訳でも無いけれど ちょっと気になる付属語。 「Tue,31 Mar,2009」、 「vagus氏 - 丘の道を登り - 2009年04月03日 - 自作 depgraph 更新(4/2)」、 に関連情報。
「××でしようかのう」(「|××で|使用可能|」の意)が1文節になる。
でも、 「××でやろう + □□かのぅ」の意味で 「|××でしようかのう|」と言うのもあり得るので、 付属語グラフは正しいし修正しようが無い。
はっきり言って、打てる手/打っても良い手、が、無い。 どちらも正しい文なので、付属語グラフから削ってはいけないし。
変換時に人力で選ぶしか無い。
文意によって適切な変換結果が変わる様な物を、 文意を汲み取って変換するなんてできるわけが無いのだから。

↑ 「|欲しいものがでなくなったりするだろうし|」。
……、 たしかに格助詞/助動詞/補助形容詞/補助動詞/接続助詞の連続であって、 正しい。
特に意味は無いけれどインパクト大きい……。
よくまあこれだけたくさんの付属語パターンが出る様になったものだなぁ。
原作版 depgraph で変換してみたら、 「|干し芋の|我でなくなったりするだろうし|」。 干し芋……。

↑*2 「修正しようが無い」の部分も、 「|修正しようが|無い|」と「|修正|仕様が|無い|」の両方が存在して、 両方共正しいのだよなぁ……。
これも、変換時に人力で選ぶしか無い。
時に応じて適切な変換結果が変わるのだから。

計算機の温度、CoreDuo 1.6GHz な、リースの Let'snote CF-Y5。
毎年恒例、3月頃から、また冷却ファンがうるさくなりだした。 通風孔に掃除機のノズルを当てて掃除しても変わらず。
デュアルコアのフルスピードにすると、 真冬でも熱暴走やサーマルシャットダウンを起こすので、 シングルコアでしか使っていない。 コアが1個、完全に無駄になっている。
5月に入ってからは、 250MHz動作のアイドル状態にもかかわらず CPU温度が 70℃。 750MHz〜1.0GHz動作くらいだと 80〜85℃、 1.6GHzでフルに動かすと95℃近くになる。
通常の半導体の使用条件を考えると、 ふつう50〜60℃以下、上限60〜70℃、70〜80℃は要注意、80〜90℃は危険、 90℃以上は何かが間違っている領域だと思うのだけれども。
コンデンサも怖い。 85℃品とか使われていると、既に終わっている温度だし。 105℃品でも、平均85℃だと 1日当たり稼働率30%で3年持たない計算に……。 さすがに周辺部品の温度がコア温度並みになるとは思えないが、 10℃下がっているとしても寿命5年……。

フロッピーキューブ。
売っているのを見かけない。 どこで売っているのだろうと調べてみたら。
書店らしい。
しかも ISBN 付いているし。
あれは本だったのか……。
ここで疑問。 フロッピーキューブは図書券で買えるのだろうか。 誰がどう見ても本ではないのだけれども、 流通経路が書籍と同じだったりするみたいだから、 使える様な気もする。 さて?。

電子マネー(携帯電話一体型を除く)の使える書店。
探してみたら、「使えます」と銘打っている店舗は、 移動範囲内にはチェーン店で1系統5軒しかなかった。 しかも5軒中4軒は電車の通過駅。 まだ多くなってはいないのね。
あるいは、「使えます」とは宣伝していないけれども 実は使える店が有るのかもしれない。
……、どうも、チェーン店であるか否かに関わらず、 駅ビル内店舗ではその店舗だけ単発で使える傾向が強いらしい。

Tue,19 May,2009

Anthy + patch13Bptn23.2009517 の問題。
nosuke(のすけ)氏 - 日記みたいな何か - 2009年 5月18日 (月) - でんしゃ」、 『「電子ゃ」が変換候補一覧の最初に来てしまう』。
スコアを下げておけば問題にならないだろうと思ったら、 学習して、下がったスコアが上がってしまい、 問題が再発したオチ。
さて、これはどう対策するべか。
明日に続く。

「|対策するべか|」(たいさくするべか)が出ない。
これは方言らしい。出なくて当然。出る様にしたらきりが無い。
でも、 「|対さくするべか|」(たいさくするべか)とか言うのが出た。 付属語グラフを探しても、見つからなかった。 付属語グラフを無視する AdHoc が実装されているのだろうか?。

牛。dnetc。distributed.net。
他の人の1日の計算量を見てみると、 Athlon64 2GHz クラスをフルパワーで24時間動かした時(2,000くらい)の 5〜10倍(10,000〜20,000くらい)だったりする。 一体どうなっているのだろう。
Athlon64/Core2 の 3GHz クラスを4コアにして フルパワーで動かし続けているとは思えないし。 特定の OS がやたら速いとかやたら遅いとか、 あるのだろうか。

人身事故の為、30〜40分の遅れ。

Wed,20 May,2009

Anthy + patch13Bptn23.2009517 の問題、昨日の続き。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ

スコアを下げたつもりだったのだが、 文節区切りでのスコアは下がっていたが、 変換候補の一覧でのスコアが下がっていなかったオチ orz。
「っ」「ー」「゛」の場合と、 「ぁ」「ぃ」「ぅ」「ぇ」「ぉ」で且つ直前の文字の韻を踏んでいる場合は、 変換候補のスコアは半減、自立語部分一致での学習の適用を許可。
「ゃ」「ゅ」「ょ」「ゎ」の場合と、 「ぁ」「ぃ」「ぅ」「ぇ」「ぉ」で且つ韻を踏んでいない場合は、 変換候補のスコアは最低点、自立語部分一致での学習の適用は禁止 (文節全体で完全一致した場合のみ、学習適用を許可)。
にしてみた。

具体例:
「電子」(でんし)が学習してある場合。
「電子ぃ」(でんしぃ)や「電子っ」(でんしっ)は、 「電子」(でんし)の半分のスコアで、 且つ自立語部分が「電子」(でんし)の学習の結果を受け継ぐ。
「電子ゃ」(でんしゃ)や「電子ゎ」(でんしゎ)などは、 変換候補の順番では最後尾群で、 且つ自立語部分が「電子」(でんし)の学習の結果を受け継がない。

↑ そして。
Anthy の meta_word の仕様で誤解している部分が有り、 語尾に XCT_PART を追加した単語にて、 学習の適用間違いや ENABLE_ERROR_RECORD での誤判定が 起きる可能性が有る事を発見。
meta_word 構造体に格納されている単語の合計長は、 meta_word.len よりも短い場合が有るらしい。 その場合の不足している部分は、入力された内容と同じ、らしい。
meta_word の比較ルーチンを丸ごと書き直し中。

↑*2,*1 拗音処理部分の修正/変更/追加よりも、 meta_word 比較の実装し直しの方が手間取っていたりする。

Anthy の、 ビタビアルゴリズムでのコーパス処理を人力で調整できるのだろうか、 あるいはどの様に処理されているのか、辺りの話。

まず、コーパスで処理される構造としては、「|修正できるだろう|」が、

  文頭
  POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV + "動詞+終端" + "終端" + "できるだろう"
  文末

の構造になっていて、「|修正で|切るだろう|」が

  文頭
  POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV + "名詞+格助詞" + "格助" + "で"
  POS_V,COS_NONE,SCOS_NONE,CC_R5,CT_HEAD,WF_INDEP + "動詞+終端" + "終端" + "るだろう"
  文末

の構造になっている模様。


この構造からビタビでの確率計算は、「|修正できるだろう|」が、

    「(文頭 → 動詞+終端) + (POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV) + hash(できるだろう) + (終端)」
  ×「(動詞+終端 → 文末) + () + hash() + ()」

の値になり、「|修正で|切るだろう|」が

    「(文頭 → 名詞+格助詞) + (POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV) + hash(で) + (格助)」
  ×「(名詞+格助詞 → 動詞+終端) + (POS_V,COS_NONE,SCOS_NONE,CC_R5,CT_HEAD,WF_INDEP) + hash(るだろう) + (終端)」
  ×「(動詞+終端 → 文末) + () + hash() + ()」

の値になる。


コーパスを無効にすると1文節になって、コーパスを有効にすると2文節になるので、
コーパスでの処理の結果、
    「(文頭 → 動詞+終端) + (POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV) + hash(できるだろう) + (終端)」
  ×「(動詞+終端 → 文末) + () + hash() + ()」
よりも、
    「(文頭 → 名詞+格助詞) + (POS_NOUN,COS_NONE,SCOS_T30,CC_NONE,CT_NONE,WF_INDEP|WF_SV) + hash(で) + (格助)」
  ×「(名詞+格助詞 → 動詞+終端) + (POS_V,COS_NONE,SCOS_NONE,CC_R5,CT_HEAD,WF_INDEP) + hash(るだろう) + (終端)」
  ×「(動詞+終端 → 文末) + () + hash() + ()」
の方の値が大きくなっている模様です。


取り敢えず、1文節で「(名詞30)できるだろう」の型の
コーパス(全く同じ内容でも良い筈)を100個ぐらい増やせば、
変わるかもしれない様な気もしなくはないですが。変わらないかもしれない。

コーパスで処理されている段階のデータに対して、穴埋めして文章を作ると考えると、
1文節も2文節も、どちらも適切な文章になるので、
「どうしようもない」と思われます。


備考:
確率計算で用いる付属語の内容は、ハッシュ値に変換して用いられる。
従って、全然違う付属語と一致してしまっている可能性も否定は出来ない。

Fri,22 May,2009

Anthy + patch13Bptn23.2009517 の問題、一昨日の続き。
たぶん、こんな感じで良いと思うのだけれども。
最適化が甘い部分が有ってちょっと気になるけれども、いじるのやめた。 ドツボにハマってエンバグ繰り返す方が怖い。 そもそも、 今回いじらなかった部分で最適化が大甘な部分が山盛りな上に、 (以下検閲削除)。   あと、ディスクが溢れて滅多に使わない物を消していたら、 間違ってコンパイラまで消してしまった罠。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009520 に更新。

gcc-4.4.1-20090519 の ソースパッケージからのインストールに要したリソース。
時間:ちょうど2時間。
作業領域のディスク容量:890MiB。
インストール先ディスク容量:86MiB。
作業領域も足りなくなって、 危うくにっちもさっちもいかなくなる所だった。

途中駅混雑の為7分遅れ。
お客様同士のトラブルの為6分遅れ。
接続路線の接続待ちの為5分遅れ。
途中駅混雑の為7分遅れ。
毎週、木曜金曜は途中駅混雑とかお客様同士のトラブルだとかで 3〜5分遅れは普通に有るけれども、 今日は久しぶりに遅延のコンボだった気がする。

Sat,23 May,2009

何ヶ月か前から、xz が流行らしいので、lzma を試してみた。 なんで xz ではないかと言うと、OpenBSD のパッケージが無いから。

ファイル                             容量     所要時間
                                            圧縮     解凍
anthy-9100.patchs.tar           163850240  x:xx.xx  x:xx.xx
anthy-9100.patchs.tar.lzh        27488577  0:28.66  0:03.05
anthy-9100.patchs.tar.zip        30043040  0:17.01  0:01.84
anthy-9100.patchs.tar.gz         30044630  0:18.04  0:01.76
anthy-9100.patchs.tar.bz2        21992080  1:19.59  0:16.64
anthy-9100.patchs.tar.lzma         645263  4:46.60  0:02.15  ※圧縮時にメモリを 500〜800MB くらい消費した。
モードは全て -9(最高圧縮)。
lzma 以外の圧縮時のメモリ消費量は、多い物でもせいぜい 200〜300MB くらい。

lzma って、不可逆変換では無いよね?。

鉄騎のコントローラのペダル部分だけ ¥2,625-。

ロジテックの 640MO ドライブ、3600rpm で USB、アルミボディで、型番が 636?、¥1,050-。

Let's Fire, Second Fire 各¥250-。

娘フロ ¥980- で5枚、 娘トラ ¥1,180- で1枚、 娘トラ(盤面にキズ)¥1,180- から2割引で1枚、 娘たま は忘れた 2枚?。

Sun,24 May,2009

本屋を10軒弱回ってみたが、 フロッピーキューブを店頭在庫している所は無かった。 まぁ無いだろうね。
それはともかく。
何処の店でもコンピュータ系以外の技術系の書籍の扱いが縮小の一途だった。 残っているコンピュータ系も、 web とか OFFICE とかペイントとかそういう方面ばっかりだし。 まぁ、売れ筋がそんなんなんだろうし、 売れ筋を置かないと経営が成り立たないのだろうけれど。
棚を複数個さいてコンピュータ系以外の技術系を 扱っているのは3軒だったかな。 以前は扱っていたけれども今は扱わなくなった店が3軒くらい。 最初から扱っていなかった店が3軒くらい。 1軒だけ、扱いが増えている店が有って驚いた……、 この店、以前から、 棚卸する度に急増したり急減したり、よくわからん。

本と言えば。 オースン・スコット・カードのエンダーのゲーム、 シリーズ最終巻、シャドウ・オブ・ザ・ジャイアントの 邦訳版はまだですか。 ……。 原作版が出て3年も経つのに邦訳が出ないのだから、絶望的だよなぁ。

EIZO L367 ¥6,300-、三菱TN 25ms で DVI-D 付きだが 1024x768。

メビウスリンク2プレアデスシスターズ ¥500-。 ……今買わないと入手できなくなる、でも買っても積んでおくだけ……。

HP の Athlon Neo なノートPCが店頭展示されていた。 Athlon Neo って、もう販売されていたんだ。
AthlonNeo 1.3GHz で CD/DVDドライブ無で 1.3kg で¥59,800-。 AthlonNeo 1.6GHz で CD/DVDドライブ内蔵だと 1.7kg で¥79,800-。 (両方共 MS-Office セットらしい?)
……、これだったら、上位機なのに同値段クラスの Turion64X2 1.6GHz な Cressida NB ¥59,980- の方が良いかも、 と思ったが、NB は 1.9kg なのか。 軽い 1.3kg クラスだと 下位機種で遅いけれど低発熱な Atom ネットブックになってしまうし。 1.9kg を許容すると Core2Duo 2.xGHz クラスいけるけれども値段が5割増しとか倍とかに。
そう考えると、どれもが互いに絶妙に隙間を突いてきているのか。

↑ HP の web を見たが、載っていない。 どこをどう見間違えたのだろう。

NEC の Lui の店頭展示も有った。
大きさ、重量、処理速度、 どれも最高(処理速度は反則な気もするが……)だが、 いかんせん、数十Mbps〜数百Mbps のネットワークが必須と言う問題が。
その問題さえ解決できるのならば、理想的な機種では有るのだが。 出先や海外ではネットワークの問題は解決できないし、 それだとノート型の意味が無くなるしなぁ。

Let's Fire, GALAXY Chart.1, GALAXY Chart.2 各¥500-。

娘フロ 中古¥2,250- で6枚、娘トラ 中古¥1,950- で6枚。 在庫増殖中……。

日本語入力関連で、 最近雑誌や web でしばしば見かける誤解を招く恐れの有る表現。 Mon,25 May,2009に続く。

『Anthy(の辞書)を EUC-JP にすると 「もりおうがい」の漢字が入力できないが、 Anthy(の辞書)を UTF-8 にすれば入力できる。』 と言う主旨の記事を見かけるが、記事の文面だけを見ると、 EUC-JP が悪いせいで入力できず、UTF-8 は良いから入力できる、 と誤解しかねない書き方を見かける事が有る。
短く事実だけを述べたのか、 擁護しているのか、 あるいは著者自身も誤解しているのか。
誤解しようが無い書き方をしようとすると。
Anthy の EUC-JP の処理は、 JIS X 0208{大雑把に言うと EUC-JP のサブセット(縮小版)}のみ対応で、 JIS X 0212{大雑把に言うと EUC-JP のフルセット。補助漢字対応。}や JIS X 0213{大雑把に言うと EUC-JP のフルセットの別バージョン。第三・第四水準漢字、補助漢字対応。}に 非対応。 Anthy の UTF-8 の処理は、 JIS X 0208 と JIS X 0212(補助漢字)の両方に対応 (適切に UTF-8 対応にすれば、勝手にそうなる)。 「もりおうがい」の漢字は JIS X 0212 漢字なので(あとは省略)。

Unicode で JIS X 0213(第3/第4水準漢字)に対応なのか非対応なのかは、 Unicode のバージョンによって違うが、 Anthy の Unicode 対応がどのバージョンの Unicode なのかは不明。   細かい事を言うと、Anthy は UCS-4 を int型に格納しているので、 そもそも UCS/Unicode への対応ができていないとか (C言語の規格を厳格に解釈した場合)、 Unicode ver.3.0 までの対応で JIS X 0212(補助漢字)は対応だけれども JIS X 0213(第3/第4水準漢字)は一部非対応になるとか (C言語の規格をゆるめに解釈した場合)、 Unicode ver.5.0 まで全て対応しているとか (amd64/i386系の計算機で gcc を使うと、 実際の運用としてはこうなる場合が多い)、 どの言い方でもできるけれど、どれも誤解を招く言い方であって。   JIS X 0213 完全対応になる Unicode のバージョンだと、 結合文字とかサロゲートペア(UTF-16/UCS-2 の場合)だとかへの対応が 必須になるらしい。
EUC-JP だと JIS X 0212 と JIS X 0213 の両方に同時に対応する事は できず(ISO-2022 から、 多規格への対応機能を省略して簡略化したのが EUC-JP だから)、 JIS X 0212 と JIS X 0213 の両方に同時に対応したければ ISO-2022 か UCS/Unicode にするしかない……と思ったが、 JIS X 0213 は、実用上は問題無い程度には JIS X 0212 を内包しているのか。 あとは JIS X 0212 の EUC-JP と JIS X 0213 の EUC-JP で、 文字コードの変換が必要な問題 (JIS X 0212 EUC-JP で書いたファイルは JIS X 0213 EUC-JP に変換しないと 第3/第4水準漢字を使えない。 JIS X 0213 EUC-JP で書いたファイルは、 JIS X 0208/0212 EUC-JP のみ対応のソフトウェアでは扱えない)が。
JIS X 0212/0213 対応/非対応が良い/悪いとかでは無く。 {対応/非対応は単なるソフトウェアの仕様の問題で、 利用者が自分の要求仕様に見合ったソフトウェアを使えばいいだけの話。 (学習量が多かろうが少なかろうが、それも仕様の一部。 仕様が気に入らなければ、 要求仕様に見合う別のソフトウェアに乗り換えるなり、 それがそのソフトの存在意義に関わるならばその旨の要望を出してみるなり、 要求仕様に見合う様に改造するなり、するだけ)}
事実を誤解しない様に、と言う話。

それはともかく。
JIS X 0208 のみ対応で JIS X 0212/0213 非対応な EUC-JP のソフトって わりとあるし。 有名な?所で kterm ……kterm は10年も前から JIS X 0212/0213 対応パッチが公開されていた…… とか vim系とか。 Solaris の 2007年よりも前の版も JIS X 0213 EUC-JP は非対応だし。 GNU/Linux も数年だか5年だか前までは JIS X 0213 EUC-JP 非対応のディストリビューションが多かったし。

日本語関連の誤解に関しては、それ以外にも、色々と。
「いわゆる半角カナ」は 「いわゆる全角文字」と同じ幅で表示しても構わないし、 「いわゆる全角文字」を 「いわゆる半角カナ」と同じ幅で表示しても構わない、 (どちらも規格に適切に従っており、何ら違反は無い。 嫌とか言い出したら、プロポーショナルフォント使うな、と言う話に 飛び火しかねない) (あと、 EUC-JP での 0xA1F1, 0xA1F2, 0xA2CC 辺りのいわゆる全角文字は、 UCS/Unicode では U+00A2, U+00A3, U+00AC のいわゆる半角文字になり、 文字コードを変換しただけなのに、 いわゆる全角文字といわゆる半角文字が入れ替わってしまう)、 件とか。
規格では、 「半角カナ」とか「半角文字」とか「全角文字」とか いう言葉は定義されていない(そんな言葉は存在しない)件とか。

小田和正、my home town、1993.10.27。 以前、鉄ちゃんに「根岸線」と言ったら、通じるまでに暫し時間がかかった。 どうやら、根岸線はローカルの通称名で、正式名ではないらしい?。

alt-depgraph-090506。
「|在庫|している|」(|ざいこ|している|)、 「|在庫|する|」(|ざいこ|する|)、 2文節になるけれども、……、 2文節になって当然の様な気がする。 微妙。迷う。

alt-depgraph-090506。
「|誤解しかねない|」(|ごかいしかねない|)、が、 1文節で出ない。
ざっと調べた感じだと、 「|かねない|」が××詞?(……品詞が何だかわからない)で、 2文節であっても正しい(anthy + alt-depgraph は、そう言う仕様) らしい。
「かねない」で might happen の意味らしい……、 って、英語で解説してどうするよ。
三省堂の辞書に依ると、「兼ねない」とも表記するらしい。 品詞は「連語」って書いてあるけれど、連語ってなんだろう?。
「かね」(他動詞?)「ない」(助動詞)をまとめた語、で連語らしい。

↑ 「かねる」は、 日本人でも誤用を頻発していそうだ。自分も含めて。

Anthy-9100? 系で、 mkworddic/name.t の「とうしょうへい」の漢字のコードが 間違っているのを見つけた。

「とう」の字の文字コードは、 の3パターンがあるが、 mkworddic/name.t では機種依存の 0xFBFD で記述されていて、 使い物にならなくなっている。

iconv にて、 JIS X 0212 EUC-JP の 0xA1BD(JIS の 0x213D EM DASH)が、 JIS X 0213 EUC-JP に変換できない事に気付いた。 文字のマッピングがずれている?。
JIS X 0212 EUC-JP の 0xA1BD → UCS-4 0x00002015 になって、 UCS-4 0x00002015 → JIS X 0213 EUC-JP の変換でマッピング無し、 らしい。
そもそも、 JIS X 0212 EUC-JP の 0xA1BD → UCS-4 0x00002015 の マッピングが間違い(JIS X 0213:2000 の誤植、 あるいは Unicode での文字の由来を無視したマッピング)で、 正しくは UCS-4 0x00002014 なのだが、 流通してしまった後なので、直すに直せない、らしい。
JIS X 0212 EUC-JP の 0xA1BD = JIS X 0213 EUC-JP の 0xA1BD、 で、強引に突っ込んでおけば、取り敢えずはしのげるらしい。

Mon,25 May,2009

人身事故の為、10分以上の遅れ。 しかも接続路線の終電接続待ち無し。

Anthy の辞書を EUC-JP にすると 第3/第4水準漢字とか補助漢字とかが使えないのは Anthy が対応していないからであって、 EUC-JP 自体は第三・第四水準漢字とか補助漢字とかに対応している、 と言う話、 Sun,24 May,2009の続き。
勢いと伊達と酔狂で、 Anthy を JIS X 0213 EUC-JP に対応させてみた。
uim が JIS X 0213 EUC-JP 非対応で蹴られた (JIS X 0212 EUC-JP で表記できない文字が消える)。
終わった……。燃え尽きたよ、真っ黒に。

JIS X 0212 EUC-JP モードにすれば、 uim も対応しているし、補助漢字は使える様になるけれども、

UTF-8 な uim にて、 辞書は JIS X 0213 EUC-JP で、端末エンコーディングは UTF-8、 とか言う事はできる筈。 辞書サイズが UTF-8 な辞書よりも2〜3割小さくなるけれども、 文字コード変換の分 (UTF-8 → ホストエンディアンUCS-4 変換よりも、 EUC-JP → ホストエンディアンUCS-4 変換の方が、 たぶん負荷が高い)だけ処理がちょっと遅くなるかもしれない。 正直、 辞書を JIS X 0213 EUC-JP にして嬉しい事が有るかどうかは微妙、 もしかしたら無いかも。   あと、燃え尽きたので動作は未確認。

単に、uim の anthy.scm にて、 JIS X 0201/0208/0212 EUC-JP しか 通さない設定になっているだけだった。
anthy.scm の最後の方にある register-im の中の "EUC-JP" を "EUC-JISX0213" に書き換えたら、 あっさり JIS X 0201/0208/0213 EUC-JP も通った。
これで、 辞書 → anthy → uim までは 全部 JIS X 0213 EUC-JP で通る様になった。

試しに uim → XIM → アプリケーション の方も JIS X 0213 EUC-JP にしてみたら。
未確定状態での表示が豆腐になった。
それから、 kterm とか mlterm のターミナルでは一応通ったけれども、 入力直後の表示が \U+F4BA とかなってしまう。 ターミナル上で動かしているアプリケーションへの入力は 正しくなっていたし、 画面再描画するとちゃんと表示されるけれども。
GTK方面だと、 「WARNING **: Error converting text from IM to UCS-4: 変換する入力に無効なバイトの並びがあります」 とエラーが表示されて蹴られた。 GTK2 の GTK_IM_MODULE の gtkimcontextxim.c から GLIB の g_conv を呼び出している部分。

未確定が豆腐になったり表示がこけたりエラーが出て蹴られるのは、 どれも、 ToolKit側での LANG=ja_JP.eucJP の場合の XIM の コーディング設定が eucJP (EUC-JP にて JIS X 0212 か JIS X 0213 のどちらなのかを指定しないと、 多くの iconv では JIS X 0212 の EUC-JP になる)になっていて、 そこに JIS X 0213 EUC-JP が入ってきたからおかしくなっていた。   荒技として、iconv で eucJP を選択した場合のコーディングを JIS X 0213 EUC-JP に変更しておけば解決できる事は判るのだけれども、 別の問題が出るし。 私以外に実行する人がいないとか、政治的な問題とか。   泥沼になりそうなので、これ以上突っ込まない方が良さそうだ。


ともかくも。
辞書 → anthy → uim は JIS X 0213 EUC-JP で、 uim → XIM/GTK_IM_MODULE → アプリケーション は JIS X 0213 UTF-8、
もしくは
辞書 → anthy は JIS X 0213 EUC-JP で、 anthy → uim → XIM/GTK_IM_MODULE → アプリケーション は JIS X 0213 UTF-8、
とか言う事が安定的にできる様になったけれども。
やっぱり、 辞書を JIS X 0213 EUC-JP にして嬉しい事が有るかどうかは微妙。   ネットブックみたいなディスク容量が小さいマシンでは、 辞書が小さくなる辺り、もしかしたら嬉しいかもしれない……、 でもたかだか 2〜3MiB くらいなんだよなぁ。

↑ 追補。
Anthy の EUC-JP で JIS X 0212/0213 が使えない問題は、 Anthy 内蔵の文字コード変換エンジンが JIS X 0201/0208 専用 (入力される EUC が2バイト固定である前提で作られている)で、 JIS X 0212/0213 非対応である所から来ている。   それ以外にも、anthy-agent にて EUC のシングルシフトに非対応な問題も有るが、 かな漢字変換エンジン本体には影響しない。
なので、 Anthy内の文字コード変換エンジンを JIS X 0212/0213 対応の物に 交換してやれば、取り敢えずは対応できる。   上記の拙作の JIS X 0213 対応の物は、 文字コード変換エンジンを libiconv に変更する事で実現した。
但し、 Anthy の内部処理用の文字コードの UCS-4 関連の実装が ホストエンディアン UCS-4 になっており、 GNU/Linux glibc版 iconv はホストエンディアン UCS-4 に非対応なので、 GNU/Linux の場合は 単純に iconv に交換するだけでは JIS X 0212/0213 対応にできない。   エンディアン変換すれば GNU/Linux glibc版 iconv でも対応できるけれど。 別途 libiconv版 iconv をインストールすれば解決するし、 需要が無いのにやってもねえ……。

データの処理、として考えると、 UTF-8 とか UCS-4 は、確かに綺麗な規格なんだよね。 データ長が長くなると言う点を除けば。でもマッピングは汚い。   1文字のデータ長が長いせいで、 Pascal文字列で UTF-8 を扱おうとすると、 日本語だと漢字85文字くらいしか扱えなくて、泣けてくる。
言語の表記、として考えると、 UCS/Unicode では「図形」と見なして並べた物だし、 政治的なごちゃごちゃで配置が変わったり重複したり マッピングが一部非公開だったりしているから、 「文字の並び順」が汚いのだよね。 文字コードの範囲を見て処理、とか言う事がやりにくい、もしくはできない。 それを言ったら、 JIS X 0212 や JIS X 0213 の文字の並び順も割と汚い感じだけれど。
UTF-16 とか UCS-2 は、 データの処理としても言語の表記としても、 汚いし大変だし面倒なので却下。

Tue,26 May,2009

alt-depgraph-090525 が出ていた。
mkworddic/extra.t と mkworddic/compound.t に怒涛の修正が入っていた。 これは驚いた。かなり大変だったと思う……。 お疲れさまです。

「(形容詞)なって」(「長くなって」「長くなった」など)、 「(動詞)ある」(「書いてある」など)、 「(動詞)おる」(「行っており」など)、 あたりが、2文節に変更されていた。 ちょっと短いかな、と言う気はするものの、 問題が有ると言う訳でも無く。   有り体に言うと私では判断が付かない。 問題無いから、ま、いいかな、と言う感じ。

Wed,27 May,2009

Anthy 拙作パッチのバグ、 「vagus氏 - 丘の道を登り - 2009年05月27日 - 正変換の候補の中に逆変換の候補が混じることに気づいた」、 の件。

要因解説:
システム辞書の単語の評価値は、 原作版 Anthy では、 辞書のソースに書かれている値を参考に Anthy が適当に勘案した値になっていた。
拙作パッチの patch12/13ptn12 (Sat,22 Nov,2008) から、 辞書のソースに書かれている頻度値を直接用いる様に変更したが、 その際、 辞書のソースに書かれている頻度値が小さい場合に システム辞書の各単語の逆変換フラグが壊れていた。
どうやら、 頻度値の下限は 内部表記の 100(拙作パッチでの換算では、辞書のソース上での 8)で、 これを下回るとシステム辞書のファイルに記録される頻度値が 0 になり、 逆変換フラグ(頻度値の符号がそのまま逆変換フラグになっているらしい)が 喪失するらしい(整数型の 0 には符号が無い)。

対策:
辞書のソースに書かれている頻度値から システム辞書のファイルに記録する頻度値への計算方法を変更して、 小さい頻度値の場合でも逆変換フラグを喪失しない様にした。

副作用:
辞書のソースにおける頻度値の上限が 4095 (たぶん。 int型のデータ長の下限保証値って幾つだっけ? ……具体的数量は定義されていないか。) になった。 なお、非保障(仕様外)だが、 int型が 32bit なシステムでは 268427264 まではトラブルは起きない。
…… int型が 16bit なシステムだと頻度値上限 4095 だけれど、 int型が 16bit だと原作版 anthy 由来部分の そこかしこでトラブルやデータ破壊が起きるから意味無いか。
そう言えば、int型が 14bit なマイコンも有るなぁ。 その場合は 1023 が上限。 マイコンで anthy を動かす奴がいるとは思えんけどな。
備考:
この下限値 100 は、 ソースのあちこちにバラバラにハードコーディングされていた。
ヘッダファイルでの const int か #define での 定義にまとめるべきだが、どの 100 が該当して、 どれが該当しないのかよくわからないのでやめた。

前置きが長い上に脱線したけれども、 「かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 patch13Bptn23.2009527 に更新。

↑ それはともかくも。 全然気付いていませんでした。 御指摘、有り難うございます。
私の場合、 記号類をタイプする寸前に変換して確定し、 記号類は無変換で入力して変換無しで確定するクセがあるので、 発症する状況になった事がありませんでした。

vagus氏 - cannadic改 - alt-depgraph-090525 に同梱の configure.ac
> AC_CONFIG_MACRO_DIR([m4])dnl Added by vagus, Sun,24 May,2009
を追記。 Thanks to vagus.

素の kterm が JIS X 0212/0213 EUC-JP(第3・4水準漢字、補助漢字)非対応な件。
5〜10年以上も前から、 kterm を JIS X 0212/0213 EUC-JP 対応にするパッチは 公開されていたらしい。
新 JIS ドラフトフォント(kterm を JIS X 0213:2000ドラフト版 EUC-JP 対応にするパッチ、おおいわ氏のサイト)」
JISX0213(所謂第3,4水準漢字)用bdfフォントのページ(kterm を JIS X 0213:2004 EUC-JP 対応にするパッチ、imamura氏のサイトから花高氏のサイトへのリンク)」

↑*1 FreeBSD の kterm のパッケージのソースを見て気付いた。
既に花高氏のパッチが適用されている。 フォントが無いだけだったらしい。ORZ

↑ JIS X 0212(補助漢字)と JIS X 0213(3・4水)のフォントを入れたら、 JIS X 0212 EUC-JP も JIS X 0213 も、ちゃんと表示できた。
JIS X 0213 の 14dot BDF フォントは前述のサイトにあった。
JIS X 0212 の 14dot BDF フォントは無いので、 jisksp16 から bdfresize -b 2 -f '130/150' で変換して、 出来上がった 13dot の BDF ファイルのヘッダを書き直して 14dot として認識させると、丁度良い感じに仕上がった。

↑ 「堯 とか 草「此弭 とか 「陝彎平 とか 「蓮彌 などの第3・4水準漢字が、kterm や w3m で普通に表示できますよ。 「、」 とかも、 kterm や w3m では普通に表示できるけれども、 vim が G2面と G3面に対応していない (どちらも2バイト文字の所謂全角幅として処理されるので、 バイナリ1バイトずれたり表示が狂ったり表示できなかったり)ので、 かなりつらい。 vim --cmd 'set enc=utf-8' --cmd 'set tenc=2byte-euc-jisx0213' で起動して、 ファイル編集時に :e ++enc=2byte-euc-jisx0213 とかやれば まともに作業できるのだけれども、思いっきり負けた気分。 vim のソースを見たら、UCS/Unicode系以外では、 1文字は必ず 1byte か 2byte で記述できる前提で コードが書かれているし。
今まで約10年、散々遠回りしたのは何だったのだろうな……。

mlterm や、mlterm 上の uim や xim で、 フォントがおかしい件。 Mon,10 Mar,2008の続き。
フォントが不適切なだけだった。
${HOME}/.mlterm/font にて、 上記で追加した JIS X 0212/0213 フォントを指定すると共に、 UCS/Unicode フォントに JIS X 0201/0208/0212/0213, ISO-8859-1 の ビットマップフォントを埋め込んでやれば、 字が崩れたり、 ターミナルと uim/xim でフォントが違ったり、 とか言うトラブルが解消できた。
uim/xim の内容表示には ISO10646(UCS/Unicode) のフォントだけを使うらしく、 ダミーを突っ込んでいたのがまずかったらしい。

${HOME}/.mlterm/font は、
ISO8859_1 =               -misc-fixed-medium-r-normal-modified-14-130-75-75-c-70-iso8859-1
ISO8859_1_BOLD =          -misc-fixed-bold-r-normal-modified-14-130-75-75-c-70-iso8859-1
JISX0201_ROMAN =          -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
JISX0201_ROMAN_BOLD =     -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
JISX0201_KATA =           -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
JISX0201_KATA_BOLD =      -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
JISX0208_1983 =           -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2004-1
JISX0208_1983_BOLD =      -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2004-1
JISX0212_1990 =           -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0212.1990-0
JISX0212_1990_BOLD =      -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0212.1990-0
JISX0213_2000_1 =         -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2004-1
JISX0213_2000_1_BOLD =    -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2004-1
JISX0213_2000_2 =         -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2000-2
JISX0213_2000_2_BOLD =    -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2000-2
ISO10646_UCS2_1 =         -bitstream-m+2vm+ipag+circle+sazanami-medium-r-normal--0-0-0-0-p-0-iso10646-1
ISO10646_UCS2_1_BIWIDYH = -bitstream-m+2vm+ipag+circle+sazanami-medium-r-normal--0-0-0-0-p-0-iso10646-1
ISO10646_UCS4_1 =         -bitstream-m+2vm+ipag+circle+sazanami-medium-r-normal--0-0-0-0-p-0-iso10646-1
ISO10646_UCS4_1_BIWIDTH = -bitstream-m+2vm+ipag+circle+sazanami-medium-r-normal--0-0-0-0-p-0-iso10646-1
こんな感じ。 それから ${HOME}/.mlterm/aafont は、
ISO8859_1 =               7x14t-iso8859-1:100;
ISO8859_1_BOLD =          7x14Bt-iso8859-1:100;
JISX0201_ROMAN =          M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
JISX0201_ROMAN_BOLD =     M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
JISX0201_KATA =           M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
JISX0201_KATA_BOLD =      M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
JISX0208_1983 =           k14t-iso10646-1:100;
JISX0208_1983_BOLD =      k14t-iso10646-1:100;
JISX0212_1990 =           jisksp14-iso10646-1:100;
JISX0212_1990_BOLD =      jisksp14-iso10646-1:100;
JISX0213_2000_1 =         k14tjisx02131-iso10646-1:100;
JISX0213_2000_1_BOLD =    k14tjisx02131-iso10646-1:100;
JISX0213_2000_2 =         K14jisx02132-iso10646-1:100;
JISX0213_2000_2_BOLD =    K14jisx02132-iso10646-1:100;
ISO10646_UCS2_1 =         M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
ISO10646_UCS2_1_BIWIDYH = M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
ISO10646_UCS4_1 =         M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
ISO10646_UCS4_1_BIWIDTH = M+2VM+IPAG+circle+Sazanami-iso10646-1:100;
こんな感じ。
-bitstream-m+2vm+ipag+circle+sazanami-medium-r-normal-*-iso10646-1 は、 IPAフォント Ver.3(UCS/Unicode ver.3.1以降対応で JIS X 0213対応)の 漢字部分/M+2VM-circle未定義部分と、 M+2VM+IPAG-circle フォントの漢字以外の TrueType と、 漣フォントの BDF 部分と、 7x14 や k14(JIS X 0201/0208/0212) や K14(JIS X 0213) の BDF 部分を 連結して、 「一」(いち)/「−」(マイナス)/「ー」(長音符)や 「二」(に)/「=」(イコール)や 「十」(じゅう)/「+」(プラス)や 「__」(1面1区18点 0x2132 のアンダースコア)/「____」(0x5F のアンダースコア)や 「O」(アルファベット)/「0」(数字)や 「I」(アルファベットのアイ)/「l」(アルファベットのエル)/「1」(数字)/「|」(パイプ)の様に そのままだと見分けが付かない文字を見分けられる様に手書きで編集し、 バランスが崩れている30〜40文字くらいを手書きで修正して、 フォント名を変更したオリジナルフォント。 M+2VM+IPAG+circle+Sazanami は、それの fontconfig での認識名。
7x14t, 7x14Bt, k14t, jisksp14, k14tjisx02131, K14jisx02132 は、 ISO-8859, JIS X 0208/0212/0213 の各フォントのマッピングを UCS/Unicode に変換してフォント名を変更した物の、 fontconfig での認識名。

UTF-8 な Anthy + uim にて、 第3・4水準漢字や補助漢字が□になっていた問題も解決。
これもフォントが無いだけだった。
M+2VM+IPAG フォントだと Unicode ver.3.0以下(ver.1 なのか ver.2 なのか ver.3.0 なのかは不明) なので、JIS X 0213 第3・4水準漢字に未対応だった。
何やっているのだろう……。

anthy + uim を JIS X 0213 EUC-JP(第3・4水準漢字、補助漢字)に対応させてみる話。
そんなこんなで、気付かない内に?
辞書 → anthy → uim は JIS X 0213 EUC-JP で、 uim → XIM/GTK_IM_MODULE → アプリケーション は JIS X 0213 UTF-8、
もしくは
辞書 → anthy は JIS X 0213 EUC-JP で、 anthy → uim → XIM/GTK_IM_MODULE → アプリケーション は JIS X 0213 UTF-8、
とか言う事が実現できていたので、 Mon,25 May,2009を修正。

Sat,30 May,2009

Let's Fire ¥500-。

GALAXY Chart.1, GALAXY Chart.2 各¥500-。

フロッピーキューブ。
本屋で図書券で買えた。不思議な気分。
難易度は、凄く簡単だった。 3×3×3のルービックキューブを自力では2段目までしか解けない私でも、 フロッピーキューブでは、 付属の解き方解説書を一切見ずに、 初めて触ってから2〜3分で、解ける様になった。
構造は、 暫くいじった感じで何となく予想が付かないわけでも無いが、 ¥1,000- で製造販売できるのかどうか。

JIS X 0213 対応(UCS/Unicode ver.3.2以降)の UCS/Unicode フォント。
探してみたが、 それなりに緩い条件でかつ無料で使える物は、 IPAフォント Ver.3 しか見つからなかった。 これだと JIS X 0213(第3・4水準漢字、補助漢字)対応 らしい(UCS/Unicode ver.3.2 なのか ver.4 なのか ver.5 なのかは不明)。
で、このフォントは TrueTyep しか含まれていないので、 漣フォントのビットマップフォントを連結して、 足りない所は TrueTyep から自動生成、 したいのだが、 どうやればいいのだろう。
M+IPAG と同じ手法でやるか。

fontforge で ISO10646(UCS/Unicode)な IPAフォントに JIS X 0212 や JIS X 0213 2面(ロッキングシフト省略の ISO-2022)の ビットマップフォントを連結させようとしたら、 fontforge が JIS X 0212/0213 非対応だった。 表向きは JIS X 0212 は「対応」になっているが、 1面相当の部分(本来は JIS X 0208 の部分)しか対応していなくて、 2面相当の部分(本来の JIS X 0212 の部分)は非対応で、 使い物にならなかった。

plugin を書いてやれば、対応させられるらしい。
……
plugin で iconv() を叩いたら、EAGAIN が返ってきた。 なんで〜。
……
iconv() で EAGAIN は「正常終了」らしい。 最近、この手のどうでもよい引っかかりが多い様な……。

↑ そして bdftopcf が UCS/Unicode ver.2 だか ver.3.0 だか までしか対応していなくて、 U+10000 以上にマッピングされている JIS X 0213 2面の第3・4水準漢字を ISO10646 なフォントに変換できずに終了。

Sun,31 May,2009

Kingston microSD 2GB ¥680- お一人様1個、先着200人限定…… 特売2日目の閉店まであと2時間の時点で、ワゴンにたっぷりあるんですが。 上海問屋の A-DATA レベルなら、今時普通の値段らしい。 ただ、Kingston でこの値段の辺りがちょっとだけ良いらしい。 2年くらい前に 512MB ¥1,000- だった様な気が。

Let's Fire ¥500-。

fontforge にて JIS X 0212, JIS X 0213-1, JIS X 0213-2 フォントと ISO-10646(UCS/Unicode) フォントを相互変換する為のプラグイン 追加。

JIS X 0213(第3・4水準漢字)対応な UCS/Unicode フォントの続き。
mlterm にて、 EUC-JP/EUC-JISX0213 なロケールで --onlyucsfont false --aa false 指定を付けて JIS X 0212/0213-1/0213-2 なビットマップフォントを使った時には JIS X 0213 を表示できるし、 UTF-8 なロケールで --onlyucsfont true --aa true 指定を付けて ISO-10646 な AA-Font を使った時には JIS X 0213 を表示できるのだが。
EUC-JP/EUC-JISX0213 なロケールで ISO-10646 な AA-Font を使った時や、 UTF-8 なロケールでビットマップフォントを使った時には、 U+10000以上にマッピングされている文字が、 空白になったり□になったり文字化けしたりして、 まともに表示できない。
どこかに UCS/Unicode ver.3.1以降に非対応なヤツが いるらしい。
付き合ってられん。

それから、UTF-8 なロケールで ISO-10646 な AA-Font を使った場合でも、 「双柱記号」とか「平行記号」とかを 表示しようとすると、 左半分しか表示されない。
自前改造フォントに mlterm のカスタム設定、とか凝った事を一切せずに、 web で見かける、 「こうやったら mlterm が IPAフォントで表示できた」 と言う手の記事通りにやっても駄目。
頭湧きそう。
col_size_of_width_a = 2 指定で1文字分表示される様になった。
それでも「Minus Sign U+2212」は左半分しか表示されないが、 これは U+2212 のマッピング定義が「ISO-646 の 0x2D 相当」だから いわゆる半角ぶんしか表示しないらしい、たぶん。

Firefox 2系列と 3系列の 文字エンコーディング EUC-JP や 文字エンコーディング ISO-2022 だと、 JIS X 0213 第3・4水準漢字だけでなく、 JIS X 0213 の1面と JIS X 0212 補助漢字も表示できなかった。 その辺りが全部、U+FFFD Replacement Character に変換されてしまったり、 ロッキングシフトを解釈しなかったり。
JIS X 0208 と JIS X 0201 しか表示できない。
元ファイルを UTF-8 に変換してから表示させると、 ちゃんと表示されるのだが。
……
文字エンコーディング EUC-JP で 第3・4水準漢字/補助漢字をどうするかと言う辺りは、 2005年末〜2006年頃にゴタゴタが有ってもめた辺りらしい。

渡辺美里、My Revolution、1986.01.12。

円広志、夢想花、1978.11.21。

Mon,01 Jun,2009

銀行の普通預金の金利。
いつのまにか、大手都市銀行で 0.05%から 0.04%に下がっていた。

Anthy の EUC-JP の正体。
Anthy の内蔵の EUC-JP - UCS-4 変換エンジンと、 libiconv で、 変換結果が違う物が有る事に気付いた。
具体的には、 UTF-8 な単語辞書をテキストエディタで編集し、 Anthy で読み込んで、ロケールを ja_JP.eucJP にして入力すると、 一部の記号が文字化けしてしまう。 逆に、 Anthy用辞書ツールで UTF-8 な private_words_default に 単語登録して、 単語辞書をテキストエディタで編集しようとすると、 文字化けしている。
いやまあ、文字化けする事自体は、 Anthy を初めて使った時に、 Canna のユーザ辞書を変換して突っ込んだら文字化けしたので、 気付いてはいたのだけれども。
ようやく原因が判明。

文字化けしたのは、概ね下記の記号類。 1面85区〜94区のマッピングを見れば EUC-JP/EUC-JP-MS/CP51932/EUC-JISX0213 の区別が付くらしいので、 それも調べてみた。
文字コード比較
文字名 文字 EUC-JP AnthyでのUCS-4 JISで定義されたUCS-4
EM DASH 0xA1BD U+2015 U+2014
WAVE DASH 0xA1C1 U+FF5E U+301C
DOUBLE VERTICAL LINE 0xA1C2 U+2225 U+2016
MINUS SIGN 0xA1DD U+FF0D U+2212
CENT SIGN ¢ 0xA1F1 U+FFE0 U+00A2
POUND SIGN £ 0xA1F2 U+FFE1 U+00A3
NOT SIGN ¬ 0xA2CC U+FFE2 U+00AC
丸付数字 0xADA1〜 U+2460〜 X 0208/0212には存在しない文字。X 0213では U+2460〜
1面85区〜94区 0xF5A1〜0xFEFE U+E000〜U+E3AB X 0208/0212には存在しない文字。X 0213では U+64C4 など

……、Anthyのこのマッピングは EUC-JP-MS ですな。
ここまで見事に EUC-JP-MS になっていると言う事は、 わざと EUC-JP-MS にしたと考えるのが妥当だと思うけれど。
anthy-7900 → anthy-8300 の辺りで UCS-4 がらみが実装されたっぽいが、 2006年7月に初めて実装された時からずっと、 EUC-JP-MS だったらしい。

なぜ EUC-JP-MS なのだろう。
WinAnthy がらみ?…… WinAnthy の初版が公開される1年以上前からずっと EUC-JP-MS だったから、 それは無いか。 当時の mailing list のログを見ても、 この事に関する情報は見つからず。
scim だと、 2006年7月21日の scim-antny-1.2.0 にて、 Anthy に対して想定する文字コードを EUC-JP から EUC-JP-MS に変えた、みたいな事が書いてあるが、 これは、 Microsoft Office / MS-Windows用 OpenOffice と Unix系 OpenOffice での「〜」の文字化けがらみがどうのこうの、 と Mailing-list に書いてあったので、 Anthy がどうと言う訳では無いっぽい。
uim-anthy だと、 現在でも EUC-JP(JIS X 0208/0212) を前提にしている。

謎だ。

Thu,04 Jun,2009

vim の構文表示機能。
shell script の時は ちゃんと if then elif else fi が認識されているのに、 configure 中の shell script の時は if then else fi は認識されるのに elif が認識されていない。 と言うのを何年も前から気にしてはいた。
先週〜今週辺りでまた、 elif の綴りを間違えるのを何度かやらかしたので、 一念発起?、調べてみた。
shell script の構文ルールは syntax/sh.vim を読みに行くが、 configure 中の shell script の時は syntax/config.vim を読みに行っており、 syntax/sh.vim では 「syn keyword shConditional contained elif else then」 だが、 syntax/config.vim では 「syn keyword configkeyword if then else fi test for in do done」 だった。
${HOME}/.vim/syntax/config.vim に 「syn keyword configkeyword elif」 を書けばOK。 elif が非標準、って事は無いよね。

automake/autoconf の configure スクリプト。
最近は、configure.in ではなくて configure.ac なのか。 知らなかった。

automake/autoconf な configure で iconv を認識する方法。
まじめにコードを書こうとすると、かなり面倒な事に気付いた。
gettext には iconv.m4 が付属しているが、 これを使うと Anthy のビルド手法と相性が悪く、 古い Anthy がインストール済の状態で 更新版の Anthy を上書きインストールしようとした時に、 更新版の anthy の実行ファイルが 古い anthy のライブラリをリンクしてしまう、 と言う、非常に困った問題が起きる。 なので使えない。
もっとも iconv に限らず、 古い anthy のライブラリがインストールされているディレクトリに 置かれている、何かのライブラリを使用する様な事をした場合、 更新版の anthy の実行ファイルが 古い anthy のライブラリをリンクしてしまう問題が、 必ず起きるのだけれども。
あと、AM_ICONV を使っても、 エンコーディング名までは調べてくれないので、 エンコーディング名を調べる部分は自前で書かなければならない。

仕方が無いので、既存の iconv.m4 を使わずに、 automake + autoconf + bourne shell script で判定するスクリプトを 書いてみたが。
iconv を内包しているライブラリの名前が 標準ライブラリと libiconv の2パターン。 そのライブラリが置かれているディレクトリ名が /usr/lib, /usr/local/lib, それ以外具体名が判らないのもあって数パターン。 iconv の関数名が iconv_open/iconv/iconv_close, libiconv_open/libiconv/libiconv_close の2パターン。 さらに エンコーディング名が各OS毎にわりとバラバラで ASCII, UCS-4, UTF-8, EUC-JP, eucJP-MS, EUC-JISX0213 各種別毎に 数パターンずつ。 これ全パターン探さなければならないので、かなり面倒。 さらに私が知らないパターンが有ったりすると破綻する。

iconv のエンコーディング名。
HP-UX 辺りは、 ASCII/646 と ISO-8859-1 の区別が無いと言う腐れ仕様らしい。 ASCII/ISO-646 の文字の範囲は 0x00〜0x7F (1byte = 7bit) で、 ISO-8859-1 は 0x00〜0xFF (1byte = 8bit) なので、 全然違うのだが。

HP-UX には ShiftJIS と EUC-JP に 0201 とか言う見慣れない物が有る。 一体これは何なのだろう。
……
ShiftJIS や EUC-JP にて、 JIS X 0201 の部分の UCS へのマッピングを JIS 準拠に変更し、 その変更によって UCS でのマッピングが衝突する様になった部分の JIS X 0208/0212 部分のマッピングも変更した物、 らしい。
具体的には 0x5C「\」と 0x7E「~」のマッピングが、 U+00A5「¥」と U+203E「 ̄」になり、 ShiftJIS や EUC-JP で 「 ̄」「\」「¥」だった物が玉突きで変更になっている。
……、プログラムのソースの様に、 「\」や「~」を使用している物で凄い困った事になると思う。 確かに、 JIS X 0201 では 0x5C は「円記号」と定義されているけれど。

Solaris だと、2007年版以降になって、 ようやく JIS X 0213 EUC-JP 対応らしい。
HP-UX や AIX だと、もしかしたらいまだに JIS X 0213 EUC-JP 非対応かもしれない。

alt-depgraph-090525。
「|行って|おり|」(|いって|おり|)。 「おる」補助動詞。「ている」。
090520 → 090525 で、1文節から2文節に変更になったらしい。

Fri,05 Jun,2009

Anthy の alt-depgraph の違いや辞書の文字コードの違いで、 変換速度にどの程度の違いが出るのか。
何となく気になったので、なんとなく調べてみた。
比較対象は、 anthy-9100h + 拙作パッチ patch13Bptn23.2009520 に、 alt-depgraph-090506 を使用した場合と、 alt-depgraph-090525 を使用した場合。 変換内容は、 alt-depgraph-090525 の calctrans/corpus.x.txt の 読み仮名部分を切り出した 1165件。 変換結果が望ましいものか否かの判定は行わない。

PentiumD 3.2GHz, SingleCore, Disable HyperThreading, 省電力モード無し
OpenBSD/amd64 4.4-RELEASE
コンパイラ:gcc 3.3.5
コンパイルオプション:-g3 -O0
変換アルゴリズム:ビタビアルゴリズム

patch13Bptn23.2009520.alt-depgraph-090506 辞書 EUC-JP-MS、alt-cannadic/extra 無し、辞書サイズ 18398776
ユーザランドの処理時間[秒]、カーネル空間の処理時間[秒]、実行終了までの延べ時間[秒]
30.468u 0.656s 0:31.44
30.281u 0.726s 0:31.12
30.476u 0.578s 0:31.12

patch13Bptn23.2009520.alt-depgraph-090506 辞書 UTF-8、alt-cannadic/extra 無し、辞書サイズ 21444600
30.132u 0.687s 0:30.92
30.148u 0.531s 0:30.77
30.039u 0.695s 0:30.88

patch13Bptn23.2009520.alt-depgraph-090506 辞書 UTF-8、alt-cannadic/extra 有り、辞書サイズ 21750200
30.210u 0.570s 0:30.88
31.218u 0.601s 0:31.88
30.132u 0.585s 0:30.85

patch13Bptn23.2009520.alt-depgraph-090506 辞書 EUC-JISX0213、alt-cannadic/extra 有り、辞書サイズ 18651832
30.632u 0.492s 0:31.30
30.484u 0.632s 0:31.20
30.375u 0.664s 0:31.21

patch13Bptn23.2009520.alt-depgraph-090525 辞書 EUC-JP-MS、alt-cannadic/extra 無し、辞書サイズ 18093224
29.937u 0.484s 0:30.53
29.773u 0.671s 0:30.50
29.929u 0.609s 0:30.62

patch13Bptn23.2009520.alt-depgraph-090525 辞書 UTF-8、alt-cannadic/extra 無し、辞書サイズ 21138856
30.226u 0.570s 0:30.91
30.046u 0.546s 0:30.68
30.164u 0.640s 0:30.88
結論。
この程度の違いは測定誤差の範囲です。
処理速度と言う点に関しては、 人力で作業できる範囲内なら、付属語が長くなっても問題無し。

弾道コースで飛翔する発射物のニュース。
今回も、メルカトル図法の地図に円を書く、 と言う事をやっている様な気が……。

サーバの緊急メンテナンスの為、 6月6日(土)〜7日(日)までこのサイトが閲覧出来なくなる見込み。

Sat,06 Jun,2009

Let's Fire、GALAXY Chart.2 各¥500-。

GALAXY Chart.1 ¥250-。

フロッピーキューブの構造解析のページ 、作成。

サーバの緊急メンテナンス終了。 経過観察中。

Sun,07 Jun,2009

MACROSS PLUS Original Sound Track ¥500-。

Jump、ヴァン・ヘイレン、1984年1月。

チルダと波ダッシュ。
JIS X 0213 対応改造フォントを作ったついでに、 チルダと波ダッシュの字体を変えて、見てすぐ違う事が判る様にしてみた。
ネットサーフィンしたら、片っ端からチルダを誤用していた。
原因はと言えば、 「Unicode で例示字形を間違えて MS-Windows がその間違った例示字形を参照して 間違ったマッピングを行なってしまい そのまま現在に至るまで間違ったマッピングのまま事件」、 くらいしか思い付かない。
MS-Windows 7 が普及すると治ってくるのかなぁ。どうなのかなぁ。

↑ あと、google が、こちらの文字コード要求を無視して、 必ず UTF-8 で応答する事に気付いた。 ブラウザで EUC-JP での応答要求を出しても、 無視して UTF-8 で応答してくる。
さらに、google で「〜」が必ず文字化けする。 どうやら google の中は CP51932/CP932/ISO-2022-JP-MS らしい。

alt-depgraph-090525。
「|昔っ|から|」(むかしっから)が2文節になるのだけれども…… 当たり前の様な気が。ちょっとだけ迷ったのであとで考え直してみる。
……
これは付属語グラフを用いて「っ」が付属語になった物では無く、 DEPGRAPH_WITH_PART オプションの機能で 余った拗音・促音を取り敢えず自動的に付属語化した物らしい。
文法としては、一見すると促音便に似てはいるけれども、 どうも違うっぽい。
結局。 2文節で問題無いらしい。

↑ Tue,23 Jun,2009 追記:
→「vagus氏 - 丘の道を登り - 2009年06月16日 - 「昔っから」「厚」 - 【追記】6/17」。
大雑把に要約すると、 「付属語グラフに追加するとありえない候補を作りまくるかもしれないし、 追加しないとうまく変換できない。 なので、付属語を付けた状態で辞書に追加」 との事。
対応有り難うございます。
たしかに、そうしておかないと、 「|昔っ|〜|」とか「|昔っ|空|」とか 出てきてしまいますね。

2日続けて自転車がパンク。 どうも、リム打ちパンクと言う奴らしい。
2日続けて各日2時間以上自転車を押して歩くのはかなりつらい。
こう言う時だけ、パンクしない自転車が欲しい。 でも、ゲル充填すると、 段差や凸凹での衝撃で車輪が破損しやすくなるらしいのと、 坂を上がるのが重くなるのと、 チューブ交換5〜10回分の金額がかかるので、 結局踏み切れない。

Wed,10 Jun,2009

iconv/libiconv の ISO-2022 対応。
今まで、 iconv/libiconv の ISO-2022 対応は、 ISO-2022 → UCS/Unicode の方向は全体系対応だと思い込んでいたのだが、 違うらしい。 ISO-2022 の中の特定の体系のみ対応らしい。
ISO-2022 のロッキングシフトを見れば、 どの体系なのか指定されており、 全体系への対応も可能なので、 てっきりそうなっているものだとばかり思い込んでいた。

OpenBSD で libiconv を使う。
コンパイルが通らなかったり、SIGSEGV が出たりする。
デバッガで見てみたら、 libiconv_open() の返値に cltq (amd64 の場合)を行なって わざわざ値を壊していたりする。
何でかと思ったら。
OpenBSD は #undef LIBICONV_PLUG だった。 なのに #define LIBICONV_PLUG していたので、 プロトタイプ無しの関数とみなされて返値が int とみなされていた。

OpenBSD で SIGBUS。
SIGBUS を出している部分と同等の事を デバッガで p とか x とか set var とかやっても、問題無く実行できる。 でもバイナリを実行すると SIGBUS になる。
何でかと思ったら。
const な変数に値の代入をやっていた。
あー、OpenBSD は、書き換え禁止の部分を書き換えようとすると、 そうなるのだっけ。忘れてた。

車両点検と途中駅混雑と ホームの非常通報が有ったとかで、 8分遅れ。 しかも、 接続待ちの有無のアナウンス放送が間違っていた為に、 乗り換え先で 本日の運転は全て終了しました と言われてどつぼにはまる。   双方の駅員の話から憶測するに、ここの乗換駅の場合、 相手先の遅延時間が何分であっても、 接続待ちは最大で3分までしか行わない取り決めらしい。 ダイヤ上の乗り換えの余裕時間が約5分なので (もっとも、いつも遅れる路線なので、 乗り換え猶予時間が3分よりも長くあった試しが無い)、 3分待っても、遅延8分だと乗換時間が0になってしまって間に合わない。 接続元にて、 なんとか列車をかっ飛ばして遅延を7分以内に縮めて、 乗客を走らせて1分で乗り換えさせて、 ぎりぎり間に合わせるつもりでアナウンスしたらしい。
さらに雨が降り出す始末。

anthy 拙作パッチの iconv化。
処理の最適化が完了していないけれども、 ようやく実地運用可能な段階までは完成したので、 ベンチマークを採ってみた。

53.039u 1.468s 0:54.71
53.148u 1.570s 0:54.95
53.523u 1.273s 0:55.07
xchar.c の処理の最適化が面倒なので端折ったら、やっぱり遅くなった。 しかも倍ちかい遅さだよ……。
xchar.c 以外の部分は、 以前の試験的に EUC-JISX0213化したものと大して違いは無い筈なので、 xchar.c の無駄処理だけで倍近く遅くなった勘定になる筈。

今月のトラ技。
サイプレスの CMOSイメージセンサーで、 1280x1024 で 500fps とか言うモデルがあるらしいが。 どうやってデータを転送するのだろう。 SPI って 5 Gi bps も出せたっけ?。 カラーなら 15 Gi bps になるけれど。
エリア読み出しで 500fps の読み間違いではないし……。
……
制御ラインが SPI で、 画像読み出しは LVDS 61MHz 12チャンネル らしい。 エリア読み出しなら、さらにフレームレートを上げる事が出来るらしい。

Thu,11 Jun,2009

有符号型と無符号型のキャスト。
久々に?、やらかした。

    char buf[BUF_SIZE] = 1文字目が EUC-JP の 2byte文字の何か適当な内容。
    uint32_t val = ((buf[0]) << 8) + ((buf[1]));
val は割と出鱈目な値になります。
正しくは、
    uint32_t val = (((uint8_t)buf[0]) << 8) + (((uint8_t)buf[1]));
としなければならない。 一部の人に言わせると余計な括弧が有るらしいが、 私は演算子の優先順位は暗記していないので、省略できない。
頼むから EUC-JP や UTF-8 な文字列には uint8_t[] か unsigned char[] を使わせて(泣。
あと、今回は C99 指定ができないので、static_cast は使わない。
個人的な気分的には、
    uint32_t val = (((uint32_t)(uint8_t)buf[0]) << 8) + (((uint32_t)(uint8_t)buf[1]));
と書くけれども、uint32_t のキャストは余剰らしい。

char型配列のビット長やパディング。
上記は、 1byte = 8bit の処理系で、 且つ char型配列にパディングが無い事が保証されているならば、

ホストのエンディアン別に、
    uint32_t val = (uint32_t) ntohs( *((uint16_t*)buf) );
もしくは
    uint32_t val = (uint32_t) ( *((uint16_t*)buf) );
と最適化できる。 のだが、gcc3系では -O3 付けても、 最適化前のソースから最適化後と等価のバイナリは生成してくれなかった。
さて、 この最適化をしても良いのかどうかは、 どうやれば知る事が出来るのだろう。
CHAR_BIT が 8 で sizeof(buf[0]) が 1 ならいいのかな?。
configure で実際に演算して一致する事を確認した方が良いかもしれない。 でも、クロスコンパイルできなくなるなぁ。
クロスコンパイル時は configure のオプションで指定してもらう事にして逃げた。
sizeof(char[0]) は常に 0 だった。 char buf[1]; で sizeof(buf[0]) はそれなりの値だった。 もっとも、 char型配列にパディングが入るシステムのアカウントは持っていないので、 試した事は無い。

anthy 拙作パッチの iconv化。
と言う訳で、バグとか機種依存になっていた部分とかを 治した/直したので、ベンチマークを採り直してみた。

35.085u 0.570s 0:35.79
35.015u 0.710s 0:35.82
36.195u 0.765s 0:37.06
……えーと、 xchar.c 〜 xstr.c にあった統合可能な malloc() を統合しただけで、 まだ xchar.c の処理の高速化は未着手なのですが。

Anthy の学習データ。

手元の Anthy では、 パラメータのチューニングに使う為に、 実地運用での学習データの利用状況を集積するため、 学習データの削除機能を無効にしてある。
で、 約21ヶ月ずっと溜め続けた結果、 学習データが 7.5MiB くら溜まっているのだが、 ここまで溜まっていると、もの凄く遅い。 学習データの再読込時にお茶を一口二口口に出来るくらい遅い。 いい加減、我慢の限度が。
学習データの利用効率の統計を取って、効果が低い部分は削除する事にした。 「Anthy 改造パッチの詳細解説と覚え書きと落書きとグチ - 継続使用の試験結果とかベンチマーク結果とか - Fri,12 Jun,2009

延べ利用回数での利用効率から言うと、 PREFIX_HISTORY, SUFFIX_HISTORY, INDEP_HISTORY, DEP_HISTORY の4種類は9割を越える圧倒的な利用効率で、 CAND_HISTORY はちょっと落ちて7割だが、 実際の変換では CAND_HISTORY で救われる事が結構有り、 その事は利用効率の数字には出てこない。
そんなこんなで、この辺りは削除しない。

UNKNOWN_WORD の利用効率は4割だが、 先の nosuke氏のスパーギアの件みたいな事の対策としては外せない。
未知の単語は必ず全て単語登録するならば、 UNKNOWN_WORD は完全に不要になり、消しても構わないのだが。 一般利用者の事を考えると、それは無理だろう。

EXPANDPAIR は……、現状の学習の仕様だと、 無くてもいいとは思うのだけれども、 ビタビ絡みでどうなっているのかよく判っていないので、 迷う所。
UNKNOWN_WORD や OCHAIRE で同等の機能が効いている筈なのだが、 EXPANDPAIR を消しても 60KiB くらいの節約にしかならないし……。 消すか。

OCHAIRE 3文節は、部分を見ても全般を見ても、 利用効率が低い。 さらに、 OCHAIRE 2文節での代替も効いている筈。 時々、 OCHAIRE3文節であれば誤適用しないが OCHAIRE2文節だったので誤適用した、 と言う事も起きるけれども、効率悪すぎ。
削除する事にした。 これで1〜2割は削減できた。 思ったより減らないな。

OCHAIRE 2文節は、迷う所。 「末尾文節は自立語のみ取り出して付属語は削除して学習」 (wIwoD と woIwoD)にすると、 効率がグッと上がり5〜6割となるが、 付属語違いに対する誤適用がちょくちょく有り、 特に woIwoD はあからさまに誤適用が出てくるので、 一般利用者には勧めにくい。
そうなってくると、種別で削除するのはやめて、 時期で削除を考えてみる。 とすると、どうも、 最後に利用したのが直近3ヶ月以内である学習データの場合は 利用効率が平均を越えて3〜7割あり、 最後に利用したのがもっと古くなると2〜3割に落ちている。 何故かは不明だが、 取り敢えずこの辺りで切るのが良さそう。

DATA_SAMPLING は、現在は学習に利用しておらず、 実装する気も無い(実装が面倒)。 でも、見た感じ、 「前の文節の付属語 + この文節の付属語」は 利用効率が圧倒的に高く7〜8割も有り OCHAIRE を確実に上回っている、 「前々文節の付属語 + 前文節の付属語 + この文節の付属語」と 「前の文節の自立語 + この文節の付属語」は 4〜5割と OCHAIRE 2文節と同等の効率で、 「前の文節の自立語 + この文節の自立語」でも 3〜4割と OCHAIRE 2文節に匹敵している。
学習として実装すると、 OCHAIRE よりも学習が適用できる率が高いもしくは匹敵するので、 案外いけるのかもしれない。 ただ、 OCHAIRE は文節の内容を丸ごと確保しているが、 こちらは文節の内容の特定部分だけなので、 誤適用とか不確実さとかは大きいかもしれない。

結局、 DATA_SAMPLING 全部と、OCHAIRE 3文節全部と、EXPANDPAIR 全部と、 OCHAIRE 2文節の古い物を削除で、 6割削減して 3.6MiB くらいにまで縮まり、 だいぶ楽になった。 変換結果は、特段変化した感じはしない。 でも、やっぱりまだちょっと遅い。   速度面からは、 一般的には 1MiB くらいが妥当な所で、2MiB が上限、3MiB が限界かなぁ。 学習の効果を考えると、2〜5MiB は欲しいのだが。

Fri,12 Jun,2009

途中駅混雑とお客様同士のトラブルの為、 3〜5分の遅れ。

途中駅混雑とお客様同士のトラブルと接続待ちの為、 5〜10分の遅れ。

Sat,13 Jun,2009

自転車のタイヤのチューブ。

新興の日曜大工関連店1:サギサカ チューブ ¥698-。
新興の日曜大工関連店1:サギサカ 1.5倍厚スーパーチューブ ¥1,180-。
新興の日曜大工関連店1:空気入れ(よく見かけるヤツ。圧力計無) ¥1,500〜2,500くらい。
老舗の日曜大工関連店1:サギサカ チューブ ¥780-。
老舗の日曜大工関連店1:空気入れ(よく見かけるヤツ。圧力計無) ¥1,500〜2,500くらい。
老舗の日曜大工関連店1:空気入れ(足踏み式、シリンダー1個。圧力計有) ¥610-。
老舗の日曜大工関連店だったけれども某安売り店に買収されちゃった所:取り扱いやめました。
                                                            Sat,11 Jun,2011追記:再開していた:厚さ1.2mmで130%の強さのチューブ ¥798-
老舗の日曜大工関連店2:ブチル チューブ ¥399-。
老舗の日曜大工関連店2:チューブ ¥698-。
老舗の日曜大工関連店2:厚さ1.3倍 チューブ ¥998-。
老舗の日曜大工関連店2:空気入れ(よく見かけるヤツ。圧力計無) ¥599〜2,000くらい。
新興の日曜大工関連店2:サギサカ チューブ ¥700-。
新興の日曜大工関連店2:サギサカ 1.5倍厚スーパーチューブ ¥1,280-。
老舗の日曜大工関連店3:チューブ ¥730-。
老舗の日曜大工関連店3:National Panaracer厚さ26%増 チューブ ¥1,380-。
老舗の日曜大工関連店4:共和 チューブ ¥598-。
老舗の日曜大工関連店4:共和 チューブ ¥549-。
西友:ノーブランド チューブ ¥877-。
スーパー:サギサカ チューブ ¥698-。
スーパー:サギサカ チューブ ¥798-。
スーパー:サギサカ 1.5倍厚スーパーチューブ ¥1,180-。
自転車専門店1:店舗ブランド チューブ ¥698-。
自転車専門店1:店舗ブランドだけれども Panaracer と書いてある 厚さ26%増 チューブ ¥924-。
自転車専門店2:ブチルチューブ ¥700-。
自転車専門店2:店舗ブランド チューブ ¥730-。
アマゾンとか楽天とか:サギサカ 1.5倍厚スーパーチューブ ¥1,060〜1,080-、送料別。
通常品の¥698-を基準にすると、
1.5倍厚(¥1080)は通常厚の 1.55倍の値段(1.50倍のさらに1.03倍、 33円高い)。
1.5倍厚(¥1180)は通常厚の 1.69倍の値段(1.50倍のさらに1.13倍、133円高い)。
1.5倍厚(¥ 980)は通常厚の 1.40倍の値段(1.50倍のさらに0.93倍、 67円安い)。
1.3倍厚(¥ 998)は通常厚の 1.43倍の値段(1.30倍のさらに1.10倍、 90円高い)。
26%増 (¥ 924)は通常厚の 1.32倍の値段(1.26倍のさらに1.05倍、 45円高い)。
価格質量比だけでみると、通常厚が一番得。   厳密に考えると、 厚さが2倍になってもゴムの使用量は2倍より少ない筈 (タイヤの大きさは変わらないので、 膨らませた状態での大きさは全て同じ筈。 となると、 ゴム厚が厚くなった分は内側に増えている筈) だが、わざわざ円筒厚の積分計算するのは面倒臭い……、 私が計算すると多分間違える。
ランニングコストで見るとどうなるのだろう……、 具体的にどれくらい長持ちするのか判らないから考え様が無い。

Sun,07 Nov,2010に関連。

Second Fire, GALAXY Chart.1, GALAXY Chart.2 各¥500-。

ハウルのサントラ 2〜3枚あって¥250-。

娘フロ ¥980- で5枚、 娘トラ ¥980- で1枚、 娘トラ(盤面にキズ)¥980- から2割引で1枚、 娘たま¥2,980?で2枚?。

Sun,14 Jun,2009

ライディーン、YMO、1979.9.25。 雷電とか RYDEEN とか言う別名の事は知らなかった。 そう言えば雷電とか言うシューティングゲームが有った様な気がする。
輝きながら…、徳永英明、1987.7.5。
時代、中島みゆき、1975.12.21。 リメイク版で、 時代 -Time goes around-、1993.10.21、 と言う物があるらしい。 区別が付かない……。
やさしさに包まれたなら、荒井由実、1974.4.20、 のアレンジバージョン。 「魔女の宅急便」1989.7.29 の方しか知らないので、区別が付かない……。

Anthy の UCS/Unicode 対応。
文字のパース部分で対応している UCS/Unicode のバージョンは、 Unicode ver.2.1 もしくはそれ以前らしい。 CJK統合漢字拡張A や CJK統合漢字拡張B (JIS X 0213:2000 第3/4水準漢字)や CJK互換漢字 に 対応していなかった。
もっとも、たぶん、 逆変換の時に逆変換されずに素通りするかもしれない程度だけれども。 システム辞書に登録されている文字なら、 文字パースで対応していなくても、 変換すればそのまま素通りして出てくるし。

anthy 拙作パッチの iconv化。

iconv化前(-g3 -O0)
30.140u 0.601s 0:31.65
30.140u 0.562s 0:30.77
30.046u 0.554s 0:30.66
	1204K, 2848K

iconv化前(-g3 -O3)
21.242u 0.546s 0:21.84
21.265u 0.476s 0:21.76
21.070u 0.718s 0:21.82
	1064K, 2812K

iconv化後、xchar.c高速化前(-g3 -O0)
35.085u 0.632s 0:35.79
35.265u 0.679s 0:36.04
35.335u 0.710s 0:36.10
	1232K, 2988K

iconv化後、xchar.c高速化後(-g3 -O0)
33.085u 0.703s 0:33.87
33.171u 0.585s 0:33.86
33.250u 0.640s 0:33.96
	1456K, 3156K

iconv化後、xchar.c高速化後(-g3 -O3)
24.406u 0.679s 0:25.18
24.484u 0.703s 0:25.25
25.734u 0.648s 0:26.42
	1444K, 3192K
xchar.c高速化は、 手間取った割に効果が低かったらしい。 あるいはブロックサイズの設定値が悪いかも。
プロファイルを採ってみたら、 memset と malloc だけで 20%だか 30%だか越えていた。 xchar.c 関係無いし。

↑ 高速化を何パターンか試してみた。

iconv化前、-g3 -O0
29.945u 0.773s 0:30.80
30.085u 0.640s 0:30.82
30.289u 0.453s 0:30.80

iconv化後、-g3 -O0
35.125u 0.664s 0:35.86
35.429u 0.593s 0:36.11
34.882u 0.640s 0:35.63

iconv化後、xchar.c高速化後、-g3 -O0
33.062u 0.781s 0:33.92
33.890u 0.562s 0:34.53
33.242u 0.656s 0:34.02

iconv化後、xchar.c高速化後、iconv回りのバッファ統合後、-g3 -O0
32.898u 0.765s 0:33.75
32.984u 0.625s 0:33.72
33.046u 0.671s 0:33.83

iconv化後、xchar.c高速化後、iconv返値のstruct xstrまわりの統合後、-g3 -O0
28.882u 0.726s 0:29.71
29.203u 0.492s 0:29.79
29.171u 0.890s 0:30.11
28.882u 0.640s 0:29.59
	1260K 3160K

iconv化後、xchar.c高速化後、iconv回りのバッファ統合後、iconv返値のstruct xstrまわりの統合後、-g3 -O0
29.023u 0.742s 0:29.85
29.257u 0.585s 0:29.90
28.851u 0.656s 0:29.60



iconv化後、xchar.c高速化後、iconv回りのバッファ統合後、-g3 -O3
24.273u 0.828s 0:25.18
24.640u 0.648s 0:25.38
24.414u 0.757s 0:25.25

iconv化後、xchar.c高速化後、iconv回りのバッファ統合後、iconv返値のstruct xstrまわりの統合後、-g3 -O3
21.148u 0.562s 0:21.72
20.992u 0.687s 0:21.70
20.960u 0.820s 0:21.84
iconv の引数・返値のバッファ処理で、 メモリ転送を余計に行っている部分を統合しても 余り効果が無いのがちょっと不思議。 iconv回りでのメモリアクセス回数が 2/3 くらいには減る筈なのだが。 キャッシュに乗っているとか被呼回数が少ないとかだろうか?。 それとも単純メモリ転送が実はかなり速いとか?。
そのわりに、iconv の返値処理での、 struct xstr の malloc/free まわりを統合すると、明確に速くなっている。 やっぱり、 メモリ転送は速くて、ヒープの確保/解放が遅い、と言う事かな。
となると、 短期的に使用する文字列バッファの確保/コピー/解放まわりの負荷が、 そのまま全体の処理時間に効いてきているのかな。
iconv化前とiconv化後で同等の速度になったし (iconv化後に行った高速化の内、 一部のiconv化前でも適用できる物をiconv化前にも適用すると、 さらに速くなるだろうけれど)、 これ以上、高速化を図ると、 根本から書き直した方が良い領域に突入しかねないからやめた。 …… xchar.c と xstr.c は、ほぼ全部、書き直したけれど。
ソースコード(辞書や付属語グラフを除く)の変更量を調べてみたら、 原作版に対して3割5分くらいだった。 4割行ったかと思ったが、そうでもないらしい。

alt-depgraph-090525 の alt-cannadic。
「厚」(あつ)が辞書に無い……。 でもこれ、普通はこう言う言い方しないかも……。
Tue,23 Jun,2009 追記:
→「vagus氏 - 丘の道を登り - 2009年06月16日 - 「昔っから」「厚」 - 【追記】6/17」。
対応有り難うございます。
「厚」(あつ)、「問屋」(どんや)、「絡み」(がらみ)、は、 どちらかというと個人用の単語登録の方が良いかもしれない、 と思ったので、消していました。
特に「厚」(あつ)は、機械屋が使う専門用語、 もしくは特定の工場での方言かもしれません。 「板厚(いたあつ)」 「主桁の厚(あつ)は10mm」 「構造材の厚(あつ)が足りなくて折れた」 など。

Mon,15 Jun,2009

途中駅混雑の為、3〜5分の遅れ。 何か最近、遅延が多い。

途中駅混雑と接続待ちの為、5〜10分の遅れ。

Tue,16 Jun,2009

途中駅混雑とお客様対応の為、4〜5分の遅れ。 今日もまた。

接続待ちの為、5分前後の遅れ。

Anthy の iconv化。
EUC-JP を eucJP-MS から EUC-JP(JIS X 0208/0212) に 変更した事に合わせて、 辞書に EUC-JP で登録してあると文字コードを間違える恐れの有る 物を点検してみた。
……。 どう処置すべきなのか、悩ましい。 取り敢えず、 明確に間違っている物だけ消して utf8.t に移動してみた。
それとも、間違える可能性のある物は全て移動した方が良かったかな……。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」 の、anthy-9100h.mkworddic_fix.tar.bz2 。

↑ の点検をしていたら、 g-jiritu-34.t の「びていこつ」に「t」が付いていないのを見つけた。
Tue,23 Jun,2009 追記:
→「vagus氏 - 丘の道を登り - 2009年06月16日 - 「昔っから」「厚」 - 【追記】6/17」。
素早い対応お疲れさまです&有り難うございます。

Wed,17 Jun,2009

ネットワークセンターにフィルタアウト食らった。
たぶん、 誰かがヘマ(ウィルス/ワームに感染)やったか、 何かやらかした(著作権侵害の動画/ソフトのダウンロード)んだろうな。 3回目だし。

毎年今頃から サーマルプロテクトによる強制クロックダウンや 熱暴走を起こし始める Let'snote CF-Y5。
今年もまた強制クロックダウンが頻発し始めた。 しかも、例年なら 1333〜1166MHz 程度(可変範囲は 最大 1666MHz、最低 125MHz)に 落とされる程度で済んでいたのに、 今年は 1000MHz とか 500MHz とかまで落とされる。 ネットブックより遅いフルスペックノートって何なんだよ……。
いつもは排気口に掃除機を当てて掃除すると、 暫くは何とかなっていたのだが、今年は全然効き目が無い。 仕方が無いので分解掃除する事にする。 リース機なので本当はマズいのだが背に腹は変えられない、 プレゼンテーション中に熱暴走で落ちる、 と言う事を又やられてはかなわないし。 余裕無いのだけどな……。
ここで、 最近のノート機の重大な特徴を忘れていた事に後になって気づく……。
取り敢えず、一般的なパターンとしては、 最初はキーボードの取り外しだろう、と言う事で、 ネジを外してキーボードを外そうとしてみる (後で判ったが、キーボード用は長いネジが8本)。 ……。 外れない。 場所的にキーボードじゃないと思うネジも外してみる。 ……。 やっぱり外れない。 壊れない程度に無理に引っ張ってテンションのかかり具合で 何が引っかかっているかを探ってみる。 ……。 キーボードが両面テープで止めてある(泣。 修理の時に、まともに分解する気無いのか……。 ……。 仕方が無いので無理にひっぺがしてみたら、 案の定、 キーボード側の土台の金属板が折れ、 本体側の目隠しのシール(防水加工らしい)が 傷だらけになってしまった。 こりゃ、修理に出した時に一発でバレるな……。
次、筐体が上下に分かれる筈。 ネジを外す。ネジを外す。ネジを外す。なんかやたらネジが多い。
HDDのフタのネジ2本と、メモリのフタのネジ1本を残して、 全部外し終わった所で、筐体を引っ張ってみる。 ……。 まだネジが何本か残っている……。 ……。 光学ドライブのフタを開けて、 右側のヘリを手前に引っ張ると外れて、 そこに Wi-Fi アンテナ固定兼用のネジ2本。 その近辺に光学ドライブのフタの軸になっている 凵型の金属棒のヒンジがあり、 凵棒は横に引っ張ると外れて、 凵棒を外すと光学ドライブのフタが外れて、 フタで半分隠れていた辺りに筐体を止めるネジが数本。 キーボードの両脇のヘリを上に引っ張ると外れて、 左側に Wi-Fi アンテナ固定兼用のネジ2本、 右側に筐体固定ネジが3本。
これでネジは全てだった。
後で判った事だが、手順としては、次に、 キーボードのフレキが生えている辺りにある、 両面テープで本体とキーボードフレキに貼り付けられている 目隠し(防水加工らしい)をはがし、 そこに有るキーボードフレキのコネクタ2つと 冷却ファンと左スピーカー共用の4ピンコネクタと 右スピーカーの2ピンコネクタ、 合計4つのコネクタを外す。
これで、ようやく本体の筐体が開く。開くのだが。
開けた途端、バキ、とか言う、イヤな音が……。 最近のノート機の重大な特徴を忘れていた。 上側筐体がヒートシンクになっていて、メインのコアに直結していた。 で、 コアとヒートシンクの間のシリコングリスがカチンコチンに乾燥していて、 それがはがれた音だったらしい。 ……。 幸い、コアに傷は無かった。

ようやく掃除ができるところまで分解できたので、 掃除機でホコリを吸い取る……、予定だったのだが。 ディスプレイと連結している左側のヒンジ部分が吸気口になっていて、 そこがホコリで埋まっていた。 それからキーボード裏側とキーボードが取り付けてあった部分に ゴミがけっこうたまっていた。 それ以外は、多少ホコリはあるものの、軽く吹いてやれば無くなる程度で、 綺麗なままだった。 ファンのフィン?の部分はかなり汚れているが、 こちらはファンのカバーがリベット止めだったので手が出せなかった。
掃除し終わった所で、 今度はコアのカチカチに固まったグリスを工業用アルコールで拭き取る。 ガーゼの買い置きが無くなっていたが、 フタを開けたまま買いに行く訳にもいかないので、 ティッシュでやったら、予想通りティッシュの飛沫が飛び散って悲惨な事に。 レンズ用ブロワーでなんとか掃除する。
コアにシリコングリスを塗って筐体の蓋を閉める。 フタを閉めた後にコア周辺がどうなったのか確認出来ないのが 凄く怖いが仕方が無い。

で。
冷却ファンから吹き出る風量?が、明らかに多くなった、 あと、冷却ファンから吹き出る風が、以前よりちょっと焦げ臭い。 キーボードが以前より熱くなった。 ACPI で見える温度はシングルコアでフルパワー運転すると 90℃、 掃除前は 92〜94℃だったと思う。 アイドル状態のまま10分くらい放置すると 58℃、 掃除前は 62〜64℃くらいだったので、 50℃台に乗ったのはかなり久しぶり。 クロックを下げた時の温度の下がり方が速くなった気がする。
結局。 分解掃除が効いたのだか効いていないのだか、 あるいは、 コアのシリコングリスの塗り直しが効いたのだか効いていないのだか、 よくわからん。

Thu,18 Jun,2009

ネットワークセンターから正式回答が来ていたらしい。 野良ftpサイトへのアタックを検出して切ったらしい。

Anthy 拙作パッチ。
こまごました不備の修正/調整が止まらなくなるジンクス。
とか書いた途端に止まるジンクス。
だがしかし、さらにそう書いた事で再発するジンクスもあるわけで。

Fri,19 Jun,2009

Anthy 拙作パッチの悪相性。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ

nosuke(のすけ)氏 - 日記みたいな何か - 2009年 6月18日 (木) - anthy-9100h.patch13Bptn23.iconv.2009617.alt-depgraph-090525
> ./mkdepgraph ./indepword.txt ./master.depword .
> Anthy: iconv initialize failed.(EUC-JISX0213->internal)
> make[2]: *** [anthy.dep] セグメンテーション違反です
> make[2]: ディレクトリ `/home/compile/anthy-9100h.patch13Bptn23.iconv.2009617.alt-depgraph-090525/depgraph' から出ます
>
> ぬぅ,iconv -l しても JISX0213 系が出てこないな.

→ 原因
configure の時は GNU glibc版 iconv を使って EUC-JISX0213 が使用可能と判定し、 ビルドの時は GNU libiconv版 iconv を使って EUC-JISX0213 の初期化に失敗している。

→ 混ざった原因
configure.ac の判定処理と src-diclib/anthy_iconv.c の実装が 微妙に違っていて、その微妙な違いが原因で リンクするライブラリが変化していた。

→ 微妙に違う内容になった原因
GNU libiconv対応版を書き上げた後に、 GNU/Linux の GNU glibc版 iconv にも対応する様に 修正していったが、その際に片方だけ修正して もう片方の修正を忘れた。

→ 対処
configure.ac の判定処理と src-diclib/anthy_iconv.c の実装を 一致させた。

Sat,20 Jun,2009

↑ anthy のパッチ。 そして再発するジンクス。
nosuke氏 - 日記みたいな何か - 2009年 6月18日 (木) - anthy-9100h.patch13Bptn23.iconv.2009617.alt-depgraph-090525」。

その1。
iconv の初期化に失敗した時のエラー処理を 書きかけのまま忘れていました。 本来の予定では、 そこは SIGSEGV ではなくて普通にエラー終了になるはずでした。

その2。
英文の内容が間違っているし。 正: iconv initialization failed.

その3。
そもそも、標準設定でビルドした時には そのエラーが出ない様にした筈だった……。
原因:
configure の時は GNU glibc版 iconv を使って EUC-JISX0213 が使用可能と判定し、 ビルドの時は GNU libiconv版 iconv を使って EUC-JISX0213 の初期化に失敗。
単純に、 configure での判定処理からの iconv 呼び出しと、 ソースコード本体での iconv 呼び出しで、 記述がずれていて、違うライブラリを呼び出してしまうポカミス。

その4。
その3の状況を故意に作り出す為に複数の libiconv をインストールして configure --with-libiconv-prefix でどれを使うのかを 変化させようとしたら、 --with-libiconv-prefix オプションの処理が不完全で 使い分けがうまくできなかったポカミスを発見。


かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ」、 その辺の処理を修正した patch13Bptn23.iconv.2009619版に更新。
2009617版の、 OS近辺の環境設定の検出を修正しただけで本体部分は変わっていないので、 2009617版で問題無く動いているならば、 更新する必要は無し。
patch13Bptn23 なパッチと iconv なパッチは 直交している(その気になれば iconv化だけのパッチも作れる)ので、 ズラズラと書いたけれども、 リビジョン名を考えるのが面倒になっただけとも言う。

しかもパッチのファイルへのリンクを張り間違えて ダウンロード出来無くなっていたし。 なんかもうボロボロ。

GNU libiconv を使う時は LIBICONV_PLUG を define するべきなのか undef するべきなのか。
libiconv の doc には一言も言及が無いし、 ヘッダファイルの説明はいまひとつ判った様な判らない様な解説。
で、結局、どちらにすりゃいいの?。
試行錯誤した結果。 BSD系は undef にしないと駄目 (define にすると iconv を見つけられなくなる)。 それから、 前述の GNU/Linux に於いて GNU/glibc版と GNU libiconv版が コンフリクトする事へ対処する為には undef にしないと駄目 (define にすると強制的に GNU glibc版を使ってしまう)。
web で検索した感じでは、 ソフトウェアの changelog にて、 「define にしていたのだけれども、 トラブルが起きるから undef に変えた」(原文は英語) と言う意味の事がいくつかみつかった。 define する派は、ざっと探した範囲では、 香り屋 氏の所の Microsoft Windows版 iconv.dll しか見つからなかった。

Let's Fire, Second Fire, GALAXY Chart.1 各¥500-。

一撃殺虫ホイホイさん 初回限定版 DVD無し ¥105-。 初回限定版の特典は DVD が付く事なのに、その DVD が付いていないと言う。

Second Fire ¥500-。

攻殻機動隊 バイリンガル版 ¥250-。

vagus氏 - 丘の道を登り - 2009年06月06日 - scim-anthy のかな入力が CapsLock ON の時に変な件 【追記】6/6, 6/21, 6/22」 の、 かな漢字変換でのキー入力にて CapsLock ON の場合、 どうなるのかの話。
下書きで長引いていたら同様の内容の追記が書かれていた……。

CapsLockキーの意味は「アルファベットを大文字にロックする」

CapsLockキー単体でロック状態変更
Shift+CapsLockでロック状態変更
CapsLockキーを押すとCtrlキーとして機能
の、どれになるかは環境設定で決める。

一般的な X の設定だと、キー押下結果は以下
操作内容                         → ソフトウェアで取得できる内容                 → 入力される内容
CapsLock off +         「e」キー →                       keycode:26, keysym:'e' → 「い」
CapsLock off +         「4」キー →                       keycode:13, keysym:'4' → 「う」
CapsLock off + Shift + 「e」キー → state:shift,          keycode:26, keysym:'E' → 「ぃ」
CapsLock off + Shift + 「4」キー → state:shift,          keycode:13, keysym:'$' → 「ぅ」
CapsLock ON  +         「e」キー → state:capslock,       keycode:26, keysym:'E' → 「ぃ」
CapsLock ON  +         「4」キー → state:capslock,       keycode:13, keysym:'4' → 「う」
CapsLock ON  + Shift + 「e」キー → state:capslock,shift, keycode:26, keysym:'e' → 「い」
CapsLock ON  + Shift + 「4」キー → state:capslock,shift, keycode:13, keysym:'$' → 「ぅ」

scim や uim のソースを確認していないので、あくまで憶測になりますが、
state や keycode は見ずに、keysym だけを見て
入力する内容を決めているのではないかと思います。

あとは、
「keysym ではなく keycode を見て入力する内容を決めるべきか」、
「入力する内容を決める時に state も見るべきか」、
等、開発の手間とそれによる利便性の向上の兼ね合い、と言う話かと。

ただ keycode を使うと、キーボードの機種によって keycode が違うとか、
xmodmap でキー配置を変えたのが反映されないとか、別の問題がありますが。

スタニスワフ・レム、ソラリス。
ファーストコンタクト物として紹介される事があるが、違う気がする。 最後、話のまとめというかオチというか、そんなものが無く、 いきなりぶった切られて終わるが、嫌な感じはしない……、 人によるか。 全体の印象としては、 スタンリー・キューブリック版 2001 Space Odyssey を彷彿とさせる。

Mon,22 Jun,2009

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
取り敢えず、 patch13Bptn23.iconv.2009619版にて、 既知の問題やトラブルやバグは潰し終わったと思うけれど。

↑ とか書いた途端に AUTHORS.patch に書き忘れが見つかる……。

Shiretokoロボ ……。 http://www.mozilla.com/en-US/firefox/3.1b1/firstrun/ http://www.mozilla.com/en-US/firefox/3.1b2/firstrun/ http://www.mozilla.com/en-US/firefox/3.5/whatsnew/ パチくさい上に桜まで……、 水上の鳥居は厳島であって知床じゃないだろ……。
なんかもう、 笑うんだか、苦笑するのだか、呆れるのだか、 よく判らない気分。
否定的な気分では無いのだが。

http://piro.sakura.ne.jp/latest/blosxom/picture/2008-12-09_shiretoko.htm こんなのもあるらしい。

↑ Firefox3.0系もロボットだったらしい。
http://www.mozilla.com/en-US/firefox/3.0b2/whatsnew/
http://www.mozilla.com/en-US/firefox/3.0b3/whatsnew/
ブリキ製に見える……。

ロボットと言えば、 ピクサーとかいうところの映画のウォーリーは、 アートディンクのハウメニィロボットや HR2 のパクリに見えて仕方が無い。
あと、ウォーリーと言ったら、さがせ!。
アートディンクのレジェンドパックは、 予想通りの本命所しか出ていないなぁ……。 私みたいな、 マイナー大好きなのか好きなものがマイナーなのかは判らないけれど、 そういう人にはつらい所。商売が成り立たないのは判るけれど。

Wed,24 Jun,2009

vagus氏 - 丘の道を登り - 2009年04月13日 - 「未完成らしい」他 【追記】4/13」、 「動詞連用形について複合語を作る接尾語の D2T?? という品詞コード」の話。
vagus氏 - 丘の道を登り - 2009年04月15日 - D2T35 を有効にする方法」、 D2T35 を有効にする方法。
vagus氏 - 丘の道を登り - 2009年05月05日 - 自作 depgraph 更新(5/4) - 出し直し(5/6)」、 D2T35 を再有効化。
nosuke(のすけ)氏 - 日記みたいな何か - 2009年 6月23日 (火) - 最近のAnthy」、 「いがいと」で「い甲斐と」が出る話。
Wed,24 Jun,2009 〜 Fri,26 Jun,2009の追記(Sun,28 Jun,2009) まで、延々長引きます。

分析:
構造としては、
「(動詞の連用形)」 + 「がい #D2T35*21 甲斐」 + 「(付属語)と」
で、「働き甲斐と」や「生き甲斐と」などの延長の形。

この場合、 「(動詞の連用形)」の部分に「い」が当てはめられているけれども、 これは、 「#KS*400 居」「#KS*200 射」「#KS*50 鋳」 などの平仮名表記である「#KS*600 い」が、
上下一段活用動詞語幹| H SyCy :0.0 @_上下一段語幹後 "" @上下一段連用形 "" @_上下一段連用形(共通) "" SyCy@
と付属語グラフが適用されて動詞連用形になった物。


「いがいと」に当てはまるそれ以外の候補は、
「いがい #T07*300 意外 #T35*300 以外 #T35*200 遺骸」
「いがいと #F14*400 意外と」
などがある。

「意外と」は 400ポイント?、
「い甲斐と」の「#KS*600 い」が 600ポイント?だけれども 付属語付きなので減点して 300ポイント?、
他の候補が 300〜200ポイント?だけれども 付属語付きなので減点して 150〜100ポイント?、
全部まとめるとスコア?の高い順に、
「意外と」(400)、「い甲斐と」(300)、(中略)、「以外と」(150)、(以下略)
になる。


……。
D2T35 や N2T35 は、スコア?評価にて、 先頭の動詞等のスコア?をそのまま用いずに減点した方が良いのかも……。

以下、スコアと並び順の生データ。

コーパス無し:
いがいと(
	意外と:(1,1000,YM,6553,Se,E:0,F:400,LF:0,D:0,L:0)82,118 ,
	い甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)63,617 ,
	いがいと:(N,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)63,515 ,
	居甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)43,142 ,
	居がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)43,040 ,
	以外と:(,1000,Nk,3276,Sk,E:0,F:300,LF:0,D:1,L:1)30,665 ,
	射甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)22,667 ,
	射がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)22,565 ,
	遺骸と:(,1000,Nk,3276,Sk,E:0,F:300,LF:0,D:1,L:1)20,428 ,
	鋳甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)7,311 ,
	鋳がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)7,209 ,
	イガイト:(N,0,-)2 ,
	イガイと:(g,0,-)2 ,
):

コーパス有り:
いがいと(
	意外と:(1,1000,YM,69579,Sy,E:0,F:400,LF:0,D:0,L:0)871,912 ,
	以外と:(,1000,Nk,67236,Sk,E:0,F:300,LF:0,D:1,L:1)632,289 ,
	遺骸と:(,1000,Nk,67236,Sk,E:0,F:300,LF:0,D:1,L:1)422,177 ,
	い甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)63,617 ,
	いがいと:(N,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)63,515 ,
	居甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)43,142 ,
	居がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)43,040 ,
	射甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)22,667 ,
	射がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)22,565 ,
	鋳甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)7,311 ,
	鋳がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)7,209 ,
	イガイト:(N,0,-)2 ,
	イガイと:(g,0,-)2 ,
):
……もしかして vagus氏とかぶった?。

anthy の拙作パッチの patch11以降の全てに於いて、 amd64(EM64T), sparc64 などで、 コーパスの検索子?の生成をミスっているバグ発見(泣。 たぶん MIPS64, PowerPC G5, IA-64 にもあてはまる。
mergesort() に入力できる配列は、 1要素のサイズが sizeof(void*)/2 以上のもの限定らしい。 が、見事に見落としていた。
コーパスの検索子?は、 ソートしておかないとコーパスの検索に失敗する事が多くなる。 のだが、 検索子?は short型の配列なので、 そのまま mergesort() してしまうと、 amd64 や sparc64 などの場合は sizeof(short) は sizeof(void*)/2 より小さいので、 mergesort() に蹴られてソートできない。 全然気付いていなかった。
FreeBSD/amd64 や OpenBSD/amd64 では、 コーパス由来と憶測される変な変換が出なかったのは、 そのせいだったのか orz。

原作版 anthy のバグ。
コーパスにて、 単語辞書に載っていない単語だか、 より短い単語が単語辞書に載っている単語だか、 を使うと、make update_params で無限ループになっている。
原作版anthy-9100h + alt-depgraph-090525 にて発症する事を確認済。
具体例:
原作版anthy-9100h + alt-depgraph-090525 にて、 corpus.1.txt の |ほぞんじょうたいの|わるい|しゃしんしか|のこってない| |保存状態の|悪い|写真しか|残ってない| を処理しようとして、 まず「ほぞんじょうたいの」の部分を作ろうとする。
最初に「ほぞん」が候補として提示され、 目的の文節より短いので文節長を伸ばして「ほぞんじ」。
まだ短いので文節長を伸ばして「ほぞんじょ」になるが、 「ほぞんじょ」は 「ほぞん」「じ」「ょ」を自動で組み合わせて作った MW_WRAP なので、 最初の単語「ほぞん」を候補として提示する。
目的の文節より短いので文節長を伸ばして「ほぞんじ」。
以下無限ループ。 対処法:その1:
word_split_info_cache の seg_border[] の仕様を変更し、 src-splitter/metaword.c の anthy_mark_border_by_metaword() を 再設計して丸ごと書き直す。
対処法:その2:
バグを発症させる単語を、コーパスで使わない。
備考:
原作版の仕様変更となる本家送付用のパッチの作成は、気が進まない。 ので、特に支障が無ければ対処法その2でテキトーにやって下さい。

原作版 anthy の潜在バグで、 かつ、拙作パッチの iconv対応版で顕在化するバグ。
make update_params で使っている calctrans にて、 src-diclib/ 関連の初期化をしないまま、処理を行っている。 その為、 拙作 iconv対応版にて iconv の初期化をしないまま iconv を使ってしまい、 SIGSEGV を起こす。
このバグ、mkdepgraph にも当てはまる。

備考:
原作版だと潜在化したままで問題にならないので、 本家送付用パッチを作る気にならない。

「いがいと」の続き。
↑*3,2,1 を治すついでに、 「動詞連用形+名詞/形容詞」でのスコアを、 「動詞連用形」のスコアから「名詞/形容詞」に変更してみた。
連用形に付加する為の「名詞/形容詞」のスコアは小さく抑えてあるので、 実質的には、文節の総合スコアも下がる筈。
元に戻したいならば、 CANDIDATE_RENYOU_SCORE_LASTWORD false にて、 「動詞連用形」のスコアを用いた計算に戻る。
かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
ジンクス発動しまくりで毎日更新状態。

Thu,25 Jun,2009追記:
↑だとあまりうまくないので、計算方法を変更。

Thu,25 Jun,2009

↑*2,1 「いがいと」、昨日の続き。
Wed,24 Jun,2009 〜 Fri,26 Jun,2009の追記(Sun,28 Jun,2009) まで、延々長引きます。

単純に 「名詞/形容詞」のスコアだけだとか、 「動詞連用形」のスコアだけだとかにすると、 どうも並び順がうまくない気がする。
ので、 相乗平均に変えてみる。 相加平均だと、スコアが大きすぎる事が判っているのでやらない。

↑ と言うわけで、 D2T?? の動詞連用形の場合の文節スコアを、
CANDIDATE_RENYOU_SCORE_FIRSTWORD、動詞部分のスコアを利用
CANDIDATE_RENYOU_SCORE_LASTWORD、名詞/形容詞部分のスコアを利用
CANDIDATE_RENYOU_SCORE_GEOMETRICMEAN、双方の相乗平均を利用
に変更。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
ジンクス発動しまくりで毎日更新状態。

相乗平均にしてコーパス無し:
いがいと(
	意外と:(1,1000,YM,6553,Se,E:0,F:400,LF:0,D:0,L:0)82,118 ,
	以外と:(,1000,Nk,3276,Sk,E:0,F:300,LF:0,D:1,L:1)30,665 ,
	遺骸と:(,1000,Nk,3276,Sk,E:0,F:300,LF:0,D:1,L:1)20,428 ,
	い甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)11,790 ,
	いがいと:(N,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)11,790 ,
	居甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)9,691 ,
	居がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)9,679 ,
	射甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)6,991 ,
	射がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)6,978 ,
	鋳甲斐と:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)3,933 ,
	鋳がいと:(,1000,Ne,3276,S-,E:0,F:21,LF:0,D:1,L:1)3,907 ,
	イガイト:(N,0,-)2 ,
	イガイと:(g,0,-)2 ,
):

まあこんなもんでしょう。
# D2T?? は、
# 多少変な候補は出る事は有っても、
# まともな候補が出る効果もあるし、
# 上記の様にパラメータチューニングで変な候補が目立たなくなったし、
# 変な候補が出ても学習でカバーできるし、
# なので、寛容派。

Fri,26 Jun,2009

人身事故の為、15分以上の遅れ。

今月の ASCII .technologies(ASCII出版)。
ありきたりの本屋で普通に平積みされている雑誌としては久しぶりに、 質が高いなぁと思ったら、 メーカーの技術者もしくはメーカーお抱えテクニカルライター?が 直接書いているらしい。
バブル頃?もちっと前からか?からの ASCII出版の質の低い記事の質の下がりっぷりはアレだからなぁ……。 それでも日経や SoftBank よりは まだ多少はマシかもしれないけれど……。
昨今の日経や ASCII や SoftBank の記事の場合、 最近の話題関連の単語を拾う以上に関しては、 著者を確認するか、記事内容の裏をとるか、してからでないと、 危なくて仕方が無いからなぁ……。 特に日経はスポンサーの行灯記事の方が多いし (人によっては日経は全部行灯記事だと言うくらいだし)……、 SoftBank に至っては著者の裏をとってからで無いと危険だし……。

ask.jp がサービス終了。
独自のデータベース(の内容)とエンジンを使っており、 競合他社と違う検索結果が返ってくるので、 比較対象用として丁度良かったのだが。

anthy-9100h + alt-depgraph-090525 謎の現象。
後で振り返ってみれば、「いがいと」の続きの話だった。 Wed,24 Jun,2009 〜 Fri,26 Jun,2009の追記(Sun,28 Jun,2009) まで、延々長引きます。
よみがなに「っ」や「ぱ」を含んでいる D2T35 が無視される……。

っぱなし #D2T35*20 っぱなし っ放し
っはなし #D2T35*20 っぱなし っ放し
ぱっなし #D2T35*20 っぱなし っ放し
はっなし #D2T35*20 っぱなし っ放し
ぱなし #D2T35*20 っぱなし っ放し
はなし #D2T35*20 っぱなし っ放し

とあった時、 「いはなし」だけ「居っ放し」の様に D2T35 が働くが、 その他は「居」に「っ放し」が付いてくれない。
原作版でも拙作パッチ版でもどちらでも変わらず。

#D2T35 で使う読み仮名と 同じ読み仮名の候補 (品詞は D2T35 や N2T35 以外なら何でも良い)が無いと、 #D2T35 は無視されるらしい。
試しに「っぱなし #KJ ×」とか言うエントリを作ってやったら、 「いっぱなし」で「居っ放し」が出る様になった。

……。
src-worddic/wtab.h にて WF_INDEP 指定されている品詞に関して、 src-splitter/wordlist.c の anthy_make_word_list_all() で wordlist を生成し、 生成された wordlist に付属語を付加して metaword を生成し、 生成された metaword 同士を連結して 「動詞連用形 + 形容詞化接尾語」(D2KY, yasui) や 「動詞連用形 + 名詞化接尾語」(D2T16, D2T35) など を生成するらしい。
従って、連用形の元になる品詞(動詞と D2KY,yasui,D2T16,D2T35)は WF_INDEP 指定されていないといけないらしい。
これ、以前、私が vagus氏に余計な事言った所かも…… ORZ。

「っぱなし #KJ ×」みたいな余計なエントリを作ると解消される理由。
wordlist を生成する時、 同じ読み仮名のエントリは縮退して1つにまとめられるので、 同じ読み仮名の候補の内、 どれか一つの品詞が WF_INDEP を持っていれば wordlist は生成されるから。   「っぱなし #D2T35*20 っ放し」にて「っぱなし」が WF_NONE でも、 「っぱなし #KJ ×」にて「っぱなし」が WF_INDEP になっていて、 WF_INDEP が実行される。

↑ そして 「|つけ|っぱなし|」と2文節に分割する事を学習した状態や、 付属語の切る位置を変更したりすると、 「点けっ放し」(つけっぱなし)や「付けっ放し」(つけっぱなし)が 生成されないオチ。
文節区切り位置の指定をして1文節で変換させようとすると、 連用形の元になる候補(動詞と D2KY,yasui,D2T16,D2T35)の段階で metaword が使用不可判定(理由:指定された文節長より短い)されてしまい、 連結した metaword も使用不可判定 (理由:構成している metaword が使用不可判定されている) されてしまうらしい。

かな漢字変換 anthy で、個人用学習データを活用して変換結果の改善を目指すパッチ
ジンクス発動しまくりで毎日更新状態。
anthy_lookup_half_wide() の返値を間違えていた事に気付いたので修正。
オプション DONOT_LEARN_EXCEPTION_WORD_AT_* にて、 よみがなと変換結果を取り違えていたので修正。
あと「っぱなし」の件をなんとかしてみた。 ……原作版 anthy だと同じ問題が出るかも、どうしよう。

↑ Sun,28 Jun,2009 追記:
後で振り返ってみれば、「いがいと」の続きの話だった。 Wed,24 Jun,2009 〜 Fri,26 Jun,2009の追記(Sun,28 Jun,2009) まで、延々長引きます。

原作版 anthy-9100h + alt-depgraph-090525 でも 全く同じ問題が発症する事を確認。

まず学習が無い状態で「つけっぱなし」を変換すると、 「付けっ放し」とか「着けっ放し」とかが、 ちゃんと候補に出る。
そこで、 「|点け|っ放し|」と2文節に分割して変換して確定し、学習させる (純粋に原作版のままだと、「点け」が2文字の文節なので、 学習が拒絶されるかも。 たしか原作版だと、学習量の節約の為(コメントにそんな感じの事が)に、 文節長が2だったか3だったか以下だと学習を拒絶した様な気が)。
再び「つけっぱなし」を変換すると、 「|点け|っ放し|」が候補に出てくるので、 「|つけっぱなし|」で1文節になる様に文節区切り位置を変更すると、 「つけっぱなし」と「ツケッパナシ」しか候補に出てこない。

対処法としては、 src-splitter/evalborder.c の metaword_constraint_check()、 case MW_CHECK_BORDER: と case MW_CHECK_WRAP: にて、 mw->can_use に ok や ng を入れている部分の判定方法を、 metaword_constraint_check() の再帰呼び出し結果を用いず、 border_check(mw, from, border) の結果だけで判定する様に 変えれば良いと思う。

こんな感じ。
--- anthy-9100h.org/src-splitter/evalborder.c	Thu Apr 19 08:29:41 2007
+++ anthy-9100h.org.alt-depgraph-090525.test/src-splitter/evalborder.c	Tue Jun 30 23:36:44 2009
@@ -64,16 +64,24 @@ metaword_constraint_check(struct splitter_context *sc,
       if (mw2)
 	metaword_constraint_check(sc, mw2, mw2->from, border);
       
+     #if 0
       if ((!mw1 || mw1->can_use == ok) && (!mw2 || mw2->can_use == ok)) {
 	mw->can_use = ok;
       } else {
 	mw->can_use = ng;
       }
+     #else
+      mw->can_use = border_check(mw, from, border) ? ok : ng;
+     #endif
     }
     break;
   case MW_CHECK_WRAP:
     metaword_constraint_check(sc, mw->mw1, from, border);
+   #if 0
     mw->can_use = mw->mw1->can_use;
+   #else
+    mw->can_use = border_check(mw, from, border) ? ok : ng;
+   #endif
     break;
   case MW_CHECK_NUMBER:
     {
拙作パッチでは if (ng_by_border <= mw1->can_use) とかやっているけれども、 現在のアルゴリズムでは、これは過剰で意味が無い。 「文節区切り位置の指定」以外の理由で、 metaword の有効無効判定を実装した場合は、 これで良いのだけれども。

牛乳に相談だ。じゃなくて、 JARO に連絡するじゃろ。じゃなくて、 vagus氏に報告しなきゃ。
要点は、
の2点、かな。

帝都高速度交通営団東京メトロが 株式上場した上で、 東京都営地下鉄と合弁?するらしい。
鉄道会社だと、電車/バス乗り放題の株主優待がよくあるが、 東京メトロもそうなるのだろうか。
JR以外の鉄道会社だと、都市中心部と郊外を結ぶパターンが多いが、 東京メトロと都営地下鉄は東京を面でおおっているから、 東京在住の人の場合、結構使いでがありそうな。
大阪市営地下鉄や名古屋市営地下鉄も、面でおおっているが、 市営だから株主優待はあり得ないし。
もっとも、大抵の鉄道会社の乗り放題な優待は、 1000万〜2000万円ぶんくらい株を持っていないと付かないから、 とても無理だが。

バトルテックリプレイ2女神たちの彷徨 ¥105-。

Sat,27 Jun,2009

ロバート L フォワード、竜の卵 Dragons egg。
最寄りの図書館には蔵書が無く、片道1時間の図書館まで出かけてようやくあった。 借りたら、ページが破れていた(泣。公共財産は大切に。
これこそ、ファーストコンタクト物の王道だと思う……、 が、分量としては、ファーストコンタクト関連よりも 異星人の文化人類学(人類じゃないけれど)?が相当多い気がする。 その割に、最後の方では、異星人を描写しきれなくなっている様な気が。
備考:
チーラ cheela
巡 とか グレート巡 とかの元の単語は不明。

Tue,01 Feb,2011 追記:

14分52.8秒		31グレート巡	4464巡		チーラの一生
28.8秒			1グレート巡	144巡		チーラの1年
0.2秒			1巡				チーラの1日
16.667ミリ秒		ダス巡		1/12巡		チーラの1時間
1.389ミリ秒		グレス巡	1/144巡		チーラの10分
115.741マイクロ秒	メス巡		1/1728巡	チーラの1分
9.645マイクロ秒		セス巡		1/20736巡	チーラの4秒
803.755ナノ秒		ブリンク	1/248832巡	チーラの一瞬

私の場合、ブラウン管、液晶、問わず、 モニタ/ディスプレイでは文章/文書を読むのは苦労する人だから、 本が痛んでいるのはかなり泣ける。

基本的に 12〜16pixel のフォントを使っているので、 アンチエイリアシング有りなんぞ目が腐る。 現在のモニタ/ディスプレイのドット密度でアンチエイリアシング有りなど、 電子銃のフォーカスが狂ったブラウン管モニタを使う様なもんだ。 24〜30pixel くらいになってくると、 アンチエイリアシング有りにしないと、だいぶ汚いけれど、 今度は表示文字数が格段に少ないし。
レーザープリンタで 300dpi とか 600dpi とかなら、 アンチエイリアシング有りにしないと、汚くて読んでいられないが、 換算すると 75〜150pixel のフォントに相当するから、 当然そうなるだろう。

GALAXY Chart.1 2枚あって¥500-。 但し片方は日焼けが酷い。

GUNDAM SingleHistory 1と2 が各¥1,950-、3が2枚あって各¥1,250-。

戦士たちの邂逅、独立愚連隊、全5冊揃って各¥105-。

GALAXY Chart.2 ¥500-、タイムセールで150円引き。

攻殻機動隊1、2 各¥105-。

SHARP の家電製品で見かけたライセンス表記。
大雑把に以下の様な感じだった。


(下記の謝辞よりも前に、 使用しているGPL,LGPLのソフトウェアコンポーネントの、 ソースの入手に関する解説が 1/4頁に渡ってつらつらと)
謝辞
本機には以下のフリーソフトウェアコンポーネントが組 み込まれています。
linux kernel
DirectFB
aka dlmalloc
modutils
OpenSSL
XMLRPC-EPI
glibc
zlib
Anti-Grain Geometry
Simple IPv4 Link-Local addressing
本機で使用しているソフトウェアのライセンス表示
ライセンス表示の義務
本機に組み込まれているソフトウェアコンポーネントに は、その著作権者がライセンス表示を義務付けているも のがあります。そうしたソフトウェアコンポーネントの ライセンス表示を、以下に掲示します。
BSD License
この製品にはカリフォルニア大学バークレイ校と、そ の寄与者によって開発されたソフトウェアが含まれて います。
SSLeay License
この製品にはEric Youngによって作成された暗号化ソフト ウェアが含まれています。
OpenSSL License
この製品には OpenSSL Toolkitにおける使用のために OpenSSL プロジェクトによって開発されたソフトウェア が含まれています。
XMLRPC-EPI
Copyright 2000(C) Epinions,Inc.
この製品に搭載のソフトウェアは、Independent JPEG Groupのソフトウェアを一部利用しております。
(上記の、謝辞からここまでで、1/2頁くらい)
(このあとに、自社開発のソフトウェアの権利と特許に関して 1/4頁に渡ってつらつらと)


GPL と LGPL の物は、ちゃんとソースが公開してあった。   けれども、ソースとソースを公開している webのページを除くと、 GPL,LGPL の内容や権利表示が何処にも記されていない。 GPL,LGPL の前文と権利表示は記する義務が有る筈だが。
BSDライセンスの表記に関して、 本当に BSD が開発したソフトウェアを使っているのだろうか、 それとも BSDライセンスを誤解しているのだろうか。   使用した、と明示しているソフトウェアの中には、 BSDが開発したソフトウェアは無いのだが。   あと、免責条項が記述されていない。 BSDライセンスは、権利表示と免責条項の両方とも (それ以外に、義務が有る事を説明する条文自身も) 記する義務が有る筈。
aka dlmalloc は、dlmalloc(aka が不要)の事だろうか。 …… Doug Lea氏本人が、 This is a version (aka dlmalloc) of malloc/free/realloc written by Doug Lea and released to the public domain, as explained at http://creativecommons.org/licenses/publicdomain. と書いているから、通称名は dlmalloc だと思うのだが。   dlmalloc の事だとしても、 わざわざ GNU glibc版 malloc を差し替える程のメリットは 無い様な……。 あとこれも、権利表示が何処にも記されていない。
Simple IPv4 Link-Local addressing と言うソフトウェアは、 見つからなかったので、何の事かは不明。
私の読み込みが足りないのか、 SHARPのこの辺の処理が投げやりもしくは間違っているのか……。

Sun,28 Jun,2009

オネアミスの1枚組の方、2枚あって¥1,950-。

ジブリの曲のベスト集みたいなやつ ¥500-。

風の谷のナウシカ イメージアルバム 鳥の人 ¥1,000-、 風の谷のナウシカ シンフォニー 風の伝説 ¥1,000-、 天空の城ラピュタ イメージアルバム 空から降ってきた少女 ¥1,000-。 イメージアルバムはサントラとは違うらしい。

バトルテックリプレイ2女神たちの彷徨、バトルテックがよくわかる本、各¥105-。

風の谷のナウシカ サウンドトラック はるかな地へ ¥1,250-、 風の谷のナウシカ シンフォニー 風の伝説 ¥1,250-、 天空の城ラピュタ サウンドトラック 飛行石の謎 ¥1,250-、 天空の城ラピュタ シンフォニー 大樹 ¥1,250-、 魔女の宅急便 サントラ音楽集 ¥1,250-、 千と千尋の神隠し イメージアルバム ¥950-、 タイムセールで500円引き。

狭山丘陵から 50km内、 七国山(標高 128.6m)がある七国山緑地に サナトリウム(旧:結核療養所)が実在するが、 これはトトロの七国山病院とは全然関係無いらしい。
トトロのネタ元は 八国山(標高 89.4m)がある八国山緑地のサナトリウムらしい。
七国山も八国山もどちらも、新田義貞の鎌倉攻めの史跡らしい。

ススワタリにアイロン持たせたらサンド=ウォームになっちゃうよなぁ……。

君は天然色、大滝詠一、1981.3.21。 天然色って 8bit*3原色中 4096色ですか?。

anthy 「こんど」。
「こんどこそ」で変換したら、「今渡こそ」が第1候補だった。
学習データを確認してみたら、 以前、誤変換して誤学習したのを、 今までずっと気付かないでいたらしい。 ちなみに、「今渡」(こんど)は人名らしい。
この手の誤変換を防ぐには、どうしたらいいのだろう……。 どうしようもないか……。
理想論?としては、 ToolTip で品詞を表示するとか、なんだろうけれど……。 フロントエンドのソフトの仕様変更とか大幅改造とかが必須になるしなぁ。

Tue,30 Jun,2009

MS-Windows XP。
ブルーバックになって起動しないので助けてくれと泣きつかれた。
見てみたら、カーネル回りの起動中に DEP違反で死んでいた。   何をやったのだかは不明。 プロテクト付きのデバイスドライバが死んだのか?。 スクランブル付きの ウィルス/ワーム/ボットネットにでもやられたのか?。
カーネル直近なので、 セーフモードでもブルーバックになってしまい起動しない。 前回正常起動時うんぬんでも駄目。
問題の DEP違反をやらかしているソフトウェアを消してやれば 起動する様になるのだが、 起動しないと消す事が出来ない。 見事にデッドロック。
バックアップもとっていないと言うから、 再インストールからやりなおす手も駄目。
リカバリディスクなんぞ気の利いたものは無いし、 当然レジストリのバックアップも無いし、 MS-Windows のインストールCD のリカバリモードで起動しようとしても Administrator のパスワードが判らないとか言われて作業できない。 対象は NTFS なので、 *BSD や GNU/Linux から msdosfs でマウントして 強引に書き変える方法は使えないし、 *BSD や GNU/Linux の NTFSドライバはまだ実験版指定されているから バックアップの無いディスクを ntfsマウントで操作するのは嫌。
あああもう。

↑ 他に手が無いので、NTFSマウントで chntpw しようとしたら、 非常用に作っておいた救助用ディスクのバージョンが古くて SATA を認識してくれなかった。
EBCD辺りの最新版に更新しようかと思ったら、 EBCD Emergency Boot CD が有料化していた。
あ゛あ゛あ゛。

↑ これで問題の対象が、 暗号化NTFS とか圧縮NTFS とかだったら終わりだな。 TPMが、かかっていない事は確認済みなのだが……。

↑*2 取り敢えず、ざっと探した所では、 SystemRescueCD と言う、 GNU/Linux の Gentoo系ディストリビューション の ライブCD が、 この手の用途に使えそうなのを見つけた。   Dragonfly BSD とか KNOPPIX とか Ubuntu とか Puppy とかは、 ntfs-3g や chntpw が標準では入っていないので却下。 自前ライブCDを作るのはメンテナンスが面倒なので却下。   ただ、GNU/Linuxベースだと FFS, UFS2 辺りが弱いのだよなぁ。
CD に焼く為のドライブやメディアの点検をしようとしたら、 Nero CD-DVD Speed がインストールされていなかった。 ダウンロードしようとしたら、Nero CD-DVD Speed も有料化していた。
う゛か゛あ゛。

↑ 昔のバックアップの中から無料版だった頃の Nero CD-DVD Speed を探し出してきて動かしたら、 ドライブを認識しなかった。
以前は ASPI ドライバをインストールし忘れる、 と言う事をやった事もあったが、今回はちゃんと入れた。
……。
ASPI ドライバが IDE/EIDE/SCSI 用で、USB接続には非対応だった。 この内蔵光学ドライブ、中で USB でつながっているらしい。

↑ そして Nero CD-DVD Speed でメディアをチェック。
……。
メディアが DVD-R だった……。
CD-R にしては珍しくアゾ系だな、とは思ったのだけど。
なんかもうだめ。

備考:
DVDメディアの製造情報?を調べる場合、 Nero CD-DVD Speed より DVD Identifier の方が良いらしい。

What is a meaning of "あのれシヰホ"? Japanese do not understand it at all.
海外のサイトにあった日本語フォントのサンプルで、 「あのれシヰホ」と書いてあるのだが、何なのだろう?。
web で「あのれシヰホ」を検索してみた所、 http://warau1116.exblog.jp/9315440/ こんなのが見つかったが、やっぱり全く意味が判らない。
とあるフォントのサンプルのページに、 意味が書いてあった。
「The characters used for the font samples do not necessarily form words but were chosen for visual variety:」 (超訳:てきとーに見た目で選んだ文字だから意味は無いよ。)
だと。 漢字バージョンだと「平雪迎骨水直」らしい。


2009年の3に続く。


FENIX HomePage
G-HAL HomePage
Mail to, メールはこちらへ
Suggestion Box, 投書箱
BBS, 掲示板 UserName:BBS、Password:BBS
(C) 2009 G-HAL