機械学習「A3RT」でメールの構成チェックツールを作成!

掲載日:
2017/05/16
更新日:
2019/05/10

ソリューション

機械学習エンジン

最近「AI」「機械学習」という言葉をよく耳にします。しかし、「作るのにどれだけ工数かかるの?」「ロジックは?」「データをどうやって収集する?」などと不安に思っている方もいるでしょう。

2017年3月16日、株式会社リクルートテクノロジーズがこれまでリクルートグループ内に限定公開していた「A3RT(アート)」のAPIを無料公開しました。

今回、A3RTの Proofreading API を利用して、メール文面の構成チェックツールを作成してみました。ぜひ参考にしてくださいね。

※本ツールの制作には、パイプドビッツが提供するSPIRAL🄬が必要です。

A3RTとは

A3RT(アート)は「ANALYTICS & ARTIFICIAL INTELLIGENCE API VIA RECRUIT TECHNOLOGIES」の略称です。
A3RTは機械学習のなかでもDeep Learningなどに代表される、いわば人工知能とよばれる分野のロジックをひとつのブランドで統一・整備をし、社内へ展開するためにプロジェクト化されたソリューションの総称です。

引用元:A3RTとは・・・

6つのAPI

公開されたAPIは6つ。

  1. Listing API
  2. Image Influence API
  3. Text Classification API
  4. Text Suggest API
  5. Proofreading API
  6. Talk API

です。

1.Listing API

リスト生成をするためのAPIです。 ユーザーの行動ログを元にアイテム間の相関リストや、各ユーザーへのレコメンドリストなどを生成することが出来ます。

2.Image Influence API

画像と画像に対応する点数を用意すると、未知の画像が自分好みかどうかを点数で把握できるモデルが作成可能です。

3.Text Classification API

Text Classification APIはConvolutional Neural Networkを利用して、文章の分類を行うAPIです。

4.Text Suggest API

Recurrent Neural NetworkやLSTMと呼ばれる構造の言語モデルを利用した、文章の自動生成および入力補助を実現するAPIです。

5.Proofreading API

Proofreading APIはLSTMを利用して文章として怪しい箇所を検知するAPIです。

6.Talk API

Talk APIはChatbotを作成するためのAPIです。 [公式HPより抜粋] https://a3rt.recruit-tech.co.jp/product/

A3RTについて詳しく知りたい方は「リクルートのAI「A3RT」の使い方と活用方法とは?」をご覧ください。

メールの構成チェックツールの作成手順

【制作イメージ】

1.API KEY発行

各PRODUCTのページより「API KEY 発行」をクリックすると 同意画面と「API KEY」を受け取るメールアドレスを入力する画面が表示されます。

入力したメールアドレス宛にメールが飛ぶので、表示される説明に沿って「API KEY」を入手してください。

2.スパイラル管理画面より、以下を作成。

(1)文面チェック履歴トランザクションDB

チェック履歴を残すためのDBです。通常DBでもトランザクションDBでもどちらでも構いません。

<フィールド項目>

  • 登録日時(登録日時)
  • チェック文字列(テキストエリア(4096 bytes))
  • チェック感度(セレクト / 1 : low、2 : medium、3 : high)

(2)文面チェックフォーム

※今回はサンキューページでDBへ登録された値を取得し、    「Proofreading」を実行します。


3.「Proofreading API」呼び出し

文面チェックフォームのサンキューページで「Proofreading API」を呼び出します。

※「エンドポイント」「リクエストパラメータ」「レスポンスフィールド」の詳細は以下を参照ください。 https://a3rt.recruit-tech.co.jp/product/proofreadingAPI/

<!– SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE_A3RT_THANKS –> <?php
// エンドポイント $url = “https://api.a3rt.recruit-tech.co.jp/proofreading/v1/typo”; // 【変更箇所】API KEY $apikey = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”; // チェック文字列 $sentence = $SPIRAL->getContextByFieldTitle(“sentence”); // チェック感度 $sensitivityIndex = $SPIRAL->getContextByFieldTitle(“sensitivity”); if($sensitivityIndex == 1){     $sensitivity = “low”; }else if($sensitivityIndex == 2){     $sensitivity = “medium”; }else{     $sensitivity = “high”; } // 引数 $postdata = array(         “apikey”        => $apikey,      // APIキー         “sentence”      => $sentence,    // チェック対象となる文を入力します         “sensitivity”   => $sensitivity // チェック感度を3段階で指定します。highが誤字の指摘が多く、lowは少なく、mediumはその中間です。 );
// リクエスト $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); $result = curl_exec($ch); curl_close($ch);
// デコード $resultDec = json_decode($result, true);
// 処理ステータス(画面表示の処理に使用します) $status = $resultDec[“status”]; // 指定内容を格納した配列(画面表示の処理に使用します) $alerts= $resultDec[“alerts”];
?>

