簡単なものから行きます。
「@_サ変連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」「@_補動「やる」(複合・可動)」「@_補動「やる」(複合・音便・可動)」は、あまり使われない & 入れると誤変換しそうだと思ったので今のところ全部外してありますが、あった方がいいでしょうか?
「@_上下一段連用形(共通)」から遷移しようとしている「@_補動「やる」(複合・可動)」
が、無い。 と思ったら、コメントアウトしてあった。
@「たら」終助これらも確かに全部未使用です(一応、チェックスクリプト作ってあって、すべて把握済み)。定義だけ作って、実際にはどこにも接続させてません。結構微妙なものたちなので…。
@「たら」副助
@「ちゃ」接助(引用)
@「ほど」副助(準体)
@補動「ある」終止形I
が、未使用
「こんな #RT*400 こんな」は、「WF」(FLAG)のフィールドは実際には使われてない気がします。ptab.h と wtab.h とでここが違っていても同じものと見なされるような…(全品詞そうなのかどうかは分かりませんが。「一つの活用形に複数の読みがある場合」の時もこれでちょっとハマった)。
src-worddic/wtab.h:{"#RT",POS_ME,COS_NONE,SCOS_NONE,CC_NONE,CT_NONE,WF_INDEP /* "連体詞"*/},
……、開始ノードがみつからない。 "連体詞" だと WF_INDEP の部分が違う。
なので、実際には "連体詞" が使われてるんじゃないかと。
anthy-agent の出力の見方がよく分かってませんが、「8」は「POS_ME」で連体詞の品詞コード、でも「flags=0」。「0」は「WF_NONE」、「4」が「WF_INDEP」。wtab.h では「WF_INDEP」、ptab.h では「WF_NONE」なので、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)
{"#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
【関連する記事】
# そちらでの認識と処理結果が一致した、と言う事は、ちゃんと動作している、と言う事で……。
ループそれ自体も、ユーザがその内容を入力しない限り影響が出ないと思いますし、そんな内容を入力するわけも無いので、放置で良いかと思います。むしろその処置が負担になってしまう事の方が問題かと……。
連体詞とか ptab.h と wtab.h とか WF_* とかは、私もよく判っていないので、ソースを追いかけている所です。
# 「リン_オンテXT」は、「PRINT_CONTEXT」を無理矢理にかな変換した物だと思います。
「切れ」と「っす」の件は、対応有り難うございます。
なお、「っす」は、以前の、補助動詞が別文節になるのと同様に、別文節にすべきかも、と迷っていた所です。
あと、区切り位置指定と文末属性は、お役に立った様で幸いです。
そうさせて頂きますw (あまり真面目に受け止めるとダメージ大きいので…)
> 連体詞とか ptab.h と wtab.h とか WF_* とかは、私もよく判っていないので、ソースを追いかけている所です。
余計な作業を増やしてしまったようですみません…。
> # 「リン_オンテXT」は、「PRINT_CONTEXT」を無理矢理にかな変換した物だと思います。
あ、なるほど… orz
> 「切れ」と「っす」の件は、対応有り難うございます。
こちらこそ、ご報告有難うございました。
> なお、「っす」は、以前の、補助動詞が別文節になるのと同様に、別文節にすべきかも、と迷っていた所です。
恐らく大丈夫だと思うので、一度やってみます。
> あと、区切り位置指定と文末属性は、お役に立った様で幸いです。
役に立つかどうかは正直微妙かもしれませんが、それでも実地に試せるようになったというのは、大きいと思います。自分では絶対できないことなので、本当に有難うございました。
処理内容は以下の通りでした。
付属語を付加しようとしている単語に関して、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 になっていないと、不一致と判定される。
> ptab.h で *_NONE と指定された項目は、判定に用いない(ワイルドカード)。
そっか。だからここでは区別できなかったのか。
その他の点も非常に参考になりました m(_ _)m