Monday, October 18, 2021

SNSを考える2

 ### 投稿の分析 twitterの投稿を分析している

  • 数量的分析 投稿数、リツイート数、リプライ数、ライク数
  • 頻出ワード WordCloud、棒グラフ
  • 連語・出現数 N-Gram ネットワークチャート
  • 単語極性分析 単語のカテゴリー別頻出ワード

---

  • 投稿者基準 :発信元となる 発信者 長尾たかしの発信
  • キーワード検索: OR検索 長尾たかし 長尾議員 長尾衆議

 

 長尾たかし氏の発信数 2021-10-17まで


 


 16日に投稿数が増えたが、Like, リツイートが跳ね上がった。原因を見いだされるか考えて見たい。

 検索: OR検索 長尾たかし 長尾議員 長尾衆議

  

 

 

 

 

 

 

 

 

 

 

元の発信が増えれば、影響される投稿もLike、リツイートも増えているのが見える。3から4倍程度だが。でもこの16日・17日続いている。

 

日別の頻出ワード WordCloudで見てみる

特徴的な16日

 


続く17日

 


以前の15日

 

16日の前のピーク、10月6日



総裁選後の9月30日

 

私なりの分析仮説

9-29日程度の総裁選モードモードから、次第に衆院選モードに変わっていくのが見て取れる。

 16日から、頻出ワード上位に「人権」「ウイグル」「対中非難決議」「日本」が上位に上がってきた注目されるワードなのか。

 

連語分析 10月16日


 連語分析 10月6日

 

単語極性分析 10月16日


 単語極性分析 10月6日


政治関係の極性辞書は難しい大分単語登録したが、まだ一貫性が無いのと、ポジティブ、ネガティブの判断が場面で変わることも気づいた。

まあ今の性能では、ワードクラウドは出現数の多い順

極性ワードクラウドは、注目語、抽出前提のワードクラウドと言うところか

 以前の SNSを考えるは、

http://nmizojp.blogspot.com/2021/10/sns.html

----

実験で総裁選中から「高市早苗」氏をやっていたのでその一部は

9月29日に、82,000ツイート 2,000,500Likesの時に分析を止めていた



 


 

 

 

 

Wednesday, October 13, 2021

SNS分析を考える

 

Twitter分析

  • 数量的分析 投稿数、リツイート数、リプライ数、ライク数
  • 頻出ワード WordCloud、棒グラフ
  • 連語・出現数 N-Gram ネットワークチャート
  • 単語極性分析 単語のカテゴリー別頻出ワード

 

分析対象で

  • 投稿者基準 :発信元となる
  • キーワード検索の結果:発信の効果と考える

ここで、

発信者:長尾たかし

キーワード検索: OR検索 長尾たかし 長尾議員 長尾衆議

をしてみた結果を、集計して グラフにしてみた。数値の桁が違う系列の比較は、対数(log)表記グラフにすると見えてくる。データの関連性とか影響度を見るにはこの方が良い。Reply, reTweetが、Likesに影響を与えていると見える。

発信者検索: 長尾たかし

キーワード検索: OR検索 長尾たかし 長尾議員 長尾衆議


キーワード検索で引っかかったTweet文の頻出単語を作ってみた 2021-10-11のもの

特殊なマッチング辞書を作って二極化してみた


連語 言葉のつながりを2-gram ネットワーク描画してみた


 


Saturday, October 01, 2016

macOS Sierra で DataSience 分析環境を作る Homebrew利用

目的

Python 3系, (Python 2系), R, Scala, Java(JDK), Apache Spark を導入する
 IDE( integrated development environment )として
・Jupyter notebook
・Rtudio

Macでは、 pythonは標準で 以下にンストールされてますが
/usr/bin/python /System/Library/Frameworks/Python.framework
これはApple が管理しているものですので。 Data Scienceで利用する場合は独自にインストールした方が良いです Homebrewを使ってインストールします。
 最近では3系をインストールした方が良いでしょう。
すでに開発している人はpython2系が必要でしょう
ここでは、共存は しないでpytho3系だけとする
python3系は Apache Sparkで pyspark が2系ですのでそれを使う

準備

Xcode と コマンドライン・デベロッパ・ツールをインストール
App Store から Xcordeをインストール
Xcordを立ち上げる、ライセンス認証をする
立ち上がったら、メニューから
[Xcord ] > [ Open Developer Tool ]> [ More Developer Tool…]  を選ぶ
Apple Developer ログインページが開くのでSign In すると
Downloads for Apple Developers ページが開く
Xcodeと同じバージョンの Command Line Tools を選んでダウンロード、インストール


