Lecture08: Shiny, Collocate関数(RMecCab)

課題2の補足:プロットエリアの余白

RMeCab

ライブラリー&パッケージの読み込み

path_home <- system("echo $HOME",intern=T)
lib_path <- paste(path_home,"/usr/local/lib/libmecab.so.2", sep="")
dyn.load(lib_path)
library(RMeCab)

分かち書き&頻度表(テキストファイル使用)

View(freqNews1)

Collocation

collo_ja <- collocate(file = "nhk_news/nhk_news_1.txt", node = "カブトムシ", span = 3)
file = nhk_news/nhk_news_1.txt 
length = 87 

記号除外

共起スコア: T, MI

collScores(collo_ja,"カブトムシ", span = 3)
Error in collScores(collo_ja, "カブトムシ", span = 3) : 
  could not find function "collScores"

ディレクトリ内のファイル名を取得

(files <- list.files(dirName))
 [1] "kyoto1.txt"  "kyoto2.txt"  "osaka1.txt"  "osaka2.txt"  "osaka3.txt"  "osaka4.txt" 
 [7] "tokyo1.txt"  "tokyo2.txt"  "waseda1.txt" "waseda2.txt"
filesDir[1]
[1] "univ/kyoto1.txt"
filename
[1] "univ/osaka4.txt"

Collocationの取得手順

テキストの読み込み

txt<-readLines(filename)
txt<-strsplit(txt,"[[:space:]]|[[:punct:]]")
txt<-unlist(txt)
txt<-tolower(txt)
txt<- txt[txt != ""]
head(txt)
[1] "greetings" "everyone"  "today"     "i"         "was"       "appointed"

中心語の設定&出現位置

  • 中心語(node)=“education”
  • ignore.case: 大文字・小文字の区別
  • 文字検索: grep
  • grep使用例
node <- "education"
(nodeLst <- grep("^education$",txt, value=T))
[1] "education" "education"
(nodeIndex <- grep("^education$",txt, ignore.case = T))
[1]  17 695

周辺語の抽出

  • span=2
Left1 <- txt[nodeIndex-1]
Left2 <- txt[nodeIndex-2]
Right1 <- txt[nodeIndex+1]
Right2 <- txt[nodeIndex+2]

コンコーダンス

collo <- cbind(Left2, Left1, nodeLst, Right1, Right2)
colnames(collo) <- c("L2","L1","node","R1","R2")
rownames(collo) <- rep(1:dim(collo)[1])
collo
  L2         L1     node          R1           R2      
1 "minister" "of"   "education"   "culture"    "sports"
2 "research" "and"  "educational" "capability" "the"   
3 "missions" "were" "education"   "research"   "and"   

補足:grep関数による検索(部分一致)

grep(node,txt, ignore.case = T, value=T)
[1] "education"   "educational" "education"  

shiny

Shiny apps Demo

shinyパッケージのインストール

install.packages("shiny", dependencies = TRUE)

shinyパッケージのロード

library(shiny)

Shiny app作成手順

  1. Shiny appのフォルダを作成
  2. ui.R, server.R, (global.R)のスクリプトファイルを作成
  3. runApp(フォルダ名)で実行

app_hoge

  • server.R
  • ui.R ### Shinyアプリケーション”app_hoge”の実行
runApp("app_hoge")

app_hoge2

  • server.R
  • ui.R
  • global.R

Shinyアプリケーション”app_hoge2”の実行

runApp("app_hoge2")

プロットマーカーのアプリケーション1”app_pch1”の実行

runApp("app_pch1")

プロットマーカーのアプリケーション2”app_pch2”の実行

runApp("app_pch2")

Shinyでアプリケーションを作成する際の注意点

  • UI(外観)部分から作り始める
  • 少しずつコードを書いて、こまめに動作確認
