首页 > 解决方案 > 有没有办法同时计算一个单词和ngrams的频率?

问题描述

现在,我在使用 R 和 quanteda 包的文本处理中有两个步骤:

一方面,我计算目标词的频率,比如citiziens。另一方面,我计算 ngram 的频率。

txt<- "for this purpose citizens and sydney siders are the same"

tok_single<- tokens_select(tokens(txt), pattern = "citizens", padding = TRUE)
textstat_frequency(dfm(tok_single))
####bigrams
toks_bigram <- tokens_select(tokens_ngrams(tokens(txt),n=2:3), pattern = c("sydney_siders"), padding = TRUE)
                            
textstat_frequency(dfm(toks_bigram))
                        

最后,我遇到的问题是我的字典中的关键字由单个单词(如citizen)和多个单词(如sydney siders)组成。到目前为止,我的计算分两步完成。分别用 1-gram 和 n-gram 计算标记。是否有组合 ngram 和 1-gram 的功能?

例如,我想一步计算我的字典项目的频率。

mydic<-dictionary(list(citizen=c("citizen*","sydney siders","public")))

标签: rquanteda

解决方案


推荐阅读