見出し画像

Tableau2022.3 テーブル拡張機能で形態素分析をやってみた

Tableau 2022.3の新機能、テーブル拡張機能を紹介します。

TableauとPython、R、Einstein Discoveryと接続してデータを変換したり前処理したりして高度な分析が可能になりました。
今までは、行レベルで変換することは可能でしたが、今回テーブル自体を変換できるようになりました。

今回は、岸田首相の記者会見内容をテキストとして入力し、そのテキストに出現する単語をPython/MeCabで出現回数を計算し、Tableauで可視化します。


準備

Tabpyを立ち上げます。

*インストールがまだの方は以下を参考にしてください。
Tabpy - Tableau + Python 連携 を使ってみよう!(その1:Tabpy導入編)
Tabpyとは?コンセプトやメリット、インストール方法まで解説

入力データ

画像1

*以下は、どうやって作ったかです。読み飛ばしてOK。
岸田首相の記者会見テキストは以下からコピペ。

Tableauに読み込ませるために少し前処理が必要で、
・改行を消す(改行を残すとTableauで行として認識されます)
・列名を加える(ここでは”内容”としました)


テーブル拡張機能

1. いつも通り、Tableau Desktopを開き、上記データに接続

画像6


2. 元のファイルを削除してから、左のペインからテーブル拡張機能を右にドラッグ&ドロップ

削除

画像7

「新しいテーブル拡張機能」をドラッグ&ドロップ(もしくはダブルクリック)

画像8

画像9


3.入力データを「テーブル拡張機能」にドラッグ&ドロップ

画像10


4.スクリプトに以下を貼り付け

import pandas as pd

import collections
import MeCab

def getWords(text):
   tagger =MeCab.Tagger()
   tagger.parse('')
   node = tagger.parseToNode(text)

   word_list=[]
   while node:
       word_type = node.feature.split(',')[0]
       if word_type in ["名詞",'代名詞']:
           word_list.append(node.surface)
       node=node.next
   word_chain=' '.join(word_list)

   c = collections.Counter(word_list)
   
   return c

df = (pd.DataFrame(_arg1))
text = df['内容'][0]

c = getWords(text)
d = c.most_common()
dff = pd.DataFrame(d)
dff.columns = ['word', 'occurrences']

return dff.to_dict(orient='list')

スクリプトは以下のブログを参考にしています。
https://python-man.club/python_morphological_analysis/

TabPyの注意点は、

・入力は、df = (pd.DataFrame(_arg1))
・出力は、dff.to_dict(orient='list') で辞書型

にする、です。


4.「適用」をクリックすると、データが出力される

画像4

下部ウィンドウの出力テーブルで、作成したデータフレームを見ることができます。

画像5


5.Tableauで可視化

ワークシートに移動。
wordをテキストに、occurencesを色とサイズに入れる。

画像3

列と行には何もいれなくていいです。
すると以下のように見えるはずなので、これで完成です。

画像2






この記事が気に入ったらサポートをしてみませんか?