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

问题描述 投票:2回答:1

我尝试使用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


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

enter image description here

我创建语料库时错误开始。 R返回:

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

我不明白为什么文本有问题。谢谢您能帮助我解决问题。谢谢。

r text-mining stringr corpus quanteda
1个回答
0
投票

没有可重现的例子就不可能说,但是我可以提出两点可能解决这个问题的建议。首先是简化使用readtext包读取文本文件的过程。第二个问题是,您一定要使用“单词”分词器,而不是仅在空格上拆分的“ fasterword”,而中文在单词之间不使用。 “单词”知道中文单词的边界。

尝试一下:

library("quanteda")

readtext::readtext("v36.rtxt") %>%
    corpus() %>%
    tokens(what = "word") %>%
    dfm()
© www.soinside.com 2019 - 2024. All rights reserved.