【问题标题】:Compiling and analysing a Corpus with R and koRpus使用 R 和 koRpus 编译和分析语料库
【发布时间】:2017-07-24 14:37:00
【问题描述】:

我是一名迷失在数据科学领域的文学专业学生。我正在尝试分析一个包含 70 个 .txt 文件的语料库,它们都在一个目录中。

我的最终目标是获得一个包含文件名(或类似内容)、句子和字数、Flesch-Kincaid 可读性得分和 MTLD 词汇多样性得分的表格。

我找到了 koRpus 和 tm(以及 tm.plugin.koRpus)包,并尝试了解它们的文档,但还没有走多远。在 RKward IDE 和 koRpus-Plugin 的帮助下,我设法一次为一个文件获取所有这些度量,并且可以手动将这些数据复制到一个表中,但这非常麻烦并且仍然需要大量工作。

到目前为止,我尝试使用这个命令来创建我的文件语料库:

simpleCorpus(dir = "/home/user/files/", lang = "en", tagger = "tokenize",
encoding = "UTF-8", pattern = NULL, recursive = FALSE, ignore.case = FALSE, mode = "text", source = "Wikipedia", format = "file",
mc.cores = getOption("mc.cores", 1L))

但我总是得到错误:

Error in data.table(token = tokens, tag = unk.kRp):column or argument 1 is NULL).

如果有人可以帮助 R 的绝对新手,我将非常感激!

【问题讨论】:

  • 欢迎来到 Stack Overflow,请花点时间通过the welcome tour 了解您在这里的道路(同时也获得您的第一个徽章),阅读如何create a Minimal, Complete, and Verifiable example 并查看@987654323 @ 这样您就可以增加获得反馈和有用答案的机会。
  • 您的问题似乎更像是一系列问题,我猜其中大部分已经有了答案。第一个,f.ex.:how to read in multiple text files。从头开始,一次解决一个问题。如果您遇到了真正的障碍,请提出问题。 StackOverflow 上没有“教我如何编码”类型的问题。
  • 很抱歉,我会尝试编辑我的帖子,让我的问题更清楚一些(问题不是阅读文本本身,而是让它们进入 koRpus。
  • 如果你setwd()到包含文件的目录并运行corp <- simpleCorpus(lang="en", tagger="tokenize"),会发生什么?
  • 然后我也得到错误:Fehler in data.table(token = tokens, tag = "unk.kRp") : column or argument 1 is NULL

标签: r tm corpus korpus


【解决方案1】:

这是一个非常全面的演练...如果我是你,我会一步一步地完成。

http://tidytextmining.com/tidytext.html

【讨论】:

  • 谢谢!我已经看过了,但是我对句子/文本级别而不是单词级别的分析感兴趣,所以我认为它不适合我的用例。尽管如此,我还是保存了该链接,因为它将来可能真的很有趣。
【解决方案2】:

我在包的作者 unDocUMeantIt 的帮助下找到了解决方案(谢谢!)。目录中的一个空文件导致了错误,删除后我设法让一切运行。

【讨论】:

    【解决方案3】:

    我建议您看看我们的 quanteda 小插图Digital Humanities Use Case: Replication of analyses from Text Analysis with R for Students of Literature,它复制了 Matt Jocker 的同名书籍。

    对于您在上面寻找的内容,以下内容将起作用:

    require(readtext)
    require(quanteda)
    
    # reads in all of your texts and puts them into a corpus
    mycorpus <- corpus(readtext("/home/user/files/*"))
    
    # sentence and word counts
    (output_df <- summary(mycorpus))
    
    # to compute Flesch-Kincaid readability on the texts
    textstat_readability(mycorpus, "Flesch.Kincaid")
    
    # to compute lexical diversity on the texts
    textstat_lexdiv(dfm(mycorpus))
    

    textstat_lexdiv() 函数目前没有 MLTD,但我们正在努力,它确实有六个其他函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-07
      • 2011-06-15
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 2014-05-14
      • 1970-01-01
      相关资源
      最近更新 更多