2009年05月10日

応答いろいろ

こちらへの応答。

簡単なものから行きます。
「@_サ変連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」
「@_上下一段連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」
が、無い。 と思ったら、コメントアウトしてあった。
「@_補動「やる」(複合・可動)」「@_補動「やる」(複合・音便・可動)」は、あまり使われない & 入れると誤変換しそうだと思ったので今のところ全部外してありますが、あった方がいいでしょうか?
@「たら」終助
@「たら」副助
@「ちゃ」接助(引用)
@「ほど」副助(準体)
@補動「ある」終止形I
が、未使用
これらも確かに全部未使用です(一応、チェックスクリプト作ってあって、すべて把握済み)。定義だけ作って、実際にはどこにも接続させてません。結構微妙なものたちなので…。
「こんな #RT*400 こんな」は、
src-worddic/wtab.h:{"#RT",POS_ME,COS_NONE,SCOS_NONE,CC_NONE,CT_NONE,WF_INDEP /* "連体詞"*/},
……、開始ノードがみつからない。 "連体詞" だと WF_INDEP の部分が違う。
「WF」(FLAG)のフィールドは実際には使われてない気がします。ptab.h と wtab.h とでここが違っていても同じものと見なされるような…(全品詞そうなのかどうかは分かりませんが。「一つの活用形に複数の読みがある場合」の時もこれでちょっとハマった)。
なので、実際には "連体詞" が使われてるんじゃないかと。
$ ANTHY_ENABLE_DEBUG_PRINT=y ANTHY_SPLITTER_PRINT=w anthy-agent --anonymous << EOS
> konnnabasho
> (space)
> PRINT_CONTEXT
> EOS
(中略)
.こん.-(POS=1,COS=0,SCOS=0,CC=0,CT=0,flags=4)
名詞+終端
.こん.-な(POS=1,COS=0,SCOS=45,CC=0,CT=0,flags=4)
連体修飾
.こん.-(POS=1,COS=0,SCOS=45,CC=0,CT=0,flags=4)
名詞+終端
.こん.-な(POS=1,COS=3,SCOS=0,CC=0,CT=0,flags=4)
連体修飾
.こん.-(POS=1,COS=3,SCOS=0,CC=0,CT=0,flags=4)
名詞+終端
.こん.-(POS=13,COS=0,SCOS=0,CC=0,CT=0,flags=0)
単漢字
.こんな.-(POS=1,COS=0,SCOS=0,CC=0,CT=0,flags=4)
名詞+終端
.こんな.-(POS=1,COS=0,SCOS=45,CC=0,CT=0,flags=4)
名詞+終端
.こんな.-(POS=8,COS=0,SCOS=0,CC=0,CT=0,flags=0)
連体修飾
(3 ((UL RV) "こんな" 0 11) ((UL) "場所" 0 5))
(2 ((COMMIT) "こんな場所") ((UL) "リン_オンテ" -1 -1) ((UL) "XT" -1 -1) cursor)
anthy-agent の出力の見方がよく分かってませんが、「8」は「POS_ME」で連体詞の品詞コード、でも「flags=0」。「0」は「WF_NONE」、「4」が「WF_INDEP」。wtab.h では「WF_INDEP」、ptab.h では「WF_NONE」なので、wtab.h の
{"#RT",POS_ME,COS_NONE,SCOS_NONE,CC_NONE,CT_NONE,WF_INDEP /* "連体詞"*/},
から ptab.h の
{"連体詞",POS_ME,COS_NONE,SCOS_NONE,CC_NONE,CT_NONE,WF_NONE},
をちゃんと引っ張ってきているように見えます。

よく分かりませんが、WF は、少なくとも wtab.h と ptab.h との突き合わせの際には使われていないようです。

とりあえず、wtab.h と ptab.h で違ってるのは混乱の元なので ptab.h の方を「WF_INDEP」に直しておきます。

# 最後の「"リン_オンテ"」って何だ?

「燃料切れ」「弾切れ」「切れ」は辞書に登録しました。

「〜っす{か|ね|よ}」は、ちょうど自分も「マジっすか」が出せないことに気づいて「でも砕けすぎか」と迷っていた所でした。多分それほど誤変換もしない気がするので、入れてみます。多分助動詞「です」の音便化だと思われます。


