为什么 R 将我的 CSV 文件中的所有行合并为一个完整的文档?

Why is R merging all the rows in my CSV file as one whole document?

我正在使用 R 进行情绪分析。我的源文件包含大约 50 条客人评论,已在 Excel 中创建(每条评论记录在单行单列中)。因此,所有评论都在 A 列中,没有 headers。然后该文件已另存为 csv 文件并存储在文件夹中。

我的R代码如下:

library (tm)
docs<-Corpus(DirSource('E:/Sentiment Analysis'))
#checking a particular review in the document
writeLines(as.character(docs[[20]]))

运行 最后一行给我一条越界错误信息。 当我将其更改为 writeLines(as.character(docs[[1]])) 时,R 显示所有评论,就好像它们是一整段一样。

我该如何解决这个问题?

DirSource() 一起使用的 tm::Corpus() 函数将每个文件视为一个单独的文档,而不是将一个文件中的每一行都视为一个单独的文档。

要将文本文件的每一行作为单独的文档读取,可以使用 Corpus(VectorSource()) 语法。

例如,我们将创建一个文本文件,从目录中读取它以说明 Corpus()DirSource() 的行为方式对比我们将如何与 VectorSource() 一起读取.

# represent contents of the text file that was stored in 
# ./data/ExcelFile1.csv
aTextFile <- "This is line one of text.
This is line two of text. This is a second sentence in line two."

library(tm)
# read as the OP read it
corpusDir <- "./data/textMining"
aCorpus <- Corpus(DirSource(corpusDir))
length(aCorpus) # shows only one item in list, entire file

# use pipe as separator because documents include commas. 
aDataFrame <- read.table("./data/textMining/ExcelFile1.csv",header=FALSE,
                         sep="|",stringsAsFactors=FALSE)
# use VectorSource to treat each row as a separate document
aCorpus <- Corpus(VectorSource(aDataFrame$V1))
# print the two documents 
aCorpus[1]$content
aCorpus[2]$content 

...和输出。首先,我们用 DirSource():

读取语料库的长度
> length(aCorpus) # shows only one item in list, entire file
[1] 1

其次,我们将打印第二次读取的两行,说明它们被视为单独的文档。

> aCorpus <- Corpus(VectorSource(aDataFrame$V1))
> aCorpus[1]$content
[1] "This is line one of text."
> aCorpus[2]$content
[1] "This is line two of text. This is a second sentence in line two. "
>