我目前正在使用 R 中的 Quanteda 包,我想计算一组词干的 ngram,以快速粗略地估计哪些内容词往往彼此靠近。如果我尝试:
twitter.files <- textfile(files)
twitter.docs <- corpus(twitter.files)
twitter.semantic <- twitter.docs %>%
dfm(removeTwitter = TRUE, ignoredFeatures = stopwords("english"),
ngrams = 2, skip = 0:3, stem = TRUE) %>%
trim(minCount = 50, minDoc = 2)
它只是在二元组中的最后一个词。但是,如果我尝试先停止:
twitter.files <- textfile(files)
twitter.docs <- corpus(twitter.files)
stemmed_no_stops <- twitter.docs %>%
toLower %>%
tokenize(removePunct = TRUE, removeTwitter = TRUE) %>%
removeFeatures(stopwords("english")) %>%
wordstem
twitter.semantic <- stemmed_no_stops %>%
skipgrams(n = 2, skip = 0:2) %>%
dfm %>%
trim(minCount=25, minDoc = 2)
然后 Quanteda 不知道如何使用词干列表。我会得到错误:
assignment of an object of class “NULL” is not valid for @‘ngrams’
in an object of class “dfmSparse”; is(value, "integer") is not TRUE
我可以做一个中间步骤来在词干上使用 dfm,或者告诉dfm
先词干然后再做 ngrams?