最後。
「いいのね」で始まる物だけで検索してみた所。
Loop: する仮定形「すりゃ」|いいのねーってだけならばですからみたいじゃそうじゃしでにらしいかからみたいだのじゃないながらのようじゃとするべからざるままであるまいなんぞとさえもなさそうじゃとかのないくらいまでなんてものへなんかからとのなどは HnS Cg :0.3 @する仮定形「すりゃ」 "" @_補形「いい」 (中略)
みたいに長い物が大量に有った。 しかも、この例だと 「いいのねーってだけ」の後に、 「ならばですからみたいじゃそうじゃしでにらしいかからみたいだのじゃないながらのようじゃとするべからざるままであるまいなんぞとさえもなさそうじゃとかのないくらいまでなんてものへなんかからとのなどは」 が無限ループする。

超 orz
ある程度予想はしていたものの、実際に見せられると鬱になる…。

基本的に、今の「直後のノードしか指定できない(次の次を指定できない)」形式では、ループを根絶するのは事実上不可能だと思ってます。やろうとすると、メンテする気が一切起きなくなるくらい煩瑣になる。
また、ループがあっても、通常使用時に動作が重くなったりするのでないかぎり、必死になってなくそうとしなくてもいいのではないかと思ってます。

# 少し前に試したところ、原作 depgraph と alt-depgraph とでは、変換の速さにはほとんど差がなかった

なので、日本語としておかしな接続がないか、誤変換を回避するために一文節で出すようにしていたもので、消しても大丈夫なものがないか、だけをチェックすることにします。depgraphdump.cc も使わせて頂いて。

うー、超鬱だ… orz
posted by vagus at 20:06| 東京 ☀| Comment(4) | TrackBack(0) | 日本語入力 - アプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントアウトしてある物とか、未使用の物とか、すごい長い物とか、ループとかは、試作してみた depgraphdump.cc の動作確認として、あちこち覗いてみただけなので、お気になさらないで下さい。
# そちらでの認識と処理結果が一致した、と言う事は、ちゃんと動作している、と言う事で……。
ループそれ自体も、ユーザがその内容を入力しない限り影響が出ないと思いますし、そんな内容を入力するわけも無いので、放置で良いかと思います。むしろその処置が負担になってしまう事の方が問題かと……。

連体詞とか ptab.h と wtab.h とか WF_* とかは、私もよく判っていないので、ソースを追いかけている所です。

# 「リン_オンテXT」は、「PRINT_CONTEXT」を無理矢理にかな変換した物だと思います。

「切れ」と「っす」の件は、対応有り難うございます。
なお、「っす」は、以前の、補助動詞が別文節になるのと同様に、別文節にすべきかも、と迷っていた所です。

あと、区切り位置指定と文末属性は、お役に立った様で幸いです。
Posted by G-HAL at 2009年05月11日 01:10
> あちこち覗いてみただけなので、お気になさらないで下さい。

そうさせて頂きますw (あまり真面目に受け止めるとダメージ大きいので…)

> 連体詞とか ptab.h と wtab.h とか WF_* とかは、私もよく判っていないので、ソースを追いかけている所です。

余計な作業を増やしてしまったようですみません…。

> # 「リン_オンテXT」は、「PRINT_CONTEXT」を無理矢理にかな変換した物だと思います。

あ、なるほど… orz

> 「切れ」と「っす」の件は、対応有り難うございます。

こちらこそ、ご報告有難うございました。

> なお、「っす」は、以前の、補助動詞が別文節になるのと同様に、別文節にすべきかも、と迷っていた所です。

恐らく大丈夫だと思うので、一度やってみます。

> あと、区切り位置指定と文末属性は、お役に立った様で幸いです。

役に立つかどうかは正直微妙かもしれませんが、それでも実地に試せるようになったというのは、大きいと思います。自分では絶対できないことなので、本当に有難うございました。
Posted by vagus at 2009年05月11日 01:34
wtab.h から ptab.h へ、どの様に引っ張っているかの件ですが、御指摘の通り、WF は使用しておらず #RT からは "連体詞" に行っていました。
処理内容は以下の通りでした。


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

判定では、pos, cc, ct, cos, scos が使われ、wf は使われない。
ptab.h で *_NONE と指定された項目は、判定に用いない(ワイルドカード)。
ptab.h で *_NONE 以外の指定をされた項目は、単語の wtype_t(wtab.h)でも同じ指定になっていないと、不一致と判定される。
単語の wtype_t(wtab.h)で *_NONE と指定された項目は、ptab.h でも *_NONE になっていないと、不一致と判定される。
Posted by G-HAL at 2009年05月17日 00:46
わざわざ有り難うございます。

> ptab.h で *_NONE と指定された項目は、判定に用いない(ワイルドカード)。

そっか。だからここでは区別できなかったのか。

その他の点も非常に参考になりました m(_ _)m
Posted by vagus at 2009年05月18日 00:58
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック