最初にお断りしておきますが、今回もパッチはありません。ちゃんと直すとなるとかなり大きな修正になるので。
似たようなのを試してみると分かりますが、本来の目的は「飛ばす」「撃たす」「動かす」「負かす」等の動詞を出すことだと思われます。
depgraph 的には、
動詞語幹→未然形→@せる("し")→@てとなっているようです。
これだと色々不味いのですが、その説明は端折ります。
これを見て最初に思うのは、「動かす」「飛ばす」のこの語尾の「す」は使役の助動詞「す/さす」の「す」なのか、それとも「動かす」で一語の動詞なのか、ということです。
「す/さす」は「せる/させる」の文語形で、「す」の活用を見ると「せ/せ/す/する/すれ/せよ」となっています。一方、「動かす」を活用させてみると、未然形は「動か"さ"ない」なので、既に違います。連用形も「動か"し"た」ですし、連体形「動か"す"人」仮定形「動か"せ"ば」なのでこれらも違います。
従って、語尾が「aす」の形のものは depgraph で対応するのではなく、一語のサ行五段動詞として辞書に登録すべきだ、ということになります(正確には「使役」ではなく「他動詞」ということになるみたいです)。
(【追記】12/21 「aす」が全部他動詞だとは言い切れない気がしてきた)
ちなみに、これ系の動詞は去年の春くらいに探して登録したような記憶が(おぼろげに)あるので、多分それなりには登録されているんじゃないかと思います。でも、記憶が怪しいので、もしかしたら「やらなきゃ」と思っていたのがいつの間にか「やった」に変わってしまっただけかもしれません。
また、depgraph では「さす」は出せるようになってなかったと思うので、「さす」が付くもの(一段動詞やカ変)を「なげさ #S5 投げさ」のように「さ」まで含めた形で登録しているかも知れない、という気がしなくもないです(この辺もまた一回全部確認しないとなあ…)。(【追記】12/18 辞書に登録するんだったらそれでいいんだった)
そんなわけで、要するに、「撃たす」「飛ばす」を出せるようにしたかったんだろうけど、対応をマズってて変なのが出ちゃってる、ということだと思います。
さて、話は変わりますが、ここまで「買えして」にだけ触れていないことに気づいた方は鋭いです。実は、「買えして」には更に別の問題があるので、あえてここまで触れませんでした。
「買える」というのは「買う」が一段動詞化した可能動詞という奴ですが、anthy では基本的に可能動詞を depgraph で出すようになっています。たとえば、辞書に「か #W5 買」という五段動詞が登録されていれば、語幹「買」に「え/え/える/える/えれ/えろ」という活用語尾をつけて「買える」を出す、という感じです。
しかしまず、すべての五段動詞が可能動詞になるわけではないと思うので、これだとありえない候補ができてちょっと不味いです。また、「買える」と「帰る」「返る」「変える」、「行ける」と「生ける」(花を生ける)、「使える」と「仕える」のように可能動詞と普通の一段動詞とが同じ読みになる場合がありますが、その場合にどっちを優先して出すかを頻度によってコントロールすることが出来ません。
この「候補の並び順をコントロールしたい」というのがあって、実は「買える」とか一部の可能動詞は辞書に登録してあったりします(数は少ないです)。なので、もし現行の depgraph を修正したとしても、「買えして」は出続けてしまいます。
ついでなのでバラしますと、
候補の並び順もコーパスからの情報でやるようになって、辞書の頻度があまり効かなくなりましたので、先日、とりあえず「買える」などの可能動詞は手元の辞書ファイルからは消しました。
ただ、上記のように、depgraph で対応するのはあまりいいやり方ではないと思ってます。
実は以前可能動詞がどうのと騒いでいた時に、この辺を対処しようとしていました。
その時やろうとしていたのは、
・可能動詞も辞書に登録
→ ありえないものを弾ける
→ 並び順を(ある程度)コントロールできる
・登録するには可能動詞用の品詞コードが必要、更に anthy 側もそれに対応させる必要がある
→ やり方は一応分かっていたつもり
ということだったんですが、この時は前にちょっと書いたように、何故か反映されないものがあって、それがなぜか分からずに、そこで挫折しました。
しかし、それも G-HAL 氏に修正点を教えていただいたので、今は時間さえあればできます(恐らく…)。
が、同音になるのに並び順をコントロールできないのは何も可能動詞の場合だけではありません。たとえば、「疲れる」と「突かれる」(「突く」+助動詞「れる」)のように付属語が付くと同じ読みになるものもありますし、「有って」(ラ行五段+助詞「て」)と「会って」(ワ行五段+助詞「て」)のように活用タイプは異なるが同じ読みになるものもあります。
「会って」を出したいのに「有って」が出てきたり、「疲れる」を出したいのに「突かれる」ならまだしも、「付かれる」というどちらかというとマイナーなのが出てくると、結構イラつきます。
他にも「主に受身や否定の形で使われ(従って未然形)、他の活用形はあまり使われない」というようなもの、「現在では連用形のみ残っている」というようなものもありますが、辞書に登録するのは語幹だけなので、頻度も語幹に対して付けるしかありません。「ある活用形ではよく使われるから」と高い頻度を付けると、それが他の活用形にも反映されるので、ほとんど使われない活用形も上に来てしまうでしょう。かといって、低い頻度にすると今度はよく使われる活用形でも下の方になる可能性が高くなります。
そういったことを考えると、いっそのこと、活用語は各活用形を登録して、その一つ一つに頻度を付けるようにしたくなります。
(ちなみにこうすると mecab 用辞書として使えるようになるために一歩前進します。尤も、他にも問題があるので道のりはまだ遠いですが)。
(もっと言うと、「書いて」と「買い手」のように品詞の異なるものが同じ読みになることもありますが、さすがにこれは諦めます)。
やろうと思えば多分できると思うんですが、また期間も、集中してやれば 7〜10日くらいで行けると思うんですが、まだちょっと気持ち的に踏ん切れないのは、
・辞書サイズがデカくなる
・候補の並び順もかなりの部分が corpus 次第ならやってもあまり効果ないかも
・メンテが大変になる気がする
・やったとして、anthy 本家にこんな大幅な変更を求めていいのか
・Canna はどうする
・そもそも「これはある、こいつはない」とはっきり分けられるのか(「ほとんどないけど、言えなくもない」というような判断のつきかねるものをどうするか)
といったところで引っ掛かってるからです。
まぁ、それより今は早く depgraph にケリをつけたい。それから考えます。
と言っても、もし上記の変更をしたら depgraph もまたそれに合わせて修正しなきゃならんのですけどね(w
とりあえず、こんな事情があってこんなことを考えとりますよということを nosuke さんの疑問に便乗して説明してみました。
【追記】
本当に「『やった』に変わっただけ」かもしれん…
「打たす」「投げさす」とか基本的なのも入ってなかった… orz
【関連する記事】