r 資料探勘入門 最後一章 勘誤
這本書寫的還是不錯的,都很基礎, 常見的內容也都涉及到了,就是最後一章這個程式碼呀。。。真的不敢恭維。 這裡做一個詳細的勘誤。 如果有不對的地方也歡迎指正。
首先,最後一章是譯者自己寫的吧。。。利用微博的api,不過微博這玩意那麼多限制。。。結果確實跟作者高的不同, 話不多說進入勘誤。
程式碼: 1. 原作者說了如果有問題需要用utf-8編碼重新開啟, 改成utf8也不麻煩,為什麼不能好好改一下呢? 中間大量的中文即使改成utf8 也有亂碼;
2.程式碼行26 sys.setlocale, 應該是Sys.setlocale。。。如果釋出之前程式碼跑過了,不知道為啥會出現這種情況?? 書上倒是沒印錯。
3.Rwordseg 包安裝採用了install.pacakges()的方式, 去網上查就知道這經常會報錯, 需要配合rjava安裝,然後之前需要配置好java環境,即使如此也會報錯= = , 畢竟R不是原來的R了。 只能下載然後從zip安裝= = 。 。。。
- 行 14/15 wobject <- fromJSON(data) length(wobject$statuses) 得不到100條微博, 而且最後結尾也不完整。
反正程式碼是公開的, 我po一下原來的第15章好了~
敘述部分: 上來就說建立一個應用,明明下面寫的是建立網頁應用,一開始還得點移動應用而不是網頁接入。。。
為什麼不能寫清楚一些, 說明一下點選移動應用 能廢多少時間啊摔
#
# 第15章
# SNSデータの分析
#
# Twitter REST API
# GET search/tweets
# https://syncer.jp/twitter-api-matome/get/search/tweets
install.packages("twitteR")
install.packages("ROAuth")
install.packages("base64enc")
library(twitteR)
library(ROAuth)
library(base64enc)
APIKey <- "****"
APISecret <- "****"
accessToken <- "****"
accessSecret <- "****"
setup_twitter_oauth(APIKey, APISecret, accessToken, accessSecret)
searchword <- "ガラケー スマホ"
searchquery <- iconv(paste0(searchword," AND -filter:links AND -RT"), to="UTF-8")
tw.df <- twListToDF(searchTwitter(searchquery,
since=as.character(Sys.Date()-8),
until=as.character(Sys.Date()), n=10000))
names(tw.df)
# ツイート數の集計
library(dplyr)
library(ggplot2)
# 日別の集計
tw.daily <- tw.df %>%
mutate(twdate=as.Date(created)) %>%
group_by(twdate) %>% summarize(cnt = n())
tw.daily
qplot(twdate, cnt, data=tw.daily, geom="bar", stat="identity")
# 印刷用グラフ
cairo_pdf("tw.daily.pdf", width=8, height=8, family="MixMix 1P")
qplot(twdate, cnt, data=tw.daily, geom="bar", stat="identity", fill=I("#666666")) +
theme_bw(base_size=18)
dev.off()
# 時間別の集計
tw.hourly <- tw.df %>%
mutate(twhour=as.POSIXct(format(created, "%Y-%m-%d %H:00:00"))) %>%
group_by(twhour) %>% summarize(cnt = n())
tw.hourly
qplot(twhour, cnt, data=tw.hourly, geom="bar", stat="identity")
# 印刷用グラフ
cairo_pdf("tw.hourly.pdf", width=8, height=8, family="MixMix 1P")
qplot(twhour, cnt, data=tw.hourly, geom="bar", stat="identity", fill=I("#666666")) +
theme_bw(base_size=18)
dev.off()
# RMeCabのインストール
install.packages ("RMeCab", repos = "http://rmecab.jp/R")
library(RMeCab)
# 前処理
tw.txt <- unique(tw.df$text)
tw.txt <- gsub("[[:print:]]", "", tw.txt, perl=TRUE)
tw.txt <- iconv(tw.txt, from="UTF-8", to="CP932", "")
tw.txt <- tw.txt[-grep("^RT", tw.txt)]
tw.dmat <- docMatrixDF(tw.txt, pos = c("名詞"))
dim(tw.dmat)
tw.wcnt <- as.data.frame(apply(tw.dmat, 1, sum))
tw.wcnt <- tw.wcnt[
!(row.names(tw.wcnt) %in% unlist(strsplit(searchword, " "))),
1, drop=FALSE]
tw.wcnt2 <- data.frame(word=as.character(row.names(tw.wcnt)),
freq=tw.wcnt[,1])
tw.wcnt2 <- subset(tw.wcnt2, rank(-freq)<25)
ggplot(tw.wcnt2, aes(x=reorder(word,freq), y=freq)) +
geom_bar(stat="identity", fill="grey", color="black") +
theme_bw(base_size=20) + coord_flip() + xlab("word")
cairo_pdf("wordcount.pdf", family="MigMix 1P", width=12, height=8)
ggplot(tw.wcnt2, aes(x=reorder(word,freq), y=freq)) +
geom_bar(stat="identity", fill="grey", color="black") +
theme_bw(base_size=20) + coord_flip() + xlab("word")
dev.off()
install.packages("wordcloud")
install.packages("RColorBrewer")
library(wordcloud)
library(RColorBrewer)
tw.wcnt <- subset(tw.wcnt, tw.wcnt[, 1] >= 30)
pal <- brewer.pal(8,"Dark2")
cairo_pdf("wordcloud.pdf", family="Meiryo", width=8, height=8)
wordcloud(row.names(tw.wcnt), tw.wcnt[, 1], scale = c(4, .2),
random.order = T, rot.per = .15, colors = pal)
dev.off()
# ネットワーク分析
unlist(RMeCabC("安いガラケーに機種変更したい"))
tw.file <- tempfile()
write(gsub("\n", "", tw.txt), file=tw.file)
tw.bigram <- NgramDF(tw.file, type = 1, N = 2,
c("名詞", "形容詞", "動詞"))
sortlist <- order(tw.bigram[,3],decreasing = TRUE)
tw.bigram <- tw.bigram[sortlist,]
tw.bigram <- subset(tw.bigram, Freq>20)
head(tw.bigram)
install.packages("igraph")
library(igraph)
tw.graph <- graph.data.frame(tw.bigram)
# コミュニティーの抽出
eb <- edge.betweenness.community(tw.graph)
# グラフ描畫
cairo_pdf("network.pdf", family="Meiryo", width=8, height=8)
plot(tw.graph, vertex.label=V(tw.graph)$name,
vertex.label.family="Meiryo",
vertex.size=3*log(degree(tw.graph)),
vertex.color=cut_at(eb, 10), edge.arrow.size=0.1,
vertex.label.cex=1, edge.arrow.width=1)
dev.off()
plot(tw.graph, vertex.label=V(tw.graph)$name,
vertex.size=3*log(degree(tw.graph)),
vertex.color=cut_at(eb, 10), edge.arrow.size=0.1,
vertex.label.cex=1, edge.arrow.width=1)
相關文章
- java入門最後一章 簡易撲克牌比較大小Java
- R語言入門與資料分析R語言
- 第一章 Excel資料分析入門 --(2)Excel匯入資料Excel
- [ChatGPT 勘誤] SAP ABAP 裡 cl_r3standard_persistence 的用途?ChatGPT
- Hadoop大資料探勘從入門到進階實戰Hadoop大資料
- 《資料探勘導論》讀後感
- MySQL入門--後設資料MySql
- 《R語言入門與資料分析》——向量索引R語言索引
- 資料探勘從入門到放棄(三):樸素貝葉斯
- 【R語言入門】R語言中的變數與基本資料型別R語言變數資料型別
- 【機器學習入門與實踐】合集入門必看系列,含資料探勘專案實戰,適合新人入門機器學習
- 《普林斯頓數學指南》勘誤
- 《C Primer Plus》,362頁勘誤
- 「iOS 面試之道」勘誤(二)iOS面試
- 第一章 Excel資料分析入門 --(3)Excel處理資料的常用操作Excel
- 關於 RemoteViews 跨程式資源訪問的勘誤REMView
- Python資料探勘入門與實踐---使用scikit-learn 估計器分類Python
- [ChatGPT 勘誤]:SAP ABAP 系統裡資料庫表 dlv_systc 的用途ChatGPT資料庫
- Python新手入門最容易犯的錯誤有哪些?Python
- 資料探勘( TO DO LIST)
- 資料探勘技術
- 資料探勘與生活
- R語言快速入門R語言
- 資料探勘從入門到放棄(一):線性迴歸和邏輯迴歸邏輯迴歸
- 零基礎入門資料探勘——二手車交易價格預測:baseline
- 快速入門pandas進行資料探勘資料分析[多維度排序、資料篩選、分組計算、透視表](一)排序
- 【R語言入門】R語言環境搭建R語言
- 資料治理之後設資料管理的利器——Atlas入門寶典
- 爬蟲入門第一章爬蟲
- R語言的入門教程R語言
- mysql資料誤刪後的資料回滾MySql
- MIDI檔案格式分析(補充和勘誤)
- 大資料入門大資料
- NLP入門資料
- 《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive BayesKNNAI
- 資料探勘和資料提取能做什麼?
- 常用資料探勘演算法演算法
- 資料探勘-層次聚類聚類