アシスタント機能をより良く使うために知っておくべきこと

# 概要
自然言語の入力でグラフの作成が行える「アシスタント」の機能に関して、こちらの記事で以前に紹介していました。
**Cognos Analytics 12.0 新機能 アシスタント**
https://qiita.com/shinyama/items/7eabb9e07926aa2d2354

今回はアシスタントを本格的に使いこなすために、開発者とユーザーの視点で覚えておくべきことを紹介します。

# 1.開発者として知っておくべきこと
開発者としてはデータソースの準備に知っておくべきことがあります。

**a). 使って欲しくないデータ・アイテムは非表示にしておく**
アシスタントが使っても意味がないと思うデータは、データモジュール内でアイテムを非表示にしておくことで、使わせないことが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/f84eb701-9a34-97a0-1c70-2de6a91e4cbd.png)

**b). ラベルを使ってアイテム名をユーザーがわかりやすい名称に変更しておく**
この「Hospital」というアイテムは病院名とすぐわかりますが、元データの列名は式を見ると「FacilityName」。
ユーザーは元の列名など認識してないので、ユーザーが自然言語での質問時に入力するであろう「Hospital」にラベル変更しておくことが必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/f8bbebcb-54a5-2460-34dd-291898726336.png)

**c). 同義語の作成**
「Hospital」の同義語(例えば「Clinic」)を事前に登録しておくことで、ユーザーの入力のゆらぎに対応できます。
Hospitalの下に「Hospital Synonyms」というフォルダーを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/5da27395-4daa-a176-369e-62d9f2ab37e2.png)

フォルダに「計算」を追加して、名前に同義語の「Clinic」、式に元々のHospitalと同様の「FacilityName」を入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/232f4e50-c041-7c6b-0dfa-e42ae19d565d.png)

**d). 適切な計算式の作成**
例えばサンプルの入院状況のデータでは、一行で一入院患者のデータを持っています。
特定の年に特定の町での入院患者数を知りたい場合、条件にあてはまる行数をcountすれば良いですが、アシスタントにこれをやらせるためには少し手助けが必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/781eb3bb-3c6c-8202-247c-15c240caec5d.png)

Admission(入所とか入院)という計算式を作成し、「1」とか「Count_」というような常に結果が「1」で変えるアイテムを作っておくと、アシスタントが使ってくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/7f391512-2e0f-6457-8ee8-c5dda119ee1c.png)

**e). 同一の列名の回避**
データモジュールに取り込むテーブル類に同一の列名があると、アシスタントの回答が欲したものにならない可能性が高くなります。
使用するデータモジュールに同一列名がないかご確認ください。

**f). データフォーマットの指定**
データの形式や意味をしっかりと指定しておくこともアシスタントの回答精度を上げるうえで重要です。
例えば、金額を扱うようなアイテムの場合、「データ表示形式を設定」から
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/164a7931-f273-07e0-42c4-1ace457ac2ee.png)

通貨としてデータ形式を指定しておくことで、アシスタントが認識しやすくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/eae0d267-6ed2-dac7-7830-dfb1f1ef7433.png)

Cityのような場所のデータの場合、プロパティの意味を「地理的位置」「市」に設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/64718fc0-f95c-6362-c08d-b8496781e722.png)

Quarterの場合、「時間」「四半期」という感じですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/3772c255-0c1c-44db-00a5-ea48a4a120fc.png)

**参考：アシスタントのデータの最適化**
https://www.ibm.com/docs/ja/cognos-analytics/12.0.0?topic=panel-optimizing-data-assistant

# 2.ユーザーとして知っておくべきこと
ユーザーとしては、質問入力時に知っておくべきことがあります。

**a). 複数のアイテムを指定する時は and を使う**
「patients」と「cases」を絡めて分析したいとき、「can you show me patients cases」とスペース区切りで並べてしまうと、先に指定した「patients」の説明が表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/cee5aae7-f60f-f77d-444b-c7f97c298f4f.png)

「can you show me patients and cases」というように、and を入れるとしっかり2アイテムを認識してチャートを作成してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/9e8694a2-3efb-dbe0-bd63-088d1f2cf5e7.png)

**b). 何から始めたら良いかわからない時の丸投げ1**
データソースを選んだものの、何から始めたら良いかわからない時、「suggest questions」でアシスタントに質問自体を提案させることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/214a58f0-2d38-9af5-cf61-a0acccc8aa5e.png)

**c). 何から始めたら良いかわからない時の丸投げ2**
同じく何から始めたら良いかわからない時、「create dashboard」でアシスタントに勝手にダッシュボードを作らせることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/96d2c6a4-01ff-2662-4d06-37ba72ccfbc1.png)

アシスタントがデータを読み込み、勝手にかなりリッチなダッシュボードを作成してくれるので、これを見て自分が何をしたかったか考えるのもありですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/3692513a-390b-5a7a-64fb-a2a302f817c8.png)

Casesタブ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/191f26c6-558c-b8ba-9182-042353305959.png)

**d). 集計が使える**
「平均」「最大」「合計」などの集計が出来るのは覚えておく必要があります。
平均：show average
カウント：how many
最大：show maximum
合計：show total
などなどですね。
**参考：フィルター、修飾子、および集約の使用**
https://www.ibm.com/docs/ja/cognos-analytics/12.0.0?topic=panel-assistant-best-practices
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/3124e12c-e4ee-4adc-8435-3bf1aca7ccc8.png)

**e). フィルターが使える**
「Top X」「where」「>」「for」などのフィルターが使えるのは覚えておく必要があります。
Top：show the top 3 products by sales
where：show sales where month is January
\>：show products by sales where inventory > 500
for：show products by sales for California
などなどですね。
**参考：アシスタントでのフィルタリング**
https://www.ibm.com/docs/ja/cognos-analytics/12.0.0?topic=panel-filtering-in-assistant
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/e251a68f-edc0-7b89-21dc-0d9b72a4d9d2.png)

**f). 時間のフィルターが使える**
「last」「before」「between」「every」など、時間を指定するフィルターが非常に多く使えます。
また、アメリカの「母の日」とか「独立記念日」などの祝日を指定することもできます。
last/before：Show sales before last Thursday
between：Show sales between March and Mother’s day
every：Show sales every January and March
などなどですね。
**参考：時間エンティティー・フィルター**
https://www.ibm.com/docs/ja/cognos-analytics/12.0.0?topic=assistant-time-entity-filters
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/f7cd6d6d-4314-3c0d-cfe4-9da8235a8cf6.png)