こんにちは!
システムズエンジニアリングセンターの
やまさきあ です。

 

6月も半ばですが、最近気温の変動が激しいですね。
寒くてお布団から出たくないこともしばしば…
でも、会社にはいかなくてはなりませんよね。

会社に行きたくなくなる要因は気候だけでなく
人間環境や業務の量など、様々なものが存在します。

ストレスを1人で抱えきれなくなった時、体調を崩してしまうかもしれません。
そうなる前に、アラートを上げることはできないでしょうか。

AI & RPA SIGのロボットなら、それが可能かもしれません。

(※ けっこう長くなってしまったのですが、よろしければ約8分間お付き合いください)

SIGとは?

SIGとは、Special Interest Groupの略で、 一般的には特定のテーマについて興味・関心のある人々の集まりのことを言います。(SIGについて

クレスコのSIGは勉強会のように自発的に何かを学ぶ、といった場ではなく、
自分の持っている技術知識を活かして成果物を残す場となっています。
活動期間は一年間で、成果物は一年間単位でコミットする形式で実施しています。

クレスコでは、多くの勉強会が開催されていますが、その中でもSIGは自分の知識を活かしたい、現場の課題を解決させたい、といった熱い思いを持った人たちが集まってくれています。エンジニアブログ記事より

昨年度には、こんなSIGがありました

開発技術SIG

システム開発現場の非効率な作業や困りごとを、IT技術を使ってで解決し生産性の向上・品質の向上を目指す。
2019年3月のオープンハウスでは、コマンドライン対話型chatbotで開発現場の軽作業自動化をDEMOしていた。

DevOps SIG

クラウドベンダーの提供する開発ツールでツールチェーンを構築し、推奨方法でビルドパイプラインを構築することで、導入・学習コストの抑制によりベストプラクティスの採用を実現する。
かつ、ベンダーが提供していないプロセスの導入可否を検証し、その有効性や自由度を検証する。

AI & RPA SIG

RPA(Robotic Process Automation)にAI(画像認識や自然言語処理など)の能力を組み合わせ、一段高いレベルのお仕事をこなせるソフトロボを作る。

AI & RPA SIGは何をしていたの?

その名の通り、AIとRPAを用いたロボットを作成していました。
活動は、RPAのアドバイザーを含め10名で行っていました。

作成したロボットは以下の通りです。

前期:7月~9月

2チームに分かれ2つのロボットを作成しました。

メール返信ロボット

PCのカメラで撮影した顔写真をもとに感情分析を行い、感情に合わせてメールを自動返信してくれるロボットを作成しました。

写真からの感情分析ロボット改良版

既存のロボット(PCのカメラで撮影した顔写真をもとに感情分析を行い、感情の分析結果をもとにレポートを作成してくれるロボット)を改良し、レポートをより魅力的なレイアウトに改良しました。

後期:10月~3月

SIG参加者全員で1つのロボットを作成しました。

日報(所感)からの感情分析ロボット

これが、イントロにもありました、ストレスを抱えきれなくなる前の対策に役立つ可能性のあるロボットです。
このロボットについては力作ですので、より詳しく説明していきます!

日報(所感)からの感情分析ロボット

構築はRPAツール「UiPath」で行いました。
感情分析についてはWatsonのAPI「Personality Insights」(AI)を用いています。

システムの動きとしては以下のようになっています。

  1. 社内の新人日報サイトから所感を抽出し、テキスト形式でローカルに保存する。
  2. テキストファイルから読み込んだ所感を「Personality Insights」に入力、感情分析の結果を JSON 形式で受け取り、ローカルに保存する。
  3. 感情分析の結果をExcel上でグラフ化し、表示する。

感情分析の結果は多くの項目がありますが、今回は
「ビッグファイブ – 個性」
と呼ばれる以下の5つの項目について時系列でプロットしました。

・感情起伏
・知的好奇心
・誠実性
・外向性
・協調性

結果として出力されるExcelは以下のようになります。
人物ごとに1つのグラフとなっており、感情がどのように変化していっているのか見えます。

おや…6月頭に外向性や知的好奇心が急激に下がっていますが、何かあったのでしょうか…
この時期は若手が研修を頑張っている時期なのですが、その中で何かうまくいかないことがあったのかもしれないですね。

このように変化が可視化できると、ストレス可能性の有無が分かりやすくなるので、ストレスチェッカーとしては有用ではないでしょうか。
結果の精度やロボットの正確性に関しての検証はまだ不十分なので、今年度の活動で修正しようかという案も出ています。

パワーアップ出来たらぜひ採用チームや管理職、リーダーの方に使ってほしいですね!

※ ちなみに昨年度の クレスコ オープンハウス ではこのロボットについてのSIGポスターを作成し、「報告書の文章分析による感情の起伏可視化」というタイトルで出したところ、最優秀賞を獲得しました!(オープンハウス2019

SIG活動を終えてみて

難しかったこと

Selector

UiPathでは、クリックなどの動作を行う際に、動作の対象(要素)を特定し
要素に対して動作を実行します。
Selectorとは、この「要素」を特定するための情報です。
皆さん、WebページのSelector取得に少し苦戦していたような印象です。
ある程度の経験を積んでくると、Selectorの勘が身についてくるようでした。

Argumentの受け渡し

作成するワークフロー(ファイル)をある程度切り分け、チームに分かれて作成していったのですが、
そのために、ワークフローから他のワークフローを呼び出す必要がありました。
ワークフローを呼び出す際には、Argument(引数)を渡さなくてはなりません。
そのArgumentをどのような形式で呼び出し先のワークフローに渡すかについて考えることに少し苦労していた印象です。
想定していた動きが実際はできなかったという事態が発生した際には、話し合いながら進めていっていました。
チームワークがとても上手くとれていたので、割とすんなり進んだように記憶しています。

こんな感じで進めていました(最終版ではないですが!)

Personal insights取得値の扱い

Personal insightsで取得した分析値は、JSON形式で返ってくるのでそれをString形式で取得しました。これをデシリアライズする必要があり、以下の問題について苦戦していました。

どういった形式に変換すればよいのか
UiPathではどのアクティビティ(処理のかたまり:Clickやテキスト入力等)を使用したらよいのか

結果的には以下の方法で解決しました。

形式はJObject形式
ActivityはDeserialize Jsonアクティビティを使用

UiPathを使用し、APIから値を取得したことがあるメンバーの手助けもあり、
何とか乗り越えることができました。
ご協力いただいたみなさま、ありがとうございます。

感想

やまさきあの個人的な感想としては…
とても楽しかったです!!

私はUiPath経験者ということもあり、軽い気持ちで参加してみたのですが、
はじめは正直、少し不安で、
先輩方にUiPathについてきちんと教えられるかな?
こんな若手だけど参加して頼りになるのかな?

という思いもありました。
しかし、いざ活動が始まってみると、皆さんすぐにUiPathの操作方法を覚えて自学で技術向上されていたり、メンバーみんなの意見を取り入れようという雰囲気があったり、楽しんで活動に参加していたりと、とても素敵な環境でSIG活動を行うことができました。

これからのAI & RPA SIG

今年度も新生AI & RPA SIGとして活動を開始しております。
少しメンバーが増え、雰囲気が少し変わることを楽しみにしています。
また、今期作成する面白いロボットのアイデアがたくさん出ているので、とてもワクワクしています!
今後とも、AI & RPA SIGの活躍にぜひご期待ください~(^^)/

やまさきあでした!