用R和koRpus编译和分析语料库

时间:2017-07-24 14:37:01

标签: r tm corpus korpus

我是一名失去数据科学的文学学生。我试图分析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的绝对新手,我会非常感激!

3 个答案:

答案 0 :(得分:0)

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

http://tidytextmining.com/tidytext.html

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我建议你看一下我们的 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,但我们正在研究它,它确实有其他六个。