川のブログ

川の適当気ままなブログです。 

Text Suggest APIをつかってみた Part1

こんにちはかわです。

アドベントカレンダー十記事目。

遅れています。書いてた記事が消えて悲しい思いもしました。

書いていきたいと思います。

今回は

Text Suggest APIを使ってみたいと思います。

a3rt.recruit-tech.co.jp

いろいろ機能があるみたい。

自分で学習させていくことも可能らしいですが、

suggestの機能を使ってみる。

やること

Rubyで簡単なsampleを作成。

環境

ruby 2.3.1

APIKEYの取得

a3rt.recruit-tech.co.jp 上記のサイトにいきAPIKEYを取得してください。

sampleコード

styleとtextを入力すると、

textを利用した文やコードが返ってきます。

sample.rb
require 'net/http'
require 'json'

class TextSuggestAPI
  def initialize(key)
    @key = key
  end

  def suggest(text, params)
    url_text = "https://api.a3rt.recruit-tech.co.jp/text_suggest/v2/predict?apikey=#{@key}&previous_description=#{text}"
    params.each do |key, value|
      url_text+= "&#{key}=#{value}"
    end
    url = url_conversion(url_text)
    res = Net::HTTP.get(url)
    res_hash = JSON.load(res)
    return res_hash
  end

  private

  def url_conversion(url)
    return URI.parse(URI.encode(url))
  end
end

style = 0
while style < 1 or style > 3
  print "モードを選択 1:ノーマル 2:和歌 3:Go言語 ->"
  style = gets.to_i
end
separation = 0
while separation < 1 or separation > 3
  print "文の長さの選択 1:単語 2:フレーズ 3:センテンス ->"
  separation = gets.to_i
end
params = {style: (style-1), separation: (separation-1)}
print "文字の入力->"
text = gets.chomp
key = "自分のAPIKEY"
res_hash =  text_suggest.suggest(text, params)
answer = text + res_hash["suggestion"][0].to_s

puts answer

実行

$ruby sumple.rb
モードを選択 1:ノーマル 2:和歌 3:Go言語 ->1
文の長さの選択 1:単語 2:フレーズ 3:センテンス ->1
文字の入力->かわ
かわだ
$ruby sumple.rb
モードを選択 1:ノーマル 2:和歌 3:Go言語 -> 2
文の長さの選択 1:単語 2:フレーズ 3:センテンス ->2
文字の入力->なかああ
なかああれか 
$ruby sumple.rb
モードを選択 1:ノーマル 2:和歌 3:Go言語 ->3
文の長さの選択 1:単語 2:フレーズ 3:センテンス ->3
文字の入力->func
func(e string) int { return nil }

こんな結果になりました。

いろいろ使えそう。

今回は以上です。

またこのAPIを使った記事を上げそうですね。

精進していきたい