我尝试使用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
我的文本文件包含以下段落:
我创建语料库时错误开始。 R返回:
Error in corpus.default(v36.seg) :
corpus() only works on character, corpus, Corpus, data.frame, kwic objects.
我不明白为什么文本有问题。谢谢您能帮助我解决问题。谢谢。
没有可重现的例子就不可能说,但是我可以提出两点可能解决这个问题的建议。首先是简化使用readtext包读取文本文件的过程。第二个问题是,您一定要使用“单词”分词器,而不是仅在空格上拆分的“ fasterword”,而中文在单词之间不使用。 “单词”知道中文单词的边界。
尝试一下:
library("quanteda")
readtext::readtext("v36.rtxt") %>%
corpus() %>%
tokens(what = "word") %>%
dfm()