R文本挖掘 - 一个接一个合并段落无句混合起来

问题描述:

初学R和文本挖掘。目前使用tm包。R文本挖掘 - 一个接一个合并段落无句混合起来

我想将两个不同文档的文本一起添加到语料库中。 当我使用像

c(corpus.doc[[1]],corpus.doc[[2]]) 

声明或粘贴声明

paste(corpus.doc[[1]],corpus.doc[[2]]) 

我得到的文本合并的每一行的结果。

例如: 如果

> corpus.doc[[1]] 

He visits very often 
and 
sometimes more 

> corpus.doc[[2]]) 

She also 
stays 

我得到这些语句是一样的东西

He visits very often She also 
and stays 
sometimes more 

如何防止这一点,而不是让

He visits very often 
and 
sometimes more 
She also 
stays 

还是有在R tm软件包中合并文档的简单方法是什么?先谢谢你!


附加信息


当我使用
一个< - C(corpus.doc [[1]],corpus.doc [[2]],递归= TRUE)

我得到一个成为一个语料库与两个文件,所以这些文件中的每个文本仍然没有合并。我希望

a[[1]] 

给出了corpus.doc [[1]]和corpus.doc [[2]]的组合文本。

str(corpus.doc) 

显示这样的事情

List of 4270 
$ CREC-2011-01-05-pt1-PgE1-2.htm :Classes  'PlainTextDocument', 'TextDocument', 
     'character' atomic [1:74] html head titlecongression record volume issue 
head ... 
.. ..- attr(*, "Author")= chr(0) 
.. ..- attr(*, "DateTimeStamp")= POSIXlt[1:1], format: "2009-01-17 15:45:25" 
.. ..- attr(*, "Description")= chr(0) 
. . ..- attr(, "Heading")= chr(0) .. ..- attr(, "ID")= chr "CREC-2011-01-05-pt1-PgE1- 2.htm" 

它不断回事...

+0

为什么不使用文本编辑器将一个文档的文本复制并粘贴到另一个文档中?如果您的示例中的两个文档是“PlainTextDocument”和“TextDocument”,那么在文本编辑器中编辑它们应该没有问题。然后使用该新文档作为tm包的输入。不是一个纯粹的R解决方案,但如果你只有少量的文件,则很快。 – Ben 2012-01-27 20:40:31

+0

是的......我知道:)只有7000多个这样的文件(他们是语音文件),我想根据他们是否由同一位发言者来组合文本。 – appletree 2012-01-27 21:29:13

在pkg帮助:TM说,有一个c.Corpus函数,其默认设置为“递归'为FALSE,但如果设置为TRUE可能会导致“智能”合并。如果你觉得copus.doc是语料库类对象的列表,你可以尝试:

c(corpus.doc[[1]], corpus.doc[[2]], recursive=TRUE) 

...但它是不明确的,你真的有“法典”级的对象。

str(corpus.doc) # see above 

所以在很长的列表中的第一个元素是一个语料库归类对象,而是一个PlaintextDocument。

+0

这创建了两个文本文档的另一个语料库。我想要的是语料库中的单个文档。 – appletree 2012-01-27 19:07:47

+0

对不起,无法以有意义的方式回应,因为我没有足够的声望,我猜。我编辑了我原来的问题来回答你的问题。 – appletree 2012-01-27 19:31:14

+0

我的意思是,我不能在评论中使用代码部分,我是这个板上的初学者,功能有限。 – appletree 2012-01-27 19:39:06

除了我的评论,如果您在创建语料库之前将R中的纯文本文档结合起来,那么该怎么办?例如,如果1.txt2.txt3.txt是纯文本文件,你可以阅读到R像这样

a <- readLines(file("C:/Users/X/Desktop/1.txt")) 
b <- readLines(file("C:/Users/X/Desktop/2.txt")) 
c <- readLines(file("C:/Users/X/Desktop/3.txt")) 

,然后你可以将它们结合起来,类似于你上面的例子

abc <- c(a, b, c) 

这会按顺序堆叠文档并按照您的要求在单个数据对象中保留逐行格式。但是,如果您然后进行到这个语料库与

​​

,那么你会得到与尽可能多的文件行,这听起来并不像你想要的语料库。相反,你需要做的是结合了文本对象这样

abc.paste <- paste(a,b,c, collapse=' ') # this is what you want 

,使得所得abc.paste对象为单行。然后,当你使用

abc.corpus <- Corpus(VectorSource(abc.paste)) 

语料库的结果将是A corpus with 1 text document然后你就可以用在tm包功能分析。

应该直接将它扩展为一个函数,以有效连接7000多个纯文本文档,然后从生成的数据对象中创建一个语料库。这能让你更接近你想要做的事吗?