0

我正在使用 R 中的“lda”包来执行语料库的主题模型分析(我们称之为“语料库B”)。我首先使用命令“lexicalize”为分析准备语料库,该命令返回一个术语文档矩阵,如果未预先指定,则返回一个带有唯一标记出现在语料库中的词汇表。

出于研究目的,我想使用从另一个语料库(我们称之为“语料库A”)推断出的词汇对语料库进行词汇化,这应该很容易做到。然而,它不起作用。这是代码示例:

A <- lexicalize(corpusA) #the output of this command is just as expected
B <- lexicalize(corpusB, vocab = corpusA$vocab)

B$documents #let's see the term-document matrix
>>NULL #this is what I get

知道为什么我得到空结果吗?奇怪的是,如果我使用简单的字符向量而不是导入的语料库,该命令就可以正常工作。

A <- c("I have the very model of a modern major general")
B <- c("I have a major headache")

B1 <- lexicalize(B)
B1

$documents
$documents[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    1    2    3    4
[2,]    1    1    1    1    1


$vocab
[1] "i"        "have"     "a"        "major"    "headache"


A1 <- lexicalize(A, vocab = B1$vocab)
A1
[[1]]
     [,1] [,2] [,3] [,4]
[1,]    0    1    2    3
[2,]    1    1    1    1

还有一些可能有用的信息:

1)我感兴趣的语料库(corpusB)包含700mb的文本,相当可观的数据;

2) 使用“tm”包将两个语料库(B 和 A)导入 R。在词汇化之前,我还使用“tm”来删除标点符号、数字、停用词,以去除空格和小写字母。

很感谢任何形式的帮助!

4

1 回答 1

0

lexicalize()期望文档行的字符向量来构建适合的语料库和词汇表ldatm语料库应在应用前转换为字符向量lexicalize()

texts <-data.frame(text=unlist(sapply(corpusA, `[`, "content")), stringsAsFactors=F)
l_corp <- lexicalize(texts$text)
于 2015-04-13T13:31:20.560 回答