ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog

テクノロジー

日本語形態素解析APIとマッシュアップ

テキスト解析API企画担当のS・Kです。

当ブログにおいて一般の開発者の皆様にYahoo! JAPANの高度な日本語処理技術をマッシュアップにお役立ていただけるよう、なじみの薄い日本語処理用語の解説や一般的なご利用方法をお伝えしていきたいと思います。

先日、弊社も協力企業として参加しましたMashup Award4において、Technology賞を受賞され注目を集めました「Newsgraphy」様にも日本語形態素解析APIをご利用いただいております。

そもそも、形態素解析とは、、

言語として意味を成す最小単位の文字列のことを「形態素」と呼び、ある文章をその形態素に分けていく解析のことを「形態素解析」と呼びます。

うーん、なんだか難しいですね。

たとえば、「庭には二羽ニワトリがいる。」を形態素解析いたしますと、以下の形態素に分けられます。

「庭」「に」「は」「二」「羽」「ニワトリ」「が」「いる」「。」

形態素はそれぞれに品詞情報も持っていますので、上記の形態素群もそれぞれ名詞や助詞、動詞などの品詞情報を持っています。

こういったことが出来ると、マッシュアップで何がうれしいのか!?

それは、、、

形態素の品詞情報を使って、プログラムで文章の意味をある程度、とらえることが出来るようになるのです!

先ほど、ご紹介いたしました「Newsgraphy」様でのご利用方法は、Yahoo!ニュースのトピックスAPIを利用して、そのレスポンスデータの「title」を形態素解析し、その中から品詞情報を取り出すことで、人名、地名、組織を判断し、Yahoo!のニュースタイトルに対して、「人」「場所」「組織」といったニュースの属性に応じたアイコンを「Newsgraphy」上でマッピングしていると思われます。

実際に日本語形態素解析APIのリクエストとレスポンスを見てみましょう。

まず最初にリクエストを構築します。

http://jlp.yahooapis.jp/MAService/V1/parse?appid="あなたのアプリケーションID"

今回は解析した形態素の出現頻度などは考慮せず、シンプルに形態素に着目します。
よって、形態素解析の結果を得るために「results」に「ma」を指定します。

「人」「場所」「組織」といったカテゴリに属する品詞情報を取得したいので、「response」には、表記を表す「surface」、品詞を返す「pos」、全情報を返す「feature」を指定します。

http://jlp.yahooapis.jp/MAService/V1/parse?appid="あなたのアプリケーションID"&results=ma&responce=surface,pos,feature

そして、肝心の解析対象の文章を指定します。
今回は「人」「場所」「組織」を要素を持つ以下の文章で解析してみましょう。

「山田太郎は永田町の外務省に勤めています。」

この文章をリクエスト用にUTF-8でエンコードしたものを「sentence」に持たせます。

http://jlp.yahooapis.jp/MAService/V1/parse?appid="あなたのアプリケーションID"&results=ma&response=surface,pos,feature&sentence=%E5%B1%B1%E7%94%B0%E5%A4%AA%E9%83%8E%E3%81%AF%E6%B0%B8%E7%94%B0%E7%94%BA%E3%81%AE%E5%A4%96%E5%8B%99%E7%9C%81%E3%81%AB%E5%8B%A4%E3%82%81%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

解析されたレスポンスに「人」「場所」「組織」に該当する情報が含まれているか確認してみましょう。
上述の文章に持たせていた「人」「場所」「組織」にあたるのは以下のキーワード。

「人」:「山田太郎」
「場所」:「永田町」
「組織」:「外務省」

該当しそうな箇所の形態素解析の結果は、、、

「山田」:「pos」=「名詞」「feature」=「名詞,人姓,*,山田,やまだ,山田」
「太郎」:「pos」=「名詞」「feature」=「名詞,人名,*,太郎,たろう,太郎」
「永田町」:「pos」=「名詞」「feature」=「名詞,地名,*,永田町,ながたちょう,永田町」
「外務省」:「pos」=「名詞」「feature」=「名詞,組織,*,外務省,がいむしょう,外務省」

※注
2008年11月現在の解析結果となっています。上記内容が変ることがあります。

解析結果のうち、「feature」に「人姓」「人名」「地名」「組織」が含まれています。
これらのレスポンスを元に「Newsgraphy」様はアイコンをマッピングしているのですね。

さらに一歩進めて、品詞情報の出現頻度もレスポンスで受け取るようにすることで、解析対象の文章の中で、どの品詞の出現頻度が高いかを見れば、

文章中に「人」「場所」「組織」の3種が含まれていても、最も出現頻度が高いものの優先度を高く付けることもなども可能です。

今回は「Newsgraphy」様の活用方法を例に挙げさせて頂きましたが、このような日本語文を扱うマッシュアップサービスを作成される場合は、日本語形態素解析APIは非常に強力です!

今後も活用事例など皆様にご紹介していきます。

日本語形態素解析APIの機能は皆さんの優れたアイデアを後押しします!
是非とも、日本語形態素解析APIをご活用下さい!!

(2009年3月9日追記) >>「日本語係り受け解析APIとマッシュアップ」へ

こちらの記事のご感想を聞かせください。

  • 学びがある
  • わかりやすい
  • 新しい視点

ご感想ありがとうございました

このページの先頭へ