tag:crieit.net,2005:https://crieit.net/tags/A3RT/feed 「A3RT」の記事 - Crieit Crieitでタグ「A3RT」に投稿された最近の記事 2018-10-31T16:26:56+09:00 https://crieit.net/tags/A3RT/feed tag:crieit.net,2005:PublicArticle/14491 2018-07-28T21:30:43+09:00 2018-10-31T16:26:56+09:00 https://crieit.net/posts/A3RT A3RTとユーザーローカルの文章の自動要約を試してみた <p>先日ユーザーローカルが文章の自動要約ツールを公開しました。また、リクルートテクノロジーズが公開しているAI群であるA3RTにText Summarization APIという文章の自動要約APIがあります。それらを実際に使って文章の要約を試してみました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://text-summary.userlocal.jp/">自動要約 無料ツール by ユーザーローカル</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://a3rt.recruit-tech.co.jp/product/TextSummarizationAPI/">Text Summarization API|PRODUCT|A3RT</a></p> <h2 id="ユーザーローカルの自動要約"><a href="#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%AE%E8%87%AA%E5%8B%95%E8%A6%81%E7%B4%84">ユーザーローカルの自動要約</a></h2> <p>こちらはAPIではなく、ブラウザ上で使う自動要約ツールとなっています。実際に下記の文章多めの記事で試してみました。コードは削除して試しています。</p> <p><a href="https://crieit.net/posts/bosyu">bosyuの募集一覧を勝手に作ってみた(機械学習解説付き) - Crieit</a></p> <p>結果は下記のようになりました。</p> <h3 id="3行ダイジェスト"><a href="#3%E8%A1%8C%E3%83%80%E3%82%A4%E3%82%B8%E3%82%A7%E3%82%B9%E3%83%88">3行ダイジェスト</a></h3> <pre><code>この機能はそのままクラス分類( Classification )というらしいです。 ひとつのカテゴリにいくつでもキーワードを設定できるようにしました。 分類されないものは全部「その他」カテゴリに入れています。 </code></pre> <h3 id="10行ダイジェスト"><a href="#10%E8%A1%8C%E3%83%80%E3%82%A4%E3%82%B8%E3%82%A7%E3%82%B9%E3%83%88">10行ダイジェスト</a></h3> <pre><code>bo sy u. me の一覧ページを作成してみました。 応募が来るとサービス上で簡単一覧できる便利なサービスです。 (カテゴリの自動分類方法詳細は後述)、環境 機械学習によるカテゴリの自動分類、サービスの肝です。 この機能はそのままクラス分類( Classification )というらしいです。 Watson Natural Language Classifier (自然言語分類) facebookresearch / fastText : Library for fast text representation and classification ひとつのカテゴリにいくつでもキーワードを設定できるようにしました。 非常に的確にカテゴリ分類ができるようになりました。 分類されないものは全部「その他」カテゴリに入れています。 </code></pre> <p>どちらもいまいちではありますが、10行の方は多少それっぽくは見えます。</p> <p>ユーザーローカルの自動要約は3行、5行、10行から選べるため一番それっぽいものを選ぶことができます。また、文章のどのあたりが重要な部分か、というのをマーカーやヒートマップで確認する機能もあるので、参考になります。</p> <p>ただ、重要な部分を使って自動要約を行っているので、人間が作る要約とは違い文章の開始と終了が不自然だったりします。今回の3行の方等もそんな感じですね。</p> <p>また、こちらは結果表示画面に精度向上のためのアンケートがあるので、無料で公開するかわりにみんなで協力してデータを集めて精度を高める実験中、という感じがします。</p> <h2 id="A3RTの自動要約"><a href="#A3RT%E3%81%AE%E8%87%AA%E5%8B%95%E8%A6%81%E7%B4%84">A3RTの自動要約</a></h2> <p>A3RTの方はText Summarization APIといって、プログラムから実行できるようなAPIとなっています。こちらは下記のような制限があります。</p> <blockquote> <p>要約できる1文の最大文字数は200文字、且つ最大文章数は10です。</p> </blockquote> <p>ということで、そのままでは長文には使えないので、記事の本文を上記に合うように区切って、それぞれを自動要約してくっつけることで試してみました。</p> <pre><code>bosyu.meの募集一覧ただ、ただほんとに一覧するだけだとTwitter上で#bosyuというハッシュタグを使って見ればいいだけなので、独自の機能としてカテゴリ分類機能を追加し、カテゴリ毎の募集を見られるようにしてみました。 8ce5b9af-16f5-d75a-536d-b62a6e57971e.pngカテゴリは選択たらすぐに画面が切り替わるのですが、Date Pickerはどうも選択時のcallbackが無いようだったので、仕方なく検索ボタンを押してもらう形にしました。 Google Cloud Natural Language APIGoogle Cloud Natural LanguageとりあえずGoogleなら何かあるだろ、と思って調べたら全くそのままのものがありました。 機能的にはこれで問題なかったのですが、とりあえず最初にGoogleのAPIを知ってしまったので学習が要らないAPIを引き続き探しました。 色々探しましたがGoogleのもののように良い感じに最初からカテゴリ分けされてるっぽいものはなさそうですし、ツイートであれば学習データを集めるのは特に難しいことではないし、学習させるというのも大事なことだと思ったためです。 ツイートなので文章が全体的に短すぎるのか、何時間かしかかけずに集めたデータが少なすぎたのか、おかしなカテゴリに入ってしまうものが多発しました。こういう場合にはわざわざ機械学習を導入せず、シンプルな方法を選択することも必要な場面はあると思います。 </code></pre> <p>変な感じにはなっていますが、これは前述の通り適当な仕様で自動要約しているので、多分その作り方に問題がありそうです。長文の場合はもうちょっと考えて実装しないといけなそうですね。もしくはA3RT自体が対応してくれないと厳しいかもしれません。</p> <p>こちらも要約後の文章数は指定できるので、いくつか出力して一番良いものを選ぶことはできそうです。</p> <p>今回試しに作ったプログラムは下記で操作できるものを公開しています。</p> <p><a target="_blank" rel="nofollow noopener" href="http://alphabrend.sakura.ne.jp/a3rt-text-summarization/">A3RT Text Summarization API Sample</a></p> <p>プログラムはGitHubに公開しています。(最短で動作するように作ったので適当です)</p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/dala00/a3rt-text-summarization-sample">dala00/a3rt-text-summarization-sample</a></p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>どちらの自動要約も十分なものか、と言われると微妙ですが、とりあえず大量に要約文を作りたい、という場合には良さそうです。ユーザーローカルは多分そのうち有料でもっと精度の高いAPIが実装されるのではないかと思いますが、A3RTであればなぜかはわかりませんが無料ですので、必要に応じて使っていくことは可能です。</p> <p>今のところどちらも機能的に制約がありますが、機会があればぜひ試してみてください。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14260 2017-04-26T05:10:22+09:00 2018-10-30T22:14:12+09:00 https://crieit.net/posts/A3RT-Talk-API A3RTのTalk APIをブログ上で試す <p>リクルートのAI用のAPIであるA3RTが無料で公開されました。</p> <blockquote> <p>A3RTは機械学習のなかでもDeep Learningなどに代表される、いわば人工知能とよばれる分野のロジックをひとつのブランドで統一・整備をし、社内へ展開するためにプロジェクト化されたソリューションの総称です。</p> </blockquote> <p><a target="_blank" rel="nofollow noopener" href="https://a3rt.recruit-tech.co.jp/">A3RT</a></p> <p>下記でも紹介されていました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://bita.jp/dml/recruit_artapi_">https://bita.jp/dml/recruit_artapi_</a></p> <h2 id="Talk API"><a href="#Talk+API">Talk API</a></h2> <p>A3RTの中に、Talk APIというチャットボットを作るためのAPIがあります。一番面白そうだったので実際に試してみました。JavaScriptでも使えるようだったため、せっかくなのでブラウザ上で試せるように実装してみました。</p> <p>APIキーとメッセージを入れて実行するとレスポンスが返ってきます。APIキーは公式サイトですぐ取れるのでそちらを入力します。</p> <h2 id="試してみた"><a href="#%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F">試してみた</a></h2> <p><a href="https://crieit.now.sh/upload_images/a7ac9b12374b1e91cf0288fba4b8c0f25b0d1886a31ed.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a7ac9b12374b1e91cf0288fba4b8c0f25b0d1886a31ed.png?mw=700" alt="" /></a></p> <p>なにそれ…</p> <p>※引っ越し前のブログの記事だったため、CodePenに置き換えました。</p> <p data-height="265" data-theme-id="0" data-slug-hash="OwORvG" data-default-tab="js,result" data-user="dala00" data-pen-title="A3RT Talk API Sample" class="codepen">See the Pen <a target="_blank" rel="nofollow noopener" href="https://codepen.io/dala00/pen/OwORvG/">A3RT Talk API Sample</a> by dala00 (<a target="_blank" rel="nofollow noopener" href="https://codepen.io/dala00">@dala00</a>) on <a target="_blank" rel="nofollow noopener" href="https://codepen.io">CodePen</a>.</p> だら@Crieit開発者