裏技
$ git ―version

 コマンドライン・デベロッパ・ツールを導入するダイアログが出るので
インストールする [インストール]を選ぶ

[Xcodeを入手]はここでは選ばないrewで
Xcodeは App Storeからインストールして、一度開いてライセンス認証をしておく

コマンドライン・デベロッパ・ツールだけでも良いと思うのだけど、HomebrewでXcodeがないと
インストールできないものがある。
HomebrewはXcodeとコマンドライン・デベロッパ・ツールインストール導入が前提になっている

Homebrew をインストールする

/usr/local/ ディレクトリのパーミションを変更する
変更前
drwxr-xr-x     2 root  wheel     68  7 31 05:49 local
変更後
drwxr-xr-x     2 username  admin     68  7 31 05:49 local
つまりパーミションを所有者をログインユーザー グループをadminにする

$ sudo chown -R $(whoami):admin /usr/local

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$ brew doctor  # homebrewの診断

Your system is ready to brew.

XQuartz のインストール

# Rで描画のために XQuartzが必要なので、以下からダウンロード・インストール
https://www.xquartz.org

Javaのインストール

$ brew tap caskroom/cask
$ brew install brew-cask
$ brew cask install java
# 確認
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ which java
/usr/bin/java

Rのインストール

$ brew tap homebrew/science
$ brew install R
# 確認
$ which R
/usr/local/bin/R

Quartzが立ち上がり描画すれば成功 

$ R

 Rの終了は q()
 Save workspace image? [y/n/c]: n 作業を保存するかしないか

RStudio インストール R IDE
RStudioホームページ  https://www.rstudio.com/
RStudio Desktop ダウンロードページ 
Open Source Editionで十分 MacOSX 10.6+ を選んでダウンロード・インストール

アプリケーションホルダーのRStudioを開く これで使えます

 Macの場合 ホームホルダー直下に ..Rprofileを置くことで描画文字化けが防げます https://gist.github.com/amano41/4173965 からダウンロードします
ページの右上4〜5行目にある [ Download ZIP ] ボタンを押します
ダウンロードした Rprofile.Rをホームホルダーに移動します

$ cd ~
$ mv Rprofile .Rprofile

Python3 インストール  pip3含まれる
$ brew install python3

Data science 環境パッケージインストール
# numpyにscipyが依存しているので順番が重要です
$ pip3 install numpy
$ pip3 install scipy
$ pip3 install pandas
$ pip3 install matplotlib
$ pip3 install statsmodels
$ pip3 install scikit-learn
$ pip3 install pymc
$ pip3 install jupyter

パッケージインストール・テスト
$ ipython --pylab
In [1]: import numpy
In [2]: import scipy
In [3]: import pandas
In [4]: x = randn(1000)
In [5]: hist(x,100)
これでヒストグラムが描画できればOK
終了は  exit()

ここまでにインストールされたパッケージ
$ pip3 list
appnope (0.1.0)
cycler (0.10.0)
decorator (4.0.10)
entrypoints (0.2.2)
ipykernel (4.5.0)
ipython (5.1.0)
ipython-genutils (0.1.0)
ipywidgets (5.2.2)
Jinja2 (2.8)
jsonschema (2.5.1)
jupyter (1.0.0)
jupyter-client (4.4.0)
jupyter-console (5.0.0)
jupyter-core (4.2.0)
MarkupSafe (0.23)
matplotlib (1.5.3)
mistune (0.7.3)
nbconvert (4.2.0)
nbformat (4.1.0)
notebook (4.2.3)
numpy (1.11.1)
pandas (0.18.1)
patsy (0.4.1)
pexpect (4.2.1)
pickleshare (0.7.4)
pip (8.1.2)
prompt-toolkit (1.0.7)
ptyprocess (0.5.1)
Pygments (2.1.3)
pymc (2.3.6)
pyparsing (2.1.9)
python-dateutil (2.5.3)
pytz (2016.6.1)
pyzmq (15.4.0)
qtconsole (4.2.1)
scikit-learn (0.18)
scipy (0.18.1)
setuptools (25.2.0)
simplegeneric (0.8.1)
six (1.10.0)
statsmodels (0.6.1)
terminado (0.6)
tornado (4.4.2)
traitlets (4.3.1)
wcwidth (0.1.7)
wheel (0.29.0)
widgetsnbextension (1.2.6)