4.結果を画面に表示

「Proofreading API」を実行した結果を画面に表示します。

※「エンドポイント」「リクエストパラメータ」「レスポンスフィールド」の詳細は以下を参照ください。 https://a3rt.recruit-tech.co.jp/product/proofreadingAPI/

<h1>【A3RT】文面チェックフォーム</h1>
<div class=”smp_tmpl”>         <dl class=”cf”>             <dt class=”title”>                 入力文字列             </dt>             <dd class=”data “>                 %val:usr:sentence%             </dd>         </dl>         <dl class=”cf”>             <dt class=”title”>                 指摘有無             </dt>             <dd class=”data “>                 <?php                 switch ($status) {                     case 0:                         echo ‘指摘なし’;                         break;                     case 1:                         echo ‘指摘あり’;                         break;                     default:                         echo ‘エラー(’.$status.’)’;                     break;                 }                 ?>             </dd>         </dl> <?php if(!empty($alerts)){     foreach ($alerts as $key => $alert){         $num = (int)$key + 1;         echo ‘<dl class=”cf”><dt class=”title”>指摘内容’. (int)$num.'</dt>’;         echo ‘<dd class=”data “>’;         echo ‘<p class=”subTitle”>【指摘箇所を<<>>で示した文】</p>’.htmlspecialchars($alert[“checkedSentence”]).'<br>’;         switch ($alert[“alertCode”]) {             case 0:                 $alertContent = “やや疑わしい単語です。もっと良い表現がある可能性があります。”;             break;             case 1:                 $alertContent = “疑わしい単語です。あまり使われない表現であったり、珍しい単語である可能性があります。”;             break;             case 2:                 $alertContent = “かなり疑わしい単語です。誤字の可能性が高いです。”;             break;             default:                 $alertContent = “”;             break;         }         echo ‘<p class=”subTitle”>【指摘単語】</p>’.htmlspecialchars($alert[“word”]).'<br>’;         echo ‘<p class=”subTitle”>【指摘の説明】</p>’.$alertContent.'<br>’;         echo ‘</dd></dl>’;     } }?>
</div>

今回作成した構文チェックツールは以下よりお試しいただけます。

https://www.pi-pe.co.jp/regist/is?SMPFORM=lfoj-sfrbt-2129c242d1e1c0a61c7ec7204ce3815c

※個人情報を特定する情報の入力はお控えください。

【所感】

簡単に「機械学習」を体験することができます。

厳しい指摘が多いため、レスポンスの「rankingScore」の値が、例えば0.8以上の結果を画面に表示する、等の対応を取るとよいかもしれません。

※rankingScoreとは、指摘した単語の疑わしさを示す指標です。0〜1の範囲の値をとり、1に近いほど疑わしい事を意味します。

現在公開されるAPIでは「500文字まで」とチェック文字数の制限があります。 今後、ブラウザからファイルアップロードできるようになるそうですので、メール文面以外のコンテンツも構文チェックできるようになれば、使用用途も広がるでしょう。

【注記】
※必要最低限の手順のみ公開しております。要件に合わせて変更してください。 ※執筆当時の仕様を記載しております。仕様変更による動作保証はしておりません。ご了承ください。

リクルートのAI「A3RT」の使い方と活用方法とは?

お問い合わせ
お問い合わせ

TOP TOP

お電話、フォームからお気軽にお問い合わせ下さいお電話、フォームからお気軽にお問い合わせ下さい

0120-935-463 受付時間|平日9:00~18:000120-935-463 受付時間|平日9:00~18:00
お問い合わせ お問い合わせ 無料トライアルにお申し込み 無料トライアルにお申し込み

一部IP電話等で上記ダイヤルに繋がらない場合は、03-5575-6601におかけください。(通話料金がかかります。)

認証・制度
マネジメントシステム
個人情報保護方針

プライバシーマーク ANAB SMP ANAB ASPSaaS IaaSPaaS