著者:飯尾 淳
本連載の第2 回(2017 年6 月号掲載)では、SNS(Facebook)のデータを分析しました。そこでは、投稿時間別のヒストグラムを作り、自分が何時頃によく投稿しているのかを考えてみました。今回は、バーティカルバー(垂直の棒)による代表的な表現に立ち戻り、再度、ヒストグラムを描いて分析してみましょう。分析の対象は、会議録です。国会議員による発言の状況を、ざっくりと捉えてみようという試みです。
シェルスクリプトマガジン Vol.56は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#!/bin/bash dirs=(XML TXT1 TXT2 DAT) for d in ${dirs[@]}; do if [ ! -d $d ]; then mkdir $d fi done # StartDate SD=2018-05-30 # EndDate ED=2018-05-30 while read line do echo $line ... arg=`echo speaker=$line\&maximumRecords=50\&from=$SD\&until=$ED \ | nkf -WwMQ | sed 's/=$//g' | tr -d '\n' | tr = %` curl http://kokkai.ndl.go.jp/api/1.0/speech?$arg > XML/$line.xml sleep 3 ./get_speech.py XML/$line.xml | sed -e 's/ / /g' | cut -d ' ' -f 2-\ | grep -v '^$' > TXT1/$line.txt cat TXT1/$line.txt | sed 's/。/。\ /g' | sed 's/([^)]*)//g' | grep '。$' > TXT2/$line.txt echo -n '' > DAT/$line.dat while read line2 do echo $line2 | wc -m >> DAT/$line.dat done < TXT2/$line.txt echo done done < pols.txt |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/usr/bin/env python from bs4 import BeautifulSoup import sys args = sys.argv xml = open(args[1]) bsObj = BeautifulSoup(xml.read(), "lxml") targets = bsObj.findAll("speech") for t in targets: print(t.get_text()) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
abe<-read.csv('DAT/安倍晋三.dat', header=F) eda<-read.csv('DAT/枝野幸男.dat', header=F) shi<-read.csv('DAT/志位和夫.dat', header=F) kat<-read.csv('DAT/片山虎之助.dat', header=F) tam<-read.csv('DAT/玉木雄一郎.dat', header=F) aso<-read.csv('DAT/麻生太郎.dat', header=F) myplot <- function(title="議員名", color1, color2, data) { x = data$V1 hist(x, border = color1, col = color2, breaks = c(0,20,40,60,80,100,120,140,160,180,200, 220,240,260,280,300,320,340,360,380,400,420), lwd = 3, xlim = c(0.0, 400), ylim = c(0.0, 0.018), freq = FALSE, main = paste(title, 'による発言の長さ', sep=''), ylab = '', xlab = '一発話(一文)あたりの文字数') } png("graph_r.png", width=2400, height=1280) par(las=1, mfrow=c(2,3), cex=2.4, lwd=3) par(family="HiraMaruProN-W4") myplot(title="A氏", color1="#0288D1", color2="#04C0E8", data=abe) myplot(title="B氏", color1="#FBC02D", color2="#FFD85A", data=aso) myplot(title="C氏", color1="#FFEA00", color2="#FFFC80", data=eda) myplot(title="D氏", color1="#0F9D58", color2="#1FCAB0", data=shi) myplot(title="E氏", color1="#FF5252", color2="#FFA4A4", data=kat) myplot(title="F氏", color1="#AFB42B", color2="#D0D858", data=tam) dev.off() |