为什么当我申请Quanteda.corpora的英国政党宣言语料库时,Quanteda的textmodel_wordfish无限运行?

时间:2019-04-12 17:05:53

标签: r nlp quanteda

我正在尝试将wordfish应用于Quanteda.corpora的data_corpus_ukmanifestos,但它似乎从未停止运行。另一方面,当我使用Quanteda的wordfish教程中的示例代码时,wordfish会在几秒钟内完成。这对我来说只是一个问题吗?别人也会这样吗?我该如何解决这个问题?

这是我现在拥有的代码。就像我说的那样,当在爱尔兰的预算演讲中运行时,wordfish可以在几秒钟内运行,但是当应用于聚会宣言时,wordfish永远不会停止运行。

## install/load packages
## install.packages(c("quanteda", "devtools"))
## devtools::install_github("quanteda/quanteda.corpora")
library(quanteda)
library(quanteda.corpora)
require(quanteda)
require(quanteda.corpora)
dfmat_irish <- dfm(data_corpus_irishbudget2010, remove_punct = TRUE)
tmod_wf <- textmodel_wordfish(dfmat_irish, dir = c(6,5))
summary(tmod_wf)

dfmat_uk <- dfm(data_corpus_ukmanifestos, remove_punct = TRUE)
wf_uk <- textmodel_wordfish(dfmat_uk, dir = c(83, 74))

我如何让词鱼与此语料库一起工作?

1 个答案:

答案 0 :(得分:0)

尝试修剪低频单词。时间序列语料库的时间跨度越长,矩阵就越稀疏。自1945年以来,英国语料库中共有101条宣言。很多用语很少见。

library("quanteda")
## Package version: 1.4.4
## Parallel computing: 2 of 12 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
## 
##     View
data(data_corpus_ukmanifestos, package = "quanteda.corpora")
system.time(
  wf_uk2 <- dfm(data_corpus_ukmanifestos, remove_numbers = TRUE, remove_punct = TRUE) %>%
    dfm_trim(min_termfreq = 10, min_docfreq = 20) %>%
    textmodel_wordfish(dir = c(83, 74))
)
##    user  system elapsed 
##   2.274   0.124   2.356

您还可以使用dfm_wordstem()进一步缩小功能集,但最好在修剪操作之前执行此操作。