ネットサービスとかGoogleとか豆知識とか。

Index > API > Yahoo!の形態素解析APIを使って人物名を名字と名前に分割する
API
2010年07月10日 03:04

Yahoo!の形態素解析APIを使って人物名を名字と名前に分割する

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

ちょっと人物名を「名字」と「名前」に分割する必要があって何を使おうかなぁと5分くらい悩んでいたのですが、Yahoo!の形態素解析APIを使ってみるとあっさりできました。

やり方

真中瞳さんが「東風万智子」という芸名で活動を再開したらしいので「東風万智子」をクエリにしてみます。

リクエストするURLは以下のような感じ。

http://jlp.yahooapis.jp/MAService/V1/parse?appid=アプリケーションID&results=ma
&sentence=%E6%9D%B1%E9%A2%A8%E4%B8%87%E6%99%BA%E5%AD%90

アプリケーションIDをセットしてこのURLをリクエストすると、以下のようなレスポンスが返ってきます。

<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns="urn:yahoo:jp:jlp"
           xsi:schemaLocation="urn:yahoo:jp:jlp http://jlp.yahooapis.jp/MAService/V1/parseResponse.xsd">
  <ma_result>
    <total_count>2</total_count>
    <filtered_count>2</filtered_count>
    <word_list>
      <word>
        <surface>東風</surface>
        <reading>こち</reading>
        <pos>名詞</pos>
      </word>
      <word>
        <surface>万智子</surface>
        <reading>まちこ</reading>
        <pos>名詞</pos>
      </word>
    </word_list>
  </ma_result>
</ResultSet>

ばっちり名字と名前に分割できてます。あとは surface のところを正規表現でマッチングさせればOKです。一度解析したデータはどこかに格納しておきましょう。

こんな時に使える

Twitterの検索APIで人物名をフルネームで検索しても検索結果が少なく、名字と名前で区切って検索するとまともに検索できるというケースが多く見受けられるので、そういう場合にさくっと形態素解析で名字と名前に分割してあげるといいです。

» Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析