2017-07-18 53 views
0

我一直在試圖爲一個隨機文件做情緒分析。然而,拋出的錯誤是:錯誤:找不到函數「classify_emotion」

could not find function "classify_emotion" 

包「情緒」不可用(對於R版本3.1.2)。但是通過以下方式獲得了相同的安裝:install_github('sentiment140', 'okugami79')

錯誤仍然存​​在:could not find function "classify_emotion"

代碼:

library(plyr) 
library(ggplot2) 
library(wordcloud) 
library(RColorBrewer) 
library(tm) 
library(SnowballC) 
library(sentiment) 
library(Rcpp) 
skill <- read.csv("C:/Users/632579/Desktop/skill.csv", header=FALSE, comment.char="#") 
df<- data.frame(skill) 
textdata <- df[df$data, ] 
textdata = gsub("[[:punct:]]", "", textdata) 
textdata = gsub("[[:punct:]]", "", textdata) 
textdata = gsub("[[:digit:]]", "", textdata) 
textdata = gsub("http\\w+", "", textdata) 
textdata = gsub("[ \t]{2,}", "", textdata) 
textdata = gsub("^\\s+|\\s+$", "", textdata) 
try.error = function(x) 
{ 
    y = NA 
    try_error = tryCatch(tolower(x), error=function(e) e) 
    if (!inherits(try_error, "error")) 
    y = tolower(x) 
    return(y) 
} 
textdata = sapply(textdata, try.error) 
textdata = textdata[!is.na(textdata)] 
names(textdata) = NULL 
class_emo = classify_emotion(textdata, algorithm="bayes", prior=1.0) 
emotion = class_emo[,7] 
emotion[is.na(emotion)] = "unknown" 
class_pol = classify_polarity(textdata, algorithm="bayes") 
polarity = class_pol[,4] 


sent_df = data.frame(text=textdata, emotion=emotion,polarity=polarity, stringsAsFactors=FALSE) 
sent_df = within(sent_df,emotion <- factor(emotion, levels=names(sort(table(emotion), decreasing=TRUE)))) 
ggplot(sent_df, aes(x=emotion)) + 
geom_bar(aes(y=..count.., fill=emotion)) + 
scale_fill_brewer(palette="Dark2") + 
labs(x="emotion categories", y="") 

ggplot(sent_df, aes(x=polarity)) + 
geom_bar(aes(y=..count.., fill=polarity)) + 
scale_fill_brewer(palette="RdGy") + 
labs(x="polarity categories", y="") 
emos = levels(factor(sent_df$emotion)) 
nemo = length(emos) 
emo.docs = rep("", nemo) 
for (i in 1:nemo) 
{ 
    tmp = textdata[emotion == emos[i]] 
    emo.docs[i] = paste(tmp, collapse=" ") 
} 
emo.docs = removeWords(emo.docs, stopwords("english")) 
corpus = Corpus(VectorSource(emo.docs)) 
tdm = TermDocumentMatrix(corpus) 
tdm = as.matrix(tdm) 
colnames(tdm) = emos 
comparison.cloud(tdm, colors = brewer.pal(nemo, "Dark2"), 
       scale = c(3,.5), random.order = FALSE, 
       title.size = 1.5) 
+1

我在github上也找不到那個函數。你能指點我介紹它的地方嗎? – Masoud

+0

我認爲它不是你在github上找到的那個包。你可以安裝'crannti檔案的'sentiment'包或找到正確的github repos – cderv

+0

嘗試安裝'RTextTools'包 –

回答

0

你應該考慮更新到R的當前版本,更新包,並看看是否能不能解決問題。考慮使用「installr」軟件包進行更新。

該功能位於here如果您正在尋找直接加載它。

+0

嘗試過.....但是現在給出:classify_emotion(textdata,algorithm =「bayes」,prior = 1): 找不到函數「create_matrix」 –

+1

您是否嘗試直接加載函數或更新R? create_matrix是包中的另一個函數,也需要直接加載。我鼓勵你更新R,然後嘗試使用install.packages(「sentiment」)安裝軟件包。 3.1.2已經過時,很多軟件包不兼容。 – Tiffany

0

雖然這個問題有點過時,但是,如果其他人面臨同樣的問題,我提供了一個解決方案。我有相同/相似的問題。

我不得不單獨安裝,首先安裝RStem和tm軟件包。然後從磁盤安裝情緒。然後它運行良好。謝謝。