R 如何根据分组变量计算quanteda中的搭配?

R 如何根据分组变量计算quanteda中的搭配?,r,nlp,quanteda,R,Nlp,Quanteda,我一直致力于识别和分类R中Quenteda软件包中的搭配 比如, 我从文档列表中创建token对象,并应用搭配分析 toks <- tokens(text$abstracts) collocations <- textstat_collocations(toks) toks听起来你希望通过文档来理顺搭配。textstat_collabons()的输出已经为每个搭配提供了计数,但这些计数是针对整个语料库的 因此,按文档(或任何其他变量)分组的解决方案是 使用textstat\u co

我一直致力于识别和分类R中Quenteda软件包中的搭配

比如,

我从文档列表中创建token对象,并应用搭配分析

toks <- tokens(text$abstracts)
collocations <- textstat_collocations(toks)

toks听起来你希望通过文档来理顺搭配。
textstat_collabons()
的输出已经为每个搭配提供了计数,但这些计数是针对整个语料库的

因此,按文档(或任何其他变量)分组的解决方案是

  • 使用
    textstat\u compositions()
    获取搭配。下面,我在删除停止词和标点符号后完成了这项工作
  • 使用
    tokens\u composite()
    ,合成生成停止字的标记。这会将每个搭配序列转换为单个标记
  • 从复合代币形成dfm,并使用
    textstat\u frequency()
    按文档对复合币进行计数。 这有点棘手
  • 使用内置的就职语料库实现:

    库(“quanteda”)
    ##软件包版本:3.0
    ##Unicode版本:13.0
    ##ICU版本:69.1
    ##并行计算:使用12个线程中的12个。
    ##看https://quanteda.io 有关教程和示例。
    库(“quanteda.textstats”)
    toks%
    尾部(10)%>%
    令牌(删除\u点=TRUE,填充=TRUE)%>%
    标记(stopwords(“en”),padding=TRUE)
    科尔%
    dfm_保持(“**”)
    
    该dfm已包含每个搭配的“按文档计数”,但如果希望计数采用data.frame格式,并带有分组选项,请使用
    textstat\u frequency()
    。这里我只按文档输出了前两个,但如果删除
    n=2
    ,它将按文档提供所有搭配的频率

    textstat\u频率(dfmat,组=docnames(dfmat),n=2)%>%
    总目(10)
    ##特征频率秩docfreq组
    ##1核武器4 1 1985年里根
    ##2人类自由3 2 1 1985里根
    ##3新风4 1 1989布什
    ##4新接触3 2 1 1989布什
    ##5让我们7 1 1993年克林顿
    ##6美国同胞4 2 1 1993年克林顿
    ##7让我们6 11 1997年克林顿
    ##8新世纪611997克林顿
    ##9国家的承诺2001年布什
    ##10共同利益21 2001布什
    
    太棒了!非常感谢你。