R语言 生成单词云

R语言 生成单词云

词云 是一种用于表示文本数据的数据可视化技术,其中每个词的大小表示其频率或重要性。重要的文本数据点可以用词云来强调。词云被广泛用于分析社交网站的数据。

为什么使用词云?

人们应该使用词云来展示文本数据的原因是:

  • 词云 增加了简单性和清晰性。最常用的关键词在词云中更显眼
  • 词语云是 一种有效的交流工具。它们易于理解,易于分享,并具有影响力。
  • 字云 在视觉上比表格数据更有吸引力。

R语言实现

以下是在R编程中创建词云的步骤。

第1步:创建一个文本文件

在一个纯文本文件(如:file.txt)中复制和粘贴文本,并保存该文件。

第2步:安装并加载所需的软件包

# install the required packages
install.packages("tm")           # for text mining
install.packages("SnowballC")    # for text stemming
install.packages("wordcloud")    # word-cloud generator
install.packages("RColorBrewer") # color palettes
  
# load the packages
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
R

第3步:文本挖掘

  • 加载文本:

    使用text mining(tm)软件包中的Corpus()函数加载文本。语料库是一个文档的列表。

  1. 从导入步骤1中创建的文本文件开始:

    要导入保存在计算机中的文件,请输入以下R代码。你将被要求以交互方式选择文本文件。

text = readLines(file.choose())
R
  1. 将数据作为一个语料库加载:
# VectorSource() function 
# creates a corpus of 
# character vectors
docs = Corpus(VectorSource(text))   
R
  1. 文本转换:
    使用tm_map()函数进行转换,例如,替换文本中的特殊字符,如"@"、"#"、"/"
toSpace = content_transformer
             (function (x, pattern)
              gsub(pattern, " ", x))
docs1 = tm_map(docs, toSpace, "/")
docs1 = tm_map(docs, toSpace, "@")
docs1 = tm_map(docs, toSpace, "#")
R
  • 清理文本:

    使用tm_map()函数来删除不必要的空白,将文本转换为小写字母,删除常见的停顿词。数字可以用removeNumbers.来删除。

# Convert the text to lower case
docs1 = tm_map(docs1, 
        content_transformer(tolower))
  
# Remove numbers
docs1 = tm_map(docs1, removeNumbers)
  
# Remove white spaces
docs1 = tm_map(docs1, stripWhitespace)
R

第4步:建立一个术语-文档矩阵

文档矩阵是一个包含词的频率的表格。列名是词,行名是文档。可以使用文本挖掘包中的 TermDocumentMatrix() 函数,如下所示。

dtm = TermDocumentMatrix(docs)
m = as.matrix(dtm)
v = sort(rowSums(m), decreasing = TRUE)
d = data.frame(word = names(v), freq = v)
head(d, 10)
R

第5步:生成词云

词的重要性可以用词云来说明,如下所示。

wordcloud(words = dword, 
          freq = dfreq,
          min.freq = 1, 
          max.words = 200,
          random.order = FALSE, 
          rot.per = 0.35, 
          colors = brewer.pal(8, "Dark2"))
R

R语言云的完整代码如下。

# R program to illustrate
# Generating word cloud
  
# Install the required packages
install.packages("tm")           # for text mining
install.packages("SnowballC")    # for text stemming
install.packages("wordcloud")    # word-cloud generator
install.packages("RColorBrewer") # color palettes
   
# Load the packages
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
  
# To choose the text file
text = readLines(file.choose())
  
# VectorSource() function 
# creates a corpus of 
# character vectors
docs = Corpus(VectorSource(text))   
  
# Text transformation
toSpace = content_transformer(
              function (x, pattern)
              gsub(pattern, " ", x))
docs1 = tm_map(docs, toSpace, "/")
docs1 = tm_map(docs, toSpace, "@")
docs1 = tm_map(docs, toSpace, "#")
strwrap(docs1)
  
# Cleaning the Text
docs1 = tm_map(docs1, content_transformer(tolower))
docs1 = tm_map(docs1, removeNumbers)
docs1 = tm_map(docs1, stripWhitespace)
  
# Build a term-document matrix
dtm = TermDocumentMatrix(docs)
m = as.matrix(dtm)
v = sort(rowSums(m), 
         decreasing = TRUE)
d = data.frame(word = names(v),
               freq = v)
head(d, 10)
  
# Generate the Word cloud
wordcloud(words = dword, 
          freq = dfreq,
          min.freq = 1, 
          max.words = 200,
          random.order = FALSE, 
          rot.per = 0.35, 
          colors = brewer.pal(8, "Dark2"))
R

输出:

在R编程中生成单词云

在R编程中生成单词云

词语云的优势

  • 分析客户和员工的反馈。
  • 识别新的SEO关键词的目标。
  • 词云是杀手级的可视化工具。它们以简单明了的格式呈现文本数据
  • 词云是伟大的沟通工具。它们对任何希望交流基本见解的人来说都是非常方便的。

词汇云的缺点

  • 词汇云并不完美地适用于所有情况。
  • 数据应该根据上下文进行优化。
  • 词汇云通常不能提供改善和发展业务所需的可操作性的见解。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册