パッケージの概要説明
Numpy  Pythonで科学計算を行うための拡張モジュール 多次元配列,行列 演算処理
>Scipy NumPy base 科学技術計算用の統計関数、画像、信号処理などのライブラリ
Matplotlib 2次元のグラフ描画用のモジュールで、Ipythonとの組み合わせで
Pandas  パフォーマンスに優れたデータ分析モジュールで、 時系列データ得意
jupyter  $ jupiter notebook とすると、ブラウザーが上がりIDEとして利用できる
ipython  jupyterによってインストールされた ほかんが出来る拡張シェル
Statsmodels  統計解析パッケージ
scikit-learn 機械学習ライブラリで、分類や回帰、クラスタリング評価尺度等
PyMC    Pythonのベイズ統計用ライブラリです 特にMCMCに重点を置いています


パッケージ テスト
$ ipython --pylab
In [1]: import numpy
In [2]: import scipy
In [3]: import pandas
In [4]: x = randn(1000)
In [5]: hist(x,100)

ヒストグラムが描画できれば OK
 python の終了は  exit()

日本語形態素解析 Tool MeCabをインストール


システムに MeCabと辞書をインストルする
$ brew install mecab
$ brew install mecab-ipadic

Taminalでテスト ---------------------------
 $ mecab
今日も元気で食事がうまい
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
助詞,係助詞,*,*,*,*,も,モ,モ
元気 名詞,形容動詞語幹,*,*,*,*,元気,ゲンキ,ゲンキ
助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
食事 名詞,サ変接続,*,*,*,*,食事,ショクジ,ショクジ
助詞,格助詞,一般,*,*,*,が,ガ,ガ
うまい 形容詞,自立,*,*,形容詞・アウオ段,基本形,うまい,ウマイ,ウマイ
EOS

RでMeCabを使う RMeCab
パッケージRMeCabをインストールする
$ R
install.packages("RMeCab", repos = "http://rmecab.jp/R")
library(RMeCab)
result<- p="" rmecabc="">unlist(result)
    名詞     助詞     名詞   助動詞     名詞     助詞   形容詞
  "今日"     "も"   "元気"     "で"   "食事"     "が" "うまい" 抜けるには 

control + d

pythonでMeCabを使う
mecab-python3をpython3環境にインストール

$ pip install mecab-python3

python3でも構わないのだけど、ipython やっている、コードは同じ
$ ipython --pylab

In [1]: import MeCab
In [2]: text = "豊洲市場の築地移転はどうなるのか?"
In [3]: t = MeCab.Tagger("-Ochasen")
In [4]: result = t.parse(text)
In [5]: print(result)
豊洲 トヨス 豊洲 名詞-固有名詞-人名-姓
市場 シジョウ 市場 名詞-一般
助詞-連体化
築地 ツキジ 築地 名詞-固有名詞-地域-一般
移転 イテン 移転 名詞-サ変接続
助詞-係助詞
どう ドウ どう 副詞-助詞類接続
なる ナル なる 動詞-自立 五段・ラ行 基本形
名詞-非自立-一般
助詞-副助詞/並立助詞/終助詞
記号-一般
EOS

Apache Sparkの導入

Sparkは

  • 分散処理のフレームワークでHadoopの後継といわれています。
  • インメモリ処理による高速化
  • 言語サポートの広さ、Java,Scala,python,Rが使える
  • 一台から始められる


Apache Spark インストール
Apache SparkはScalaをインストールしなくとも良いが学習のためインストルする
sbtはScalaの開発ツール

$ brew install scala
$ brew install apache-spark
$ brew install sbt

/usr/local/bin/ 以下にシンボリックリンクがあるので PATHは通っています。
Apache sparkは開発言語別に以下が用意されています。

  • spark-shell   Scala
  • pyspark       python
  • sparkR         R




Sunday, October 19, 2014

Homebrew install Mac OS X

 Homebrew
Mac OS X 10.7 or after
Xcode
Command Line Tools for Xcode

install Command Line Tools for Xcode
Xcord を起動してライセンス認証をしておく
$ xcode-select --install

homebrew   Homebrew - site Multi language
http://brew.sh/

#install homebew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

#check
$ brew doctor
your system is ready to brew.

 install package    brew install [ formuler ]
$ brew install wget

installed directory
/usr/local/Cellar/

 /usr/local/Cellar/    パッケージのインストール
 /usr/local/bin/   パッケージのリンク

uninstall package   brew uninstall [ formula ] or brew rm [ formula ]

update & upgrade
the latest version of th homebrew.  (homebrewを最新版へ)
$ brew update

the last version of the packages.(packageを最新版へ)
$brew upgrade
Upgrade for each package (各パッケージごとのアップグレード)
$ brew upgrade [ formuler ]

Search package    (パッケージを探す)   brew search [ txt ]   or   brew -S [text ]

