【问题标题】:How to convert corpus to data.frame with meta data in R如何使用 R 中的元数据将语料库转换为 data.frame
【发布时间】:2015-08-16 14:51:27
【问题描述】:

如何将语料库转换为 R 中还包含元数据的数据框?我已经尝试过convert corpus into data.frame in R 的建议,但生成的数据框只包含语料库中所有文档的文本行。 我还需要文档 ID,也许还需要两列中文本行的行号。 那么,如何扩展这个命令:dataframe <- data.frame(text=unlist(sapply(mycorpus,[, "content")), stringsAsFactors=FALSE) 来获取数据?

我已经试过了

    dataframe <- 
data.frame(id=sapply(corpus, meta(corpus, "id")), 
text=unlist(sapply(corpus, `[`, "content")), 
stringsAsFactors=F)

但这没有帮助;我只收到一条错误消息“match.fun(FUN) 中的错误: 'meta(corpus, "id")' ist nicht Funktion, Zeichen oder Symbol"

语料库是从纯文本文件中提取的;这是一个例子:

> str(corpus)
[...]
$ 1178531510 :List of 2
  ..$ content: chr [1:67] " uberrasch sagt [...] gemacht echt schad verursacht" ...
  ..$ meta   :List of 7
  .. ..$ author       : chr(0) 
  .. ..$ datetimestamp: POSIXlt[1:1], format: "2015-08-16 14:44:11"
  .. ..$ description  : chr(0) 
  .. ..$ heading      : chr(0) 
  .. ..$ id           : chr "1178531510" # <--- This is the ID i want in the data.frame
  .. ..$ language     : chr "de"
  .. ..$ origin       : chr(0) 
  .. ..- attr(*, "class")= chr "TextDocumentMeta"
  ..- attr(*, "class")= chr [1:2] "PlainTextDocument" "TextDocument"
[...]

提前非常感谢:)

【问题讨论】:

  • sapply(corpus, meta(corpus, "id")) 应该是sapply(corpus, meta, "id")
  • 谢谢,这似乎工作得更好,但现在我收到了这个错误:Error in data.frame(id = sapply(corpus, meta, "id"), text = unlist(sapply(corpus, : Argumente implizieren unterschiedliche Anzahl Zeilen: 323, 10012
  • 好吧,您的代码和我的更正适用于示例数据集data(acq) ; corpus &lt;- acq,所以问题可能出在您的数据中:您得到 323 id,但是 10012 文本内容(我猜,我的德语生锈了)...你的语料库的长度是多少?您能否发布重现问题的语料库样本部分?
  • 语料库包含 323 个文档,但有 10012 行文本。在数据框中,每一行文本都是一行。
  • 你可以试试这个:unlist(lapply(sapply(corpus, [, "content"),paste,collapse="\n"))

标签: r tm


【解决方案1】:

有两个问题:你不应该重复sapply中的参数语料库,并且多段文本被转换为长度> 1的字符向量,你应该在取消列出之前将它们粘贴在一起。

dataframe <- 
    data.frame(id=sapply(corpus, meta, "id"),
               text=unlist(lapply(sapply(corpus, '[', "content"),paste,collapse="\n")),
               stringsAsFactors=FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2020-02-03
    • 2020-02-16
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    相关资源
    最近更新 更多