RでYahoo!の日本語解析APIを使うパッケージを作ってみました

Rでテキストマイニングをする場合、RMecabや、RCaBoChaがあるんですが、事前にMecabやCaBoChaをインストールする必要があり、これから始める人にはちょっと敷居が高いところがあるかと思います。

もっと気軽にRだけで動かしてみるものがあっても良いかなと思い、Yahoo! Japanが提供しているテキスト解析APIを使うパッケージを作成してみました。CRANにコミット済みです。

以下の機能をサポートしています。

インストールと読み込み

> install.packages("YjdnJlp")
> library(YjdnJlp)
 要求されたパッケージ XML をロード中です 
 要求されたパッケージ RCurl をロード中です 
 要求されたパッケージ bitops をロード中です

初期化

> con <- initYjdnJlp("********")    # アプリケーションID
  • アプリケーションIDを持ってない方は、こちらから登録してください

形態素解析

形態素解析を行うには、MAService関数を使います。
toDataFrame関数で、データフレームに変換することが出来ます。

> txt <- "庭には二羽ニワトリがいる。"
> ma.result <- MAService(con, txt)
> ma.result.df <- toDataFrame(ma.result)
> ma.result.df[, c("surface", "pos", "count")]
   surface    pos count
1       。   特殊     1
2     いる   動詞     1
3       が   助詞     1
4       に   助詞     1
5       は   助詞     1
6 ニワトリ   名詞     1
7       二   名詞     1
8       庭   名詞     1
9       羽 接尾辞     1

係り受け解析

係り受け解析を行うには、DAService関数を使います。
これもtoDataFrame関数で、データフレームに変換することが出来ます。

> txt
[1] "庭には二羽ニワトリがいる。"
> da.result <- DAService(con, txt)
> da.result.df <- toDataFrame(da.result)
> da.result.df
  chunk.id dependency  surface  reading baseform    pos
1        1          3       庭     にわ       庭   名詞
2        1          3       に       に       に   助詞
3        1          3       は       は       は   助詞
4        2          3     二羽      22羽 接尾辞
5        2          3 ニワトリ にわとり ニワトリ   名詞
6        2          3       が       が       が   助詞
7        3         -1     いる       い       い   動詞
8        3         -1       。       。       。   特殊
                                 feature
1             名詞,名詞場所,*,,にわ,2                 助詞,格助詞,*,,,3                 助詞,係助詞,*,,,4             接尾辞,助数,*,二羽,2,25 名詞,名詞,*,ニワトリ,にわとり,ニワトリ
6                 助詞,格助詞,*,,,7            動詞,一段,基本形,いる,,8                   特殊,句点,*,,,

キーフレーズ抽出

Keyphrase関数で、日本語文から特徴的な表現(キーフレーズ)を抽出することが出来ます。
形態素解析係り受け解析と同様、toDataFrame関数で、データフレームに変換することが出来ます。

> txt <- "東京ミッドタウンから国立新美術館まで歩いて5分で着きます。"
> key.result <- Keyphrase(con, txt)
> key.result.df <- toDataFrame(key.result)
> key.result.df
         keyphrase score
1     国立新美術館   100
2 東京ミッドタウン    72
3              510

まとめ

  • Web APIの性質上、あまり大きなデータが扱えない、1日に使える回数が決まっている等の制約がありますが、とりあえず、動かしてみるには良いのではないかなと思います。
  • まだRでテキスト解析をやった事がなくて興味があるっていう方は、使ってみてください