エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

主語と述語の判定が難しい。。。

前回記事

suzaku-tec.hatenadiary.jp

難しい

主語が複数出てきたり、主語っぽいけど、文全体を見たら主語じゃないってのが面倒くさい。。。

面倒くさいパターン

「~こと」、「~いる」ってのが、動詞・助動詞の判断だけでは述語認定できないようになっている。

「~こと」

例えば、「言うことを信じない。」とか。
文節分けすると、「言う/ことを/信じない。」ってなる。
そうすると、動詞は「言う」「信じる」だから、述語は「言う」「信じない」の文節が助動詞になる気がするが、違う。
「言う」は、後述の文節に「こと」が付いているため、名詞と同じような扱いになる。
そのため、「言うことを信じない。」は、述語は「信じない。」だけになる。

「~いる」

これは、なんとなく予想が付く。
英語で言う現在進行系だね。
日本語を形態素解析すると、単語的に別れてしまうのが、ものすごく痛い。。。
だから、扱いとしては、「~いる」でつながっている動詞は、一つの単語として扱う必要がある。
だけど、文節的には別々になるから、いろいろと面倒くさい。

例えば、「待ち望んでいる。」って文章。
文節分けは、「待ち望んで/いる。」になる。
しかし、述語として扱えるのは、「いる」だけ。
だから、後続で「いる」がある場合は、述語として扱わないようにする必要がある。

ちなみに

アルゴリズムとしては、下記のようにして回避した。

  1. 文節分け
  2. 文節単位で述語になりそうなものを述語候補としてマーキング
  3. マーキングしたものを文節の前後関係を見て、述語として扱うか確定する。

1度クッション置いて回避するようにした。
いっぺんにやろうとしたけど、脳みそが足らなかったので、うまい方法が思いつかなかったわ。。。

実は、もっと最適な回答がありそうな気がする。

参考サイト

Japanese