LoginSignup
3
1

More than 3 years have passed since last update.

RからCOTOHA APIを簡単に使えるようにするパッケージ「rcotoha」を作りました

Last updated at Posted at 2020-04-16

COTOHA APIはNTT Communicationsが提供する自然言語処理APIです。キーワード抽出や感情分析等の機能を使って任意のテキストを分析できます。それらの機能を活用した面白い記事がQiitaにもたくさんあります。

しかしそれらの記事で利用されている言語はほとんどがPythonです。
データの読み書きと整形に向いているRとはきっと相性が良いと思ったのですが、自分が調べた限りでは先行記事がありませんでした。そこでやり方を工夫して以下の2記事を書きました( RでCOTOHAを使ってみる(『グスコーブドリの伝記』からキーワード抽出)COTOHAを使ってテキストから穴埋め問題を生成する【自習応援】)。

これらの分析はすごく楽しかったのですが、まだ多くの人がやってみようと思うには面倒が多いかと思います。
そこで今回、上記の2記事で使用していたコードをまとめなおしてパッケージ化しました。

※ 4月18日追記:
@paithiov909 さんが先行して「conifer」というパッケージを作っておられました → https://github.com/paithiov909/conifer
教えていただきありがとうございます!
実装方法がこちら(rcotoha)より洗練されているので、coniferの方もぜひ見ていただければと思います。

パッケージ「rcotoha」

インストールは以下のコマンドから可能です:

remotes::install_github("ocean-v/rcotoha")

パッケージには、

  • 設定ファイルを作成するためのrcotoha::make_cotoha_config
  • アクセストークンを取得するためのrcotoha::get_cotoha_token
  • 処理を実行する(リクエストを投げる)ためのrcotoha::execute_cotoha_analysis
  • キーワード抽出などの結果をデータフレーム(tibble)として整形するためのrcotoha::cotoha_as_df

の4つの関数が含まれています。rcotoha::execute_cotoha_analysisはfor Developersで使えるβ版以外のAPIには全て対応しています(ただ、複数の文を配列にして渡すことには対応していません)。

詳しい使い方についてはレポジトリのページか関数のヘルプを見ていただければと思うのですが、例えばこのパッケージを使うとキーワード抽出が以下の数行で完結できます:

> make_cotoha_config(clientId = "xxxxxx", clientSecret = "xxxxxx", tokenURL = "https://xxxxxx", baseURL = "https://xxxxxx")
> token <- get_cotoha_token(config = "config.json", endpoint = "endpoint.json")
> response <- execute_cotoha_analysis(
       access_token = token,
       API = "keyword",
       document = "野を越え、山を越え、たどり着いた港町で、私は骨を埋めることにした。"
     )
> result <- cotoha_as_df(response = response)
> print(result)
# A tibble: 4 x 2
  form  score
  <chr> <dbl>
1     16.6 
2 港町  10.4 
3      8.77
4      8.35

※ clientIdなどは適宜自分のものと変える必要があります。

それぞれの関数も10行程度のコードで書いてあるので、気になる方は中身を確認してもらえたらと思います。

Rのパッケージ開発が初めてで勉強もかねて作成したのでまだ拙いところもあると思います。
でも楽しんで使っていただけたら幸いです!

参考サイト

コード作成の参考

自然言語処理を簡単に扱えると噂のCOTOHA APIをPythonで使ってみた
Data Transformation with dplyr : : CHEAT SHEET
[翻訳] httr vignette: httrはやわかり
httrを使ってRからREST APIを叩く
httr POST authentication error
RプログラミングTips大全

パッケージ作成の参考

こわくないRパッケージ開発!2016 ← 大変参考になりました。本当にありがとうございます!
devtools — Rパッケージ作成支援
githubに公開してみる
Package Development: : CHEAT SHEET
FlickrAPI
emoGG(plot)

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1