2016年5月3日火曜日

Rでtwitterの検索結果から同表記異義語をフィルタする その1

背景

twitterにおいて検索キーワードを指定し、そのキーワードを含むツイート一覧結果を受け取っても、違う意味の言葉が入ってくる。たとえば、検索したい人物を指し示す固有名詞を入力しても、同じ名字を持つ他の人物や、地名もヒットしてしまう。なんとかして固有名詞を更に詳細に区分できないだろうか。

今回は、東京都の小笠原に関するツイート調べるつもりで「小笠原」で検索した場合、野球やサッカーの小笠原選手に関するツイートもヒットしてしまう問題を取り扱い、小笠原選手に関するツイートを取り除く方法を考察する。

方針

(検証中)Wikipediaの記事を使い、東京都の小笠原と一緒に出現しやすい語彙一覧、野球の小笠原選手と一緒に出現しやすい語彙一覧、サッカーの小笠原選手と一緒に出現しやすい語彙一覧をそれぞれ作成する。

その後「小笠原」を含むツイートにて、そのツイート内の語彙から、どの小笠原に所属するツイートかを判定する。

自然言語処理の分野において、この手のタスクは曖昧語義性解消(Word Sense Disambiguation)と呼ばれる。Wikipediaを用いたアルゴリズムも既にいくつか発表されてるようだが、一方である書籍によれば「(意味解析は)実用レベルの性能には達しておらず,フリーのツールというものもいまのところ存在しない1」と記され、実際すぐに使えるツールというのもないようだ。
1奥村 2010 p.81

ツール

PythonでもRでも達成できそうで、どちらを使うか迷ったが、今後個人的にRを使う予定があるので勉強の意味も兼ねRを採用した。

手順

twitteRのセットアップ

フィルタリング対象となるツイートを収集するため、パッケージを利用する。

install.packages("twitterR")
Warning in install.packages :
  package ‘twitterR’ is not available (for R version 3.2.4)

早速twitterのデータ取得に使うライブラリが利用不可のようで、あせる。 問題は単純で、パッケージ名は "twitter R" ではなく "twitteR" 。

Setting up the Twitter R package for text analytics | R-bloggers を参考にtwitter appを新規作成し、そのappのconsumer keyなどを setup_twitter_oauth 関数を使い twitteR に設定。下記コマンドでツイートが収集できることを確認した。

searchTwitter("小笠原")

Rでtwitterの検索結果から同表記異義語をフィルタする その2 Wikipediaの記事抽出に続きます。

今回使用したRファイルをGitHubで公開しました。その3 集計とRStudio Projectファイル

参考書籍

0 件のコメント:

コメントを投稿