$ brew -S git
gitだけの検索
$ brew -S  /^git$/

===========================================================

Homebew Cask  Site
http://caskroom.io/

homebrew-cask 
$ brew install caskroom/cask/brew-cask
or
$ brew tap phinze/homebrew-cask
$ brew install brew-cask

How to use Homebrew Cask
#Find the app you want to install   (インストールアプリを探す)
$ brow cask serch
#like grep
$ brew cask install google-chrome

# install apps
$ brew cask install google-chrome

Thursday, October 16, 2014

Macで日本語形態素解析 R RMeCab


Rのプロジェクトは以下ですが
http://www.r-project.org



R for Mac OS X のページからダウンロードしてくるのをお勧めします
http://cran.md.tsukuba.ac.jp/bin/macosx/


日本語解析エンジン R mecabの RMeCabを使うための用意です
========================= mecab インストール
mecabと辞書をまずインストールしてください

ダウンロード先
https://code.google.com/p/mecab/downloads/list
XXはバージョンNumber
・mecab-XX.tar.gz
・mecab-ipdic-XX.tar.gz

install------------------------------------------------
# mecab本体

 $ tar zxfv mecab-X.X.tar.gz
 $ cd mecab-X.X
 $ ./configure
 $ make
 $ make check
 $ sudo make install

#辞書のインストール
utfで使う場合 Mac,Linuxなら標準の方法
 $ tar zxfv mecab-ipadic-2.7.0-xxxx
 $ cd  mecab-ipadic-2.7.0-xxxx
 $ ./configure --with-charset=utf8
 $ make
 $ sudo make instal

====== RMeCabインストール==========================
・Rを起動  mecabがinstallされていれば
install.packages ("RMeCab", repos = "http://rmecab.jp/R")


補足-----------------------------------------------------------
# shift-jisの場合
$ tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz% cd mecab-ipadic-2.7.0-XXXX
$  ./configure
$  make
$ sudo make install

utf8で辞書を使えるように再構築
$ cd mecab-ipadic-2.7.0-xxxx% /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
$ make install
configure option で --enable-utf8-only を指定すると. MeCab が扱う 文字コードを utf8 に固定します。 euc-jp や shift-jis をサポートする場合, MeCab 内部に変換用のテーブルを埋めこみます。 --enable-utf8-only を 指定することでテーブルの埋めこみを抑制し, 結果として実行バイナリを 小さくすることができます。

Wednesday, October 15, 2014

python prepare for DataSience Mac Yosemite

Mac OS X 10.9(Maverics) python prepare for DataSience
(Python で DataSienceの準備)

YosemiteのPythonでデータサイエンス環境を整える
Shell が公開されています。下のページを見てください。
pipが入るのでパッケージの追加も便利です。
Pythonは2系で最新になるようです。

refer for: (参照)
http://fonnesbeck.github.io/ScipySuperpack/
install_superpack.sh for Yosemite Mac OS X 10.10   Xcode6  is release

Environment--------------------------------------------------
  • Mac OS X 10.10 (Yosemite)
  • Xcode 6
  • command_line_tools
  • Homebrew 
 Yosemite default Python is Python 2.7.6
do install_superpack.sh
 ------------------------------------------------------
auto installed pip

$ python -V
Python 2.7.8

$ pip freeze        #installed packege
Cython==0.21.1
Flask==0.10.1
Jinja2==2.7.3
Markdown==2.5.1
MarkupSafe==0.23
PyYAML==3.11
Pygments==1.6
Sphinx==1.2.3
Theano==0.6.0
Werkzeug==0.9.6
backports.ssl-match-hostname==3.4.0.2
bokeh==0.6.1
certifi==14.05.14
colorama==0.3.2
docutils==0.12
gevent==1.0.1
gevent-websocket==0.9.3
greenlet==0.4.5
ipython==3.0.0-dev
itsdangerous==0.24
matplotlib==1.5.x
mock==1.0.1
nose==1.3.4
numpy==1.9.0
pandas==0.15.0-6-g403f38d
patsy==0.3.0
pymc==2.3.4
pyparsing==2.0.3
pystache==0.5.4
python-dateutil==2.2
pytz==2013b
pyzmq==14.4.0
requests==2.4.3
scikit-learn==0.16-git
scipy==0.15.0.dev-28301fc
six==1.8.0
statsmodels==0.6.0-rc1
tornado==4.0.2
websocket==0.2.1
wsgiref==0.1.2