LS0tCnRpdGxlOiAiTGVjMDg6IFNoaW55LCBDb2xsb2NhdGUoUk1lY0NhYikiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyBMZWN0dXJlMDg6IFNoaW55LCBDb2xsb2NhdGXplqLmlbAoUk1lY0NhYikKCiMjIyDoqrLpoYzvvJLjga7oo5zotrPvvJo8YSBocmVmPSJodHRwczovL3N0YXRzLmJpb3BhcHlydXMuanAvci9ncmFwaC9wbG90YXJlYS5odG1sIj7jg5fjg63jg4Pjg4jjgqjjg6rjgqLjga7kvZnnmb08L2E+CgojIyBSTWVDYWIKIyMjIOODqeOCpOODluODqeODquODvCbjg5Hjg4PjgrHjg7zjgrjjga7oqq3jgb/ovrzjgb8KYGBge3J9CnBhdGhfaG9tZSA8LSBzeXN0ZW0oImVjaG8gJEhPTUUiLGludGVybj1UKQpsaWJfcGF0aCA8LSBwYXN0ZShwYXRoX2hvbWUsIi91c3IvbG9jYWwvbGliL2xpYm1lY2FiLnNvLjIiLCBzZXA9IiIpCmR5bi5sb2FkKGxpYl9wYXRoKQpsaWJyYXJ5KFJNZUNhYikKYGBgCgojIyDliIbjgYvjgaHmm7jjgY3vvIbpoLvluqbooajvvIjjg4bjgq3jgrnjg4jjg5XjgqHjgqTjg6vkvb/nlKjvvIkKYGBge3J9CmZyZXFOZXdzMTwtUk1lQ2FiRnJlcSgibmhrX25ld3MvbmhrX25ld3NfMS50eHQiKQpmcmVxTmV3czEgPC1mcmVxTmV3czFbb3JkZXIoZnJlcU5ld3MxJEZyZXEsIGRlY3JlYXNpbmcgPSBUUlVFKSxdCmhlYWQoZnJlcU5ld3MxKQpgYGAKYGBge3IsIGV2YWw9RkFMU0V9ClZpZXcoZnJlcU5ld3MxKQpgYGAKCiMjIyBDb2xsb2NhdGlvbgpgYGB7cn0KY29sbG9famEgPC0gY29sbG9jYXRlKGZpbGUgPSAibmhrX25ld3MvbmhrX25ld3NfMS50eHQiLCBub2RlID0gIuOCq+ODluODiOODoOOCtyIsIHNwYW4gPSAzKQpoZWFkKGNvbGxvX2phKQpgYGAKCiMjIyDoqJjlj7fpmaTlpJYKYGBge3J9CmNvbGxvX2phIDwtIGNvbGxvX2phWyEgY29sbG9famEkVGVybSAlaW4lIGMoIuOAgSIsICLjgIIiLCLjgIwiLCLjgI0iLCLjg7siLCLvvIgiLCLvvIkiKSAsIF0KaGVhZChjb2xsb19qYSkKYGBgCiMjIyDlhbHotbfjgrnjgrPjgqI6IFQsIE1JCmBgYHtyfQpjb2xsU2NvcmVzKGNvbGxvX2phLCLjgqvjg5bjg4jjg6DjgrciLCBzcGFuID0gMykKY29sbFNjb3JlcwpgYGAKCiMjIyDjg4fjgqPjg6zjgq/jg4jjg6rlhoXjga7jg5XjgqHjgqTjg6vlkI3jgpLlj5blvpcKYGBge3J9CmRpck5hbWU9InVuaXYiCihmaWxlcyA8LSBsaXN0LmZpbGVzKGRpck5hbWUpKQpgYGAKCgpgYGB7cn0KZmlsZXNEaXIgPC0gdW5saXN0KGxhcHBseShkaXJOYW1lLCBwYXN0ZSwgZmlsZXMsIHNlcCA9ICIvIikpCmZpbGVzRGlyWzFdCmBgYAoKYGBge3J9CmZpbGVuYW1lIDwtIGZpbGVzRGlyW3doaWNoKGZpbGVzPT0ib3Nha2E0LnR4dCIpXQpmaWxlbmFtZQpgYGAKCiMjIENvbGxvY2F0aW9u44Gu5Y+W5b6X5omL6aCGCiMjIyDjg4bjgq3jgrnjg4jjga7oqq3jgb/ovrzjgb8KYGBge3J9CnR4dDwtcmVhZExpbmVzKGZpbGVuYW1lKQp0eHQ8LXN0cnNwbGl0KHR4dCwiW1s6c3BhY2U6XV18W1s6cHVuY3Q6XV0iKQp0eHQ8LXVubGlzdCh0eHQpCnR4dDwtdG9sb3dlcih0eHQpCnR4dDwtIHR4dFt0eHQgIT0gIiJdCmhlYWQodHh0KQpgYGAKCiMjIyDkuK3lv4Poqp7jga7oqK3lrprvvIblh7rnj77kvY3nva4KKiDkuK3lv4Poqp4obm9kZSk9ImVkdWNhdGlvbiIKKiBpZ25vcmUuY2FzZTog5aSn5paH5a2X44O75bCP5paH5a2X44Gu5Yy65YilCiog5paH5a2X5qSc57SiOiA8YSBocmVmPSJodHRwczovL3d3dy5yZG9jdW1lbnRhdGlvbi5vcmcvcGFja2FnZXMvYmFzZS92ZXJzaW9ucy8zLjYuMi90b3BpY3MvZ3JlcCIgdGFyZ2V0PSJfYmxhbmsiPmdyZXA8L2E+CiogPGEgaHJlZj0iaHR0cHM6Ly9zdGF0cy5iaW9wYXB5cnVzLmpwL3IvZGV2ZWwvcmVnZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmdyZXDkvb/nlKjkvos8L2E+CgpgYGB7cn0Kbm9kZSA8LSAiZWR1Y2F0aW9uIgoobm9kZUxzdCA8LSBncmVwKCJeZWR1Y2F0aW9uJCIsdHh0LCB2YWx1ZT1UKSkKKG5vZGVJbmRleCA8LSBncmVwKCJeZWR1Y2F0aW9uJCIsdHh0LCBpZ25vcmUuY2FzZSA9IFQpKQpgYGAKIyMjIOWRqOi+uuiqnuOBruaKveWHugoqIHNwYW49MgpgYGB7cn0KTGVmdDEgPC0gdHh0W25vZGVJbmRleC0xXQpMZWZ0MiA8LSB0eHRbbm9kZUluZGV4LTJdClJpZ2h0MSA8LSB0eHRbbm9kZUluZGV4KzFdClJpZ2h0MiA8LSB0eHRbbm9kZUluZGV4KzJdCmBgYAoKIyMjIOOCs+ODs+OCs+ODvOODgOODs+OCuQpgYGB7cn0KY29sbG8gPC0gY2JpbmQoTGVmdDIsIExlZnQxLCBub2RlTHN0LCBSaWdodDEsIFJpZ2h0MikKY29sbmFtZXMoY29sbG8pIDwtIGMoIkwyIiwiTDEiLCJub2RlIiwiUjEiLCJSMiIpCnJvd25hbWVzKGNvbGxvKSA8LSByZXAoMTpkaW0oY29sbG8pWzFdKQpjb2xsbwpgYGAKCiMjIyDoo5zotrPvvJpncmVw6Zai5pWw44Gr44KI44KL5qSc57Si77yI6YOo5YiG5LiA6Ie077yJCmBgYHtyfQpncmVwKG5vZGUsdHh0LCBpZ25vcmUuY2FzZSA9IFQsIHZhbHVlPVQpCmBgYAojIyBzaGlueQo8YSBocmVmPSJodHRwczovL3NoaW55LnJzdHVkaW8uY29tL2dhbGxlcnkvIiB0YXJnZXQ9Il9ibGFuayI+U2hpbnkgYXBwcyBEZW1vPC9hPgoKIyMjIHNoaW5544OR44OD44Kx44O844K444Gu44Kk44Oz44K544OI44O844OrCmBgYHtyLCBldmFsPUZBTFNFfQppbnN0YWxsLnBhY2thZ2VzKCJzaGlueSIsIGRlcGVuZGVuY2llcyA9IFRSVUUpCmBgYAoKIyMjIHNoaW5544OR44OD44Kx44O844K444Gu44Ot44O844OJCmBgYHtyfQpsaWJyYXJ5KHNoaW55KQpgYGAKCiMjIyBTaGlueSBhcHDkvZzmiJDmiYvpoIYKMS4gU2hpbnkgYXBw44Gu44OV44Kp44Or44OA44KS5L2c5oiQCjIuIHVpLlIsIHNlcnZlci5SLCAoZ2xvYmFsLlIp44Gu44K544Kv44Oq44OX44OI44OV44Kh44Kk44Or44KS5L2c5oiQCjMuIHJ1bkFwcCjjg5Xjgqnjg6vjg4DlkI0p44Gn5a6f6KGMCgoqIDxhIGhyZWY9Imh0dHBzOi8vc2hpbnkucnN0dWRpby5jb20vdHV0b3JpYWwvd3JpdHRlbi10dXRvcmlhbC9sZXNzb24xLyIgdGFyZ2V0PSJfYmxhbmsiPlR1dG9yaWFsPC9hPgoKIyMjIGFwcF9ob2dlCiogc2VydmVyLlIKKiB1aS5SCiMjIyBTaGlueeOCouODl+ODquOCseODvOOCt+ODp+ODsyJhcHBfaG9nZSLjga7lrp/ooYwKYGBge3IsIGV2YWw9RkFMU0V9CnJ1bkFwcCgiYXBwX2hvZ2UiKQpgYGAKCiMjIyBhcHBfaG9nZTIKKiBzZXJ2ZXIuUgoqIHVpLlIKKiBnbG9iYWwuUgoKIyMjIFNoaW5544Ki44OX44Oq44Kx44O844K344On44OzImFwcF9ob2dlMiLjga7lrp/ooYwKYGBge3IsIGV2YWw9RkFMU0V9CnJ1bkFwcCgiYXBwX2hvZ2UyIikKYGBgCgojIyMg44OX44Ot44OD44OI44Oe44O844Kr44O844Gu44Ki44OX44Oq44Kx44O844K344On44OzMSJhcHBfcGNoMSLjga7lrp/ooYwKKiA8YSBocmVmPSJodHRwOi8vd3d3LnN0aGRhLmNvbS9lbmdsaXNoL3dpa2kvci1wbG90LXBjaC1zeW1ib2xzLXRoZS1kaWZmZXJlbnQtcG9pbnQtc2hhcGVzLWF2YWlsYWJsZS1pbi1yIiB0YXJnZXQ9Il9ibGFuayI+UENIIFN5bWJvbHM8L2E+CmBgYHtyLCBldmFsPUZBTFNFfQpydW5BcHAoImFwcF9wY2gxIikKYGBgCgojIyMg44OX44Ot44OD44OI44Oe44O844Kr44O844Gu44Ki44OX44Oq44Kx44O844K344On44OzMiJhcHBfcGNoMiLjga7lrp/ooYwKYGBge3IsIGV2YWw9RkFMU0V9CnJ1bkFwcCgiYXBwX3BjaDIiKQpgYGAKCiMjIyBTaGlueeOBp+OCouODl+ODquOCseODvOOCt+ODp+ODs+OCkuS9nOaIkOOBmeOCi+mam+OBruazqOaEj+eCuQoqIFVJ77yI5aSW6Kaz77yJ6YOo5YiG44GL44KJ5L2c44KK5aeL44KB44KLCiog5bCR44GX44Ga44Gk44Kz44O844OJ44KS5pu444GE44Gm44CB44GT44G+44KB44Gr5YuV5L2c56K66KqNCgo=