BTM公司

Chung-hong Chan公司1

Jan Wijffels等人的BTM包查找“短文本集合中的主题”。与其他主题模型包相比,BTM需要一种特殊的数据格式来进行训练。Oolong使用BTM生成单词入侵测试没有问题。然而,这种特殊的数据格式会使主题入侵测试的创建变得非常棘手。

本指南提供了关于如何使用BTM的建议,以便该模型可以用于生成主题入侵测试。

要求#1:保留您的quanteda语料库

这是因为每个文档都有一个唯一的文档id。

要求(BTM)(最小值)
#>加载所需包:BTM
要求(定量分析)
#>正在加载所需的包:quanteda
#>软件包版本:4.0.1
#>Unicode版本:14.0
#>ICU版本:70.1
#>并行计算:使用了8个线程中的8个。
#>请参见https://quanteda.io以获取教程和示例。
要求(乌龙)
#>正在加载所需的包:乌龙
王牌_果皮<- 语料库(王牌2k)

然后可以使用夸特达。而不是使产品DFM公司对象,使其成为代币对象。你可以阅读这个问题Benoit等人。

代币(王牌_果皮,删除_取消= 真的,删除_编号= 真的,删除符号= 真的,拆分连字符(_H)= 真的,删除url= 真的)%>% 标记_颜色()%>% 标记_删除(关键词(“en”(英语)))%>% 标记_删除("@*")  -> 将牌

要求2:保持数据帧

使用此函数将代币对象添加到数据帧。

as.data.frame.tokens格式<- 功能(x){
  数据帧(
    文档id= 代表(姓名(x) ,长度(x) ),
    代币= 未列出的(x,使用名称= 错误的)
)
}

王牌_大牌<- 作为.data.frame.tokens(trump_toks)

训练BTM模型

王牌<- BTM公司(王牌_大牌,k个= 8,iter公司= 500,轨迹= 10)

BTM的特点

这就是您应该如何生成\(\theta{t})。然而,有许多NaN,只有1994行(王牌2k有2000条推文),因为文档为空。

θ<- 预测(王牌_btm,新数据=王牌_标签)
昏暗的(θ)
#> [1] 1994    8
设置差异(文档ID(王牌_王牌),行名称(θ)
#>[1]“text604”“text633”“text659”“text1586”“text587”“text1761”
王牌_果皮[604]
#>语料库由1个文档组成。
#>文本604:
#> "http://t.co/PtViAyrO4A"

此外,行顺序也很混乱。

(行名称(θ),100)
#>[1]“text1”“text10”“text100”“text1000”“text1001”“text1002”
#>[7]“text1003”“text1004”“text100”“text 1005”“text10”“text1”“text7”“text2”
#>[13]“text1009”“text101”“text1010”“text10.11”“text1022”“text013”
#>[19]“text1014”“text1015”“text101”
#>[25]“text102”“text1020”“text1021”“text1022”“text1023”“text1024”
#>[31]“text1025”“text1026”“text1027”“text1028”“text1029”“text103”
#>[37]“text1030”“text1031”“text032”“text103”“text10.34”“text205”
#>[43]“text1036”“text1037”“text1038”“text1039”“text104”“text1040”
#>[49]“text1041”“text1042”“text104”
#>[55]“text1047”“text1048”“text104”“text105”“text1050”“text051”
#>[61]“text1052”“text1053”“text105”
#>[67]“text1058”“text1059”“text106”“text1060”“text1071”“text062”
#>[73]“text1063”“text1064”“text065”“text106”“text1077”“text1088”
#>[79]“text1069”“text107”“text1070”“text071”“text1062”“text1093”
#>[85]“text1074”“text1075”“text076”“text107”“text1088”“text1099”
#>[91]“text108”“text1080”“text081”“text108 2”“text1093”“text2084”
#>[97]“text1085”“text1086”“text087”“text108”

乌龙对BTM的支持

Oolong可以像处理其他主题模型一样为BTM生成单词入侵测试。

乌龙<- 创建_乌龙(王牌_btm)
乌龙
#>
#>——乌龙(主题模型)────────────────────────────────────────────────────────
#> 威斯康星州技术信息WSI公司
#> WI:k=8,编码为0。
#>
#>——方法——
#>
#>•<$do_word_intrussion_test()>:进行单词入侵测试
#>•<$lock()>:完成并查看结果

然而,为了生成主题入侵测试,您必须提供用于培训的数据框架(在本例中王牌_大牌). 您的输入corpus也必须是quanteda语料库。

乌龙<- 创建_乌龙(王牌_btm,王牌_corpus,btm数据帧=王牌_标签)
乌龙
#>
#>——乌龙(主题模型)────────────────────────────────────────────────────────
#> 威斯康星州WSI公司
#> WI:k=8,编码为0。
#> TI:n=20,编码为0。
#>
#>——方法——
#>
#>•<$do_word_intrussion_test()>:进行单词入侵测试
#>•<$do_topic_intrusion_test()>:进行主题入侵测试
#>•<$lock()>:完成并查看结果

btm数据帧不得为NULL。

乌龙<- 创建_乌龙(王牌_btm,王牌_corpus)
#>错误:您需要提供input_corpus(以quanteda格式)和btm_dataframe来生成主题入侵测试。

输入corpus必须是quanteda语料库。

乌龙<- 创建_乌龙(王牌_btm、王牌2k、,btm数据帧=王牌_标签)
#>错误:您需要提供input_corpus(以quanteda格式)和btm_dataframe来生成主题入侵测试。

  1. GESIS公司↩︎