使用wordcloud和文本挖掘编码问题

时间:2017-06-10 14:54:43

标签: r encoding tm

我正在尝试用意大利语实现一个Facebook页面的帖子。我能够很好地开发wordcloud,但是在渲染意大利语中特殊字符时遇到问题,例如à,è,ò等。我想要的是用UTF-8编码所有文本以避免这些问题。有什么建议吗?

这是代码

new_variable <- as.vector(import_text)
#create corpus from vector of tweets
him_corpus <- Corpus (VectorSource(new_variable))
inspect(him_corpus[1])
him_clean <- tm_map(him_corpus, removePunctuation)
him_clean <- tm_map(him_clean, content_transformer(tolower))
him_clean <- tm_map(him_clean, removeWords, stopwords("italian"))
#him_clean <- tm_map(him_clean, removeNumbers)
him_clean <- tm_map(him_clean, stripWhitespace)
him_clean <- tm_map(him_clean, removeWords, c("skytg24", "sky")) #nserire qui l'hashtag oggetto di ricerca per esluderlo dalla cloud altrimenti altera i risultati
wordcloud(him_clean, ramdom.order=F, col=rainbow(50), max.words=70)

1 个答案:

答案 0 :(得分:0)

我通常做的事情(我经常使用德语文本)使用以下清洁功能

SpecialCharacterCleaner <- function(text_vector){
  text_vector <- gsub("[ä]", "ae", text_vector)
  text_vector <- gsub("[ö]", "oe", text_vector)
  text_vector <- gsub("[ü]", "ue", text_vector)
  text_vector <- gsub("[è]", "e", text_vector)
  text_vector <- gsub("[é]", "e", text_vector)
  text_vector <- gsub("[à]", "a", text_vector)
  return(text_vector)
}

所以你松开了口音(我知道它们很重要,我是意大利语),但是你可以做一个干净的分析(当人们用同一个词两个不同的口音(错误)给你带来困难时可能出现困难两个不同的词,如“perchè”和“perché”。这会改变你的字数(相信我会发生这么多)并给你多个实际上相同的单词。

但你实际上可以使用重音符号。我和德语有同样的问题。因此,请检查文件的编码。我的经验是,这不是R是一个问题,而是你的文件是如何编码的。如果你有一个好的编辑器(如Ultraedit for windows),你可以检查编码。如果它是错的,你会得到奇怪的字符而不是重音。我希望这可以帮助你。你可以在这里找到关于文字清理的简短说明https://udata.science/2017/06/02/string-cleaning-for-text-mining-in-r/我希望它可以帮助你(仍在进行中)。

此致,翁贝托