Yahooの日本語形態素解析をつかってみる

この方法では

文を文節に分けるにはどうすればいいのでしょうか?

文/を/文節/に/分ける/に/は/どう/すれ/ば/いい/の/でしょ/う/か/?

とずいぶん細かく分かれてしまいます。これを

文を/文節に/分けるには/どうすれば/いいのでしょうか?

とわけるにはどうすればいいのでしょうか?

Yahoo! JAPANが提供するテキスト解析WebAPIには「日本語係り受け解析」があります。これをつかうと日本語文の係り受け関係を解析することができます。

文を -> 分けるには
文節に -> 分けるには
分けるには -> いいので
どう -> すれば
すれば -> いいので
いいので -> しょうか?
しょうか? -> 文末

これは係り受けの関係を解析するとともに、文を文節にわけることにも使えます。

リクエストUrlは

https://jlp.yahooapis.jp/DAService/V1/parse

パラメーターは以下のようになっています。

appid(必須) string アプリケーションID。
sentence(必須) string 解析対象のテキストです。

そこで

これで結果をうけとることができます。

MorphemListのなかのSurfaceをつなげれば文節になります。他は必要ありません。

まず、XmlDocument.SelectNodesでMorphemListを取得して、あとはそのなかからMorphemを取得してSurfaceをつなぎ合わせます。得られた文節はリストに格納します。

これをつなぎ合わせると文を文節に分解したときの結果が表示されます。

ただ一度に大量のデータをおくることができません。1リクエストの最大サイズは4KBに制限されています。そこで複数の文を解析する場合は分割して送ることになります。

日本語係り受け解析Web APIは、24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限となっています。やり過ぎには気をつけましょう。