インターネット上にはテキストコンテンツがたくさんあります。ブログはもちろん、ニュースサイトやツイート、Facebookの投稿など様々です。そうしたコンテンツを解析する用途に使えるのがYahoo! デベロッパーネットワークのテキスト解析WebAPIです。

今回のこの中の一つ、キーフレーズ抽出を使ってテキストの中から特徴的な表現(キーフレーズ)を抽出してみます。そのタイトルを特徴付けるキーワードが分かるはずです。

作るアプリ

できあがった形は次のようになります。まず、Wikipediaのページを検索するためのキーワードを入力します。例えばHTML5で検索します。

するとWikipediaの「HTML5」ページ内にある文字の中で特徴的なキーワードがリストアップされます。

iPhoneで検索した場合です。

ソースコード全文はgoofmint/YahooKeyPhrase_Monacaにアップロードしてあります。

必要なもの

今回のアプリで必要なものはYahoo!デベロッパーネットワークのアカウントになります。下記URLより取得してください(無料ですが、Yahoo! Japanアカウントが必要です)。

アプリケーションを登録したら、 js/app.js を書き換えます。

なお、今回はOnsen UIを使っています。ライブラリとしてイベントハンドリングにjQuery、HTML文字のタグ除去にpathable/truncateを使っています。

画面について

今回は一画面です。検索入力と検索を実行するボタン、そして結果を表示するリストという構成になっています。

コンテンツの取得

WikipediaのコンテンツはWikipediaが公式に提供するWeb API(MediaWiki 操作 API)を使っています。詳細はAPI:メイン ページ – MediaWikiに載っています。

Web APIを使ってコンテンツを取得後、JSONから本文を抜き出しています。その後、 jQuery.truncate を使ってHTMLタグを除去します。

キーフレーズ抽出

次に、取得したコンテンツからキーフレーズを抽出します。キーフレーズ抽出APIはGET/POST両方に対応していますが、POSTの場合はユーザエージェントにアプリIDを指定する必要があります。JavaScriptではセキュリティ上、Ajax時にユーザエージェントの書き換えができません。そのため、今回はGETを使っています。POSTの場合は100KBまでのリクエストが可能です。

そして結果を受け取ったら <ons-list /> 内に出力します。


テキスト解析は様々な場面で使えます。今回はWikipediaのコンテンツを使いましたが、他にも様々な情報が入力源として使えるはずです。

今回のコードはgoofmint/YahooKeyPhrase_Monacaにアップロードしてあります。実装時の参考にしてください。