#AlteryxAlteryx『カスタマーストーリー』を支えるツール特集2019年05月08日たまちゃん(77)10はじめにどうも。DI部@大阪オフィスのtamaです。Alteryxの情報収集をしていたところ、簡単にテキストの感情分析できるツールが開発されていたことを発見したので、ちょっと使ってみました。指定したファイルのテキストを解析して、各感情に関するスコアリングを行ってくれます。使ってみたこのツールはどういった仕組みで感情分析するものなのか...というのは後で見るとして、まずは使ってみます。ToolsをインストールしておくR言語のsyuzhetパッケージをインストールしておくRのパッケージのインストール方法は色々ありますが、私はAlteryxインストールディレクトリ配下にあるRディレクトリのR.exeを直接起動して、直接インストールコマンドを叩きました。data.worldTwitter上の「#AAPL」や「@apple」が含まれたツイートのデータです。ツイート以外にも色々な項目が含まれていますが、今回はツイートのテキスト以外は使いません。Galleryからツールをダウンロードします。Alteryxパッケージの形式になっているので、ダウンロードしたファイルをダブルクリックしてインポートします。Appとして実行してみましょう。画面右上の魔法ステッキみたいなアイコンを選択します。Appを使用するためのダイアログが出てきました。基本的には、分析したいファイルとカラム、後は結果を出力するファイルの名称を指定して実行するだけです。デフォルトでは.yxdb形式で出力されます。いうわけで、上記のAppleに関するツイートデータを読み込みます。このデータのツイート本文を感情分析するので、指定するカラムはtextです。出力ファイル名は適当につけて、実行!結果が出てきます。結果を確認.yxdbファイルをその場で確認してみます。textが先程指定した分析対象カラムです。それより右に付与されている列が、感情分析の結果(スコア)となります。それぞれどういう意味なのかは、後で見ます。いう処理が行われているのかテキストの感情分析が手軽に実行できたので、次はこのツール(ワークフロー)の中身を見てみます。色々な処理を行っているワークフローではありますが、このワークフローのキモは真ん中のRツールです。感情分析自体は、R言語で行われています。R言語でどういった処理が行われているのか、簡単に見ていきましょう。syuzhetパッケージlibrary(syuzhet)最初にsyuzhetパッケージをロードしています。何を隠そう、このsyuzhetというパッケージで感情分析を行っています。syuzhetは、テキストから感情を算出するためのRパッケージです。簡単に言うと、「この単語の感情はxxである」ということが、単語毎に設定されている「辞書」があり、それを使用して文章全体の感情を決める、というような感じです。as.character(tab$text)read.Alteryx関数で、Rツールに接続されているデータを、データフレーム形式でtabに格納しています。syuzhetは、対象データの形式を文字列ベクトルにする必要があるため、変換を行っています。method=”syuzhet”)write.Alteryx(tab,1)テキストデータの読み込みと変換が無事完了したところで、get_sentiment関数を使用して、感情スコアを算出します。nrc)を使用することができますが、このワークフローでは、4つ全てを算出しています。L.Jockers氏の指導のもとに開発された辞書です。DATABASE」として開発した辞書です。LEXICON」として開発した辞書です。LEXICON」として開発した辞書です。Lexiconsそれぞれ算出した感情スコアを、write.Alteryx関数で、Rツールの出力アンカー1に出力します。このRツール以降に配置されているSelectツールで、syuzhet以外は省かれています。他の結果を使用したい場合は、選択ツールの設定を変更しましょう。get_nrc_sentiment上記とは別に、get_nrc_sentimentを使用した感情スコアも算出しています。Emotion辞書を使用します。Mohammad氏によれば、「NRCの感情辞書は、単語とそれらの8つの感情(怒り、恐れ、期待、信頼、驚き、悲しみ、喜び、嫌悪)と2つの感情(負と正)との関連リストである」とのこと。各カラムに、それぞれの感情のタイプについての感情価が含まれています。http://www.purl.org/net/NRCemotionlexiconこれらの値もwrite.Alteryx関数で出力アンカー2に出されています。その他このワークフローは、読み込んだ元データのカラムもそのまま残してくれます。そのためにRツール以前で一意のIDを付与した上でテキスト本体と分離し、Rツール以降で元データと感情スコアをジョインして、元々のデータ+感情スコアという形で最終出力されるようになっています。Appである以上、中身をいじることもできるこのツール(ワークフロー)は、デフォルトでは.yxdbとして出力されますが、もちろんワークフローをいじることができるので、出力形式を変更することができます。出力をhyperにして、Tableauで可視化するなんてこともできますね(今回のエントリ中ではやりません...)。Appがあれば、非常に簡単に感情分析を行うことができます。この算出したスコアを解釈するのは、一筋縄では行かないのではないか、と私は感じております。vizzical上記は、著者とガールフレンドがWhatAppメッセンジャーでやり取りしたテキストを感情分析した、という内容の記事です。感情分析を実施したところ「自分は彼女より”嫌悪”や”怒り”という感情が多く出ているという結果が出ました。この著者は彼女に対して、たくさんのネガティブな言葉を言っているのかといえば、そうではありません。「damn(ちくしょう的な意味)」が多く使われていれば、スコア上は「嫌悪」の度合いが強まるかもしれませんが、著者曰く、「今日自分のPCが壊れちまったぜちくしょう!」みたいな会話をしているだけであって、本当に嫌悪感を相手にぶつけているわけではありません。スコア上は相対的に彼女は明るい文章を書いている結果となっています。これは「ceremony(式典)」や「engagement(婚約)」といった言葉が使われてるため、そのような結果になっていますが、実は、職場の人間の会話が結婚の話ばかりで辟易している...というのが本当の背景でした。前述したように、これらの感情分析は、感情辞書をもとに、各単語毎に感情のポジネガを出して、それらを計算しているに過ぎません。その単語の本当の背景を、数値だけで判断することはできません。感情分析を実際のビジネス(自社商品のレビューの分析など)に活かすためには、感情辞書の理解や、そのテキストが発生した背景まで読み取る必要があり、かなり腰を入れた分析プロジェクトを回す必要があると思います。Appを使えばすごく簡単に感情分析できるので、ぜひお試し下さい。Snowflakeの四刀流を目指す。AWS?何それ?元学生プロレスラー。〜ITエンジニアのお仕事とホンネ〜2月19日に新卒向けの会社説明会〜ITエンジニアのお仕事とホンネ〜を開催します。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。環境をDockerで構築してみました。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健231こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。