Почему qumoteda textmodel_wordfish работает бесконечно, когда я обращаюсь к корпусу британских партийных манифестов quanteda.corpora? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь применить wordfish к data_corpus_ukmanifestos quanteda.corpora, но, похоже, он никогда не прекращает работу. С другой стороны, когда я использую пример кода из учебника Wordfish от Quanteda, он завершается за считанные секунды. Это просто проблема для меня? Это случается и с другими? Как я могу обойти эту проблему?

Это код, который у меня есть сейчас. Как я уже сказал, 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))

Как заставить Wordfish работать с этим корпусом?

1 Ответ

0 голосов
/ 13 апреля 2019

Попробуйте обрезать низкочастотные слова.Чем дольше промежуток времени корпуса временных рядов, тем более разреженной является ваша матрица.В британском корпусе 101 манифест, начиная с 1945 года. Многие термины будут встречаться очень редко.

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() для дальнейшего сокращения набора функций, нолучше всего сделать это до операции обрезки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...