======================================================
check
--------------------------------------------------------------------------------------------------
$ ipython --pylab
In [1]: import numpy
In [2]: import scipy
In [3]: import pandas
In [4]: x = randn(1000)
In [5]: hist(x,100)
-------------------------------------------------------------------------------------------------------
Draw Histgram is OK   こんなヒストグラムが描ければOK


機能

Numpy      Pythonで科学計算を行うための拡張モジュール 多次元配列,行列 演算処理
Scipy      NumPy base 科学技術計算用の統計関数、画像、信号処理などのライブラリ
Matplotlib  2次元のグラフ描画用のモジュールで、Ipythonとの組み合わせで
Pandas     パフォーマンスに優れたデータ分析モジュールで、 時系列データ得意
IPython   補完ができたりOSのコマンドライン・シェルとしても利用できる拡張
Statsmodels 統計解析パッケージ
scikit-learn  機械学習ライブラリで、分類や回帰、クラスタリング評価尺度や
                  クロスバリデーション、パラメータのグリッドサーチ
PyMC         Pythonのベイズ統計用ライブラリです 特にMCMCに重点を置いています







Saturday, October 04, 2014

R データフレーム操作 メモ

データフレーム操作を良くするのでメモです

#######------------------------------------------------------------------------######
# make test data frame  データフレーム作成 
Sex = c("M", "M", "F", "F")
Age = c(20, 19, 18, 20)
height = c(170, 175, 160, 165)
weight = c(65, 75, 58, 60)
data = data.frame(Sex, Age, height, weight)
data                         #view check 確認  view check

rownames(data)               # row name  行名(row=行)  
colnames(data)               # col name   列名(column=列)

nrow(data)                   #how many rows 行数を調べる(row)
ncol(data)                   #how many cols 列数を調べる(col)

is.data.frame(data)          #judge Data Frame データフレームか調べる TRUE or FALSE

############  sampling col  列(col)を取り出す
data$height                  #データフレーム$列名 ベクトルで返る
data[ ,3]                    #データフレーム[,列番号] ベクトルで返る
data[ ,"height"]             #データフレーム[,"列名"] ベクトルで返る

############ sampling row     行(row)を取り出す
data[2, ]                     #データフレーム[行番号,] ベクトルで返る
data["2", ]                   #データフレーム[行名,] ベクトルで返る

########## sampling more than one col or row 複数の列・行を取り出す
data[ ,c(1, 3)]               #データフレーム[,c(列番号, 列番号)] ベクトルで返る
data[ ,c("Sex","height")]     #データフレーム[,c(列名, 列名)] ベクトルで返る

data[c(2, 4), ]              #データフレーム[,c(行番号, 行番号)] ベクトルで返る
data[c("2", "4"), ]          #データフレーム[,c(行名, 行名)] ベクトルで返る

# pickup match data's rows 条件に合う行データのみ取り出す
data$height >= 170        # TRUE FALSE で返す
data[c(T, T, F, F),  ]       # 値を取り出す
data[data$height>=170, ]        # 直接的に取り出すには これが最適 direct formula 


# データフレームに列を付け加える ##################################
data1<- data                #データフレームの複製
data1["new"] <- c("new", "new", "new", "old") #データフレームの無い列を指定して代入
data1                       #確認

#データフレームに transform(DF, 列名=ベクトル) 関数を使う場合
data2<- data                #データフレームの複製
data2<- transform(data2, eye=c("black", "brown", "blue", "brown"))
data2

#データフレームに cbind(DF, ベクトル) 列名調整必要
data3<- data                #データフレームの複製
data3<- cbind(data3, c(5, 3, 4, 2))
names(data3) <- c("Sex","Age","height","weight","point")         # 変数ラベルを調整
data3

# データフレームに 新しい列を計算で作る BMI=体重(kg)/身長(m)*身長(m) round(x,桁)
transform(data, BMI=round(data$weight/(data$height/100)^2, 1))

#データフレームにcbind()でデータフレームをつなぐ方法
data                        #確認
y <- data.frame(c=c(TRUE,TRUE,FALSE,FALSE)) #データフレーム作成
data4<- cbind(data, y)
data4

#####--データフレームを列の値をキーに繋ぐ--------------------------------------------
# データフレーム born を作る
name<- c("Moe","Larry","Curly","Harry")
year.born<- c(1887, 1902, 1903, 1964)
place.born<- c("Bensonhurst","Philadelphia","Brooklyn","Moscow")
born<- data.frame(name, year.born, place.born)
born
# データフレーム died を作る
name<- c("Curly","Moe","Larry") #繋げる
year.died<- c(1952, 1975, 1975)
died<-data.frame(name, year.died)
died

merge(born, died, by="name")    # 2つのデータフレームを name を使って対応する行を結合