当我尝试在纯文本上使用strsplit时,它具有所需的属性,即存储的值从一串字符转换为带有字符串的向量。例如,
txt = "The fox is Brown.\nThe Fox has a tail."
strsplit(txt, "\n")
对于实际问题,我在Windows 7的R 3.4.0中使用NLP软件包 tm (v0.7-1)。
当我创建我的语料库并尝试使用 tm 中的 content_transformer 功能时,它会破坏我的语料库而不是返回内容的向量。
require(tm) #version 0.7-1
txt = "The fox is Brown.\nThe Fox has a tail."
docs = Corpus(VectorSource(txt))
to_newline = content_transformer(function (x) unlist(strsplit(x, "\n")))
docs = tm_map(docs, to_newline)
str(docs)
上面代码中str(docs)
的输出如下所示:
List of 2
$ 1:List of 2
..$ content: chr "The fox is Brown."
..$ meta :List of 7
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1], format: "2017-06-25 15:11:55"
.. ..$ description : chr(0)
.. ..$ heading : chr(0)
.. ..$ id : chr "1"
.. ..$ language : chr "en"
.. ..$ origin : chr(0)
.. ..- attr(*, "class")= chr "TextDocumentMeta"
..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
$ 2:List of 2
..$ content: chr "The Fox has a tail."
..$ meta :List of 7
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1], format: "2017-06-25 15:11:55"
.. ..$ description : chr(0)
.. ..$ heading : chr(0)
.. ..$ id : chr "2"
.. ..$ language : chr "en"
.. ..$ origin : chr(0)
.. ..- attr(*, "class")= chr "TextDocumentMeta"
..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
- attr(*, "class")= chr [1:2] "SimpleCorpus" "Corpus"
我希望它看起来如下$ content
是一个字符向量:
List of 1
$ 1:List of 2
..$ content: chr [1:2] "The fox is Brown." "The Fox has a tail."
..$ meta :List of 7
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1], format: "2017-06-25 15:11:55"
.. ..$ description : chr(0)
.. ..$ heading : chr(0)
.. ..$ id : chr "1"
.. ..$ language : chr "en"
.. ..$ origin : chr(0)
.. ..- attr(*, "class")= chr "TextDocumentMeta"
..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
答案 0 :(得分:0)
这需要大量的反复试验。事实上,我正在使用DirSource
来读取数据语料库,我需要做的就是将语料库中的函数序列读取转换为VCorpus(DirSource(directory_name), ...)
。
为了演示问题,请创建一个文本文件:
The fox is Brown.
The Fox has a tail.
将文件保存在工作目录中名为test
的文件夹中,并将文件另存为test.txt
。
然后运行:
docs = VCorpus(DirSource("./test"))
str(docs)
注意content
不是字符向量!!!