读取txt中文时出错:corpus()仅适用于字符、语料库、语料库、data.frame、kwic对象

ron*_*ith 5 r corpus text-mining stringr quanteda

我尝试使用R、jiebaR和语料库生成一个词云并获取中文语音的词频,但无法制作语料库。这是我的代码:

library(jiebaR)
library(stringr)
library(corpus)

cutter <- worker()

v36 <- readLines('v36.txt', encoding = 'UTF-8')

seg_x <- function(x) {str_c(cutter[x], collapse = '')}

x.out <- sapply(v36, seg_x, USE.NAMES = FALSE)

v36.seg <- x.out
v36.seg

library(quanteda)

corpus <- corpus(v36.seg)  #Error begins here.
summary(corpus, showmeta = TRUE, 1)
texts(corpus)[1]

tokens(corpus, what = 'fasterword')[1]

tokens <- tokens(v36.seg, what = 'fasterword')
dfm <- dfm(tokens)
dfm


Run Code Online (Sandbox Code Playgroud)

我的文本文件包含以下段落:

在此输入图像描述

当我创建语料库时出现错误。R 返回:

Error in corpus.default(v36.seg) : 
  corpus() only works on character, corpus, Corpus, data.frame, kwic objects.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么文本有问题。如果您能帮我解决问题,我将不胜感激。谢谢。

Ken*_*oit 0

如果没有可重现的示例,就无法判断,但我可以建议两件事可能会解决这个问题。第一个是使用readtext包简化文本文件的读取。第二个是你肯定想要“word”分词器,而不是“fasterword”,它只是在空格上分割——中文在单词之间不使用空格。“字”知道中文的字界限。

尝试这个:

library("quanteda")

readtext::readtext("v36.rtxt") %>%
    corpus() %>%
    tokens(what = "word") %>%
    dfm()
Run Code Online (Sandbox Code Playgroud)