Googleクラウド自然言語APIをPostmanで遊ぶ

背景

Googleクラウド自然言語APIを使ってみた を拝読しました。 自分でも試したいと思いつつもGoogle Cloud Platform(GCP)を使ったことがなかったので、せっかくの機会なので触ってみることにしました。

GCPのプロジェクト作成

CCPにログイン後、ホーム画面から「プロジェクトを作成」を押下します。

f:id:cipepser:20160815152042p:plain

「プロジェクト名」を入力し、「作成」を押下します。

ここでは「NLPtrial」としました。

(少し時間が掛かるようです) f:id:cipepser:20160815152047p:plain

認証情報の作成とAPIキーの取得

プロジェクトの作成が完了すると左上の方に作成したプロジェクト名が表示されているはずです。

この状態で「Google Cloud Natural Language API」で検索すると自然言語APIが出てきます。

f:id:cipepser:20160815152050p:plain

有効にします。

f:id:cipepser:20160815152054p:plain

APIを有効にしたらAPIを使用するための認証情報を作成します。

今回は「APIキー」で「サーバーキー」を使用します。

(このあたりは初めて触ったのでもっと適切な設定がある気がします。。。)

f:id:cipepser:20160815152100p:plain f:id:cipepser:20160815152102p:plain f:id:cipepser:20160815152107p:plain

名前を適当に入力します。ここでは「nlp」としました。

IPアドレスは未入力で作成しました。 f:id:cipepser:20160815152114p:plain

APIキーが作成されます。

(画像では消していますが、赤枠のところに現れます)

APIを叩く際に利用するのでコピーしておきましょう。

f:id:cipepser:20160815152118p:plain

一覧でも見れます。 f:id:cipepser:20160815152121p:plain

APIを叩く前に

前ステップで取得したAPIキーを使用してAPIを叩くにあたって認証情報をどうやって送ればいいのか確認しておきます。

によると

The application passes this key into all API requests as a key=API_key parameter.

とのことです。

Restrict your API keys to be used by only the IP addresses, referrer URLs, and mobile apps that need them:

の記述があるのですが、Refferヘッダから第三者に参照されてしまったりしないのか不安です。URLにパラメータ直書きで問題ないのでしょうか。

セキュリティ上よろしくないというようなことでしたご指摘ください。

APIを叩く

いよいよAPIを叩きます。

Entities(固有表現抽出)のAPI仕様は公式ドキュメントに記載があります。Typeについてはこちら から。

gist9a8307d8b14251d45999da818b2b084e

上記のような仕様に従ったjsonを以下にPOSTすればよいそうです。

https://language.googleapis.com/v1beta1/documents:analyzeEntities

手軽にやるために今回はPostmanを利用します。

リクエストを「POST」とし、上のURLに先ほど作成したAPIキーをパラメータとして渡してあげます。

あとはBodyにjsonを入れてSendするだけです。

f:id:cipepser:20160815152126p:plain

文章は何もおもいつかなかったので山月記の書き出しを拝借します。

隴西の李徴は博学才穎、天宝の末年、若くして名を虎榜に連ね、ついで江南尉に補せられたが、性、狷介、自ら恃むところ頗る厚く、賤吏に甘んずるを潔しとしなかった。

結果です。

gistb77a1571570c7bc080bfc3d6c89cf344

李徴はPERSONと出ていますし、URLも返ってきていますね。

各単語のbeginOffsetがわかるので、その単語が文章の何文字目か分かるようになっています。

一方で、隴西のように地名がPERSONとなってしまっていたり、

江南尉もORGANIZATIONとなっています。また天宝や狷介は結果も返ってきません。

感想

Googleクラウド自然言語APIを使ってみた でも言及されていますが、wikipediaから引っ張ってくるだけですし、今はちょっと微妙で、今後の発展次第ではもっとおもしろいことできそうかなーという感想です。

自然言語APIというよりその前段階の認証の記事みたいになってしまったもののGCPに触れてよかったです。

繰り返しになりますが、認証のkeyの渡し方で問題があればご指摘ください。

参考