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"
它不断回事...
在pkg帮助:TM说,有一个c.Corpus函数,其默认设置为“递归'为FALSE,但如果设置为TRUE可能会导致“智能”合并。如果你觉得copus.doc是语料库类对象的列表,你可以尝试:
c(corpus.doc[[1]], corpus.doc[[2]], recursive=TRUE)
...但它是不明确的,你真的有“法典”级的对象。
str(corpus.doc) # see above
所以在很长的列表中的第一个元素是不一个语料库归类对象,而是一个PlaintextDocument。
除了我的评论,如果您在创建语料库之前将R
中的纯文本文档结合起来,那么该怎么办?例如,如果1.txt
,2.txt
和3.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多个纯文本文档,然后从生成的数据对象中创建一个语料库。这能让你更接近你想要做的事吗?
为什么不使用文本编辑器将一个文档的文本复制并粘贴到另一个文档中?如果您的示例中的两个文档是“PlainTextDocument”和“TextDocument”,那么在文本编辑器中编辑它们应该没有问题。然后使用该新文档作为tm包的输入。不是一个纯粹的R解决方案,但如果你只有少量的文件,则很快。 – Ben 2012-01-27 20:40:31
是的......我知道:)只有7000多个这样的文件(他们是语音文件),我想根据他们是否由同一位发言者来组合文本。 – appletree 2012-01-27 21:29:13