俳句をDataiku上でLLMレシピを用いて構造化し、Tableauで可視化してみた

# 目次

[1.はじめに（完成形ご紹介）](#1-はじめに（完成形ご紹介）)
[2.元データについて](#2-元データについて)
[3.前処理](#3-前処理)
[4.LLMレシピを活用したデータ加工（非構造化→構造化）](#4-LLMレシピを活用したデータ加工（非構造化→構造化）)
[5.後処理](#5-後処理)
[6.Tableauで可視化](#7-Tableauで可視化)
[7.おわりに](#7-おわりに)


# 1. はじめに（完成形ご紹介）
40,000件の俳句データを集め、その中から桜に関する言葉を含む俳句（約900）に焦点を当て、深い分析を行いました。Dataiku上で生成AI使用をし、感情分析、形態素解析、カナ変換などのデータ加工を経て、Tableauで視覚化しました。

この分析で3つの洞察を得ることができました。
#### **１．感情分析によれば、哀愁を帯びた寂しさを感じさせる俳句が最も多かった。人はさみしい・わびしい時に俳句をよみたくなるんですね**

#### **２．桜（サクラ）という単語は、俳句の下五の句に51%の割合で現れ、結句に最も用いられている**

#### **３．"咲く"と"散る"という動詞がほぼ等しく使用されており、これは咲くという喜びと同じくらい桜が散る儚さに心を動かされていることの表れと言えます。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/8ffb82c0-372a-ed3f-2f0c-d8c720ad9ee0.png)

Dataikuで作成したフローはこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/9828f29c-ea4c-b0ae-bdd1-3855a00c7d31.png)

https://x.com/YNdatahaiker/status/1777690391145591217



# 2. 元データについて
[こちら](https://github.com/yoko-ot/Haiku)にある[俳句データ](https://raw.githubusercontent.com/yoko-ot/Haiku/master/dataset/haiku/haiku_all)40000件ある俳句のデータを拝借しました。

こんな感じ。これ分析してって渡されても泣いちゃいますよね。。。
メジャーもディメンションもないじゃん（泣）って、、




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/403af0b4-e93e-b81d-1690-731fa54d8811.png)

# 3. 前処理

## 3-1. 行番号をふる
ノーコードでできるはずだけど、パッと思いつかなかったのでChat GPTにPythonコード書いてもらってPythonレシピで実装。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/76728da1-a912-ea85-b9bd-f718f0e62fa4.png)

コピペして入力データと出力データの名前変えるだけ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/97704e3f-f56c-03ea-f758-a93aff5501d9.png)


## 3-2. ”さくら”が入っている俳句に絞る
フィルタレシピで関連する語句が含まれているものだけをフィルタで残す
これで40000件→900件へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/9c2f6c79-81d2-3f10-1a3b-eb292753ac5d.png)

# 4. LLMレシピを活用したデータ加工（非構造化→構造化）

## 4-1.感情分析
LLMレシピでPrompt Studioで下記の通りプロンプトを書いて実行！ 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/2dde519a-9892-d25e-ef6b-f3d4ed328e4e.png)

## 4-2.形態素分析
こちらもこれだけ！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/6aea7de7-66f7-29d9-7739-0de2870cf5f2.png)

## 4-3.俳句を上五・中七・下五に分解

最初にそのままするもあまり精度が良くない・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/e14a1806-dce6-26f3-8d47-b3daf1025fb8.png)

そこで一度カタカナに直してからのほうが精度が高くなるのでは？と閃く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/73c5939c-38d2-1fa4-25d0-21700b1e9af2.png)

精度を良くするポイントは例示（Examples）を書いてあげること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/638b521f-5b6b-d759-0311-9998311e61cc.png)

# 5. 後処理

どの句に”さくら”が含まれているのかフラグ立てします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/ee0f45ef-f3ab-764b-8602-e218732374d4.png)

後でTableauで使いやすいようにFoldします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/32bcc899-b1c9-a4b2-faf1-2793f65b15f4.png)

出来上がったデータは下記２つ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/5f3bab74-f6b4-9d2e-1095-c5aa2b897844.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/748b1b05-457c-99e2-27dc-0e341c451451.png)

# 6. Tableauで可視化
省略。
（今Tableau Publicにログインできないのでカスタマーサポートにお問合せ中）

# 7. おわりに
DataikuのLLMレシピを活用することで非構造化データを構造化し分析していくことができるようになりました。それをTableauの表現力で魅せることで、インサイトが伝わります。

最後に一句。

桜が咲くと同じくらい散る時に人間は心が動いて俳句を詠むんだなというインサイトがDataikuの分析(カワセミ閃く)で得ることができて、Tableau(散る桜で彩られている水面)で表現しました。

この俳句も背景も生成AIで作っています。


![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550964/ae719503-2602-b1c5-0f3f-268145d3e663.png)