模型展现
主题内容查询
主题内容查询demo展示三个模型的主题词结果。
sh run_show_topic_demo.sh # 查询LDA与SentenceLDA模型的主题词demo
参数说明
—model_dir
选择不同领域的的主题模型。—conf_file
模型配置文件,可选的配置有lda.conf和slda.conf。—top_k
展示模型中某个主题下前K个最重要的词,默认为20。
运行示例
执行程序后,通过标准流方式输入主题id,程序会返回该主题下最重要的K个词,LDA模型内容展现的结果如下所示:
- 请输入主题编号(0-1999): 105
- -----------------------------
- 对话 0.189676
- 合作 0.0805558
- 中国 0.0276284
- 磋商 0.0269797
- 交流 0.021069
- 联合 0.0208559
- 国家 0.0183163
- 讨论 0.0154165
- 支持 0.0146714
- 包括 0.014198
将运行参数修改为 —model_dir="./model/news/" —conf_file="slda.conf" —top_k=10
可以展示SentenceLDA的模型结果:
- 请输入主题编号(0-1999): 105
- ------------------------------
- 浙江 0.0300595
- 浙江省 0.0290975
- 宁波 0.0195277
- 记者 0.0174735
- 宁波市 0.0132504
- 长春市 0.0123353
- 街道 0.0107271
- 吉林省 0.00954326
- 金华 0.00772971
- 公安局 0.00678163
TWE模型展现
Topical Word Embedding (TWE) 模型的展现方式与传统LDA等主题模型有些许差别。由于TWE模型包含了一套受主题信号引导的词向量和主题向量,因此展示时着重对比通过Embedding方式召回的主题词结果和用多项分布召回的主题词的差别。
sh run_topic_word_demo.sh # 运行主题词查询的demo
参数说明
—model_dir
选择不同领域的的主题模型。—emb_file
TWE模型的Embedding模型文件—topic_words_file
传入LDA模型完整的主题词结果,用于与TWE模型进行结果对比。
运行示例
执行程序后,通过标准流方式输入主题id,程序会返回每个主题下最重要的K个词, TWE模型内容展现的结果如下所示:
- 请输入主题编号(0-10000): 105
- Embedding Result Multinomial Result
- ------------------------------------------------
- 对话 对话
- 磋商 合作
- 合作 中国
- 非方 磋商
- 探讨 交流
- 对话会议 联合
- 议题 国家
- 中方 讨论
- 对话会 支持
- 交流 包括
其中,第一列为基于Embedding召回的的主题词结果,第二列为基于多项分布的结果,均按照在主题中的重要程度从大到小的顺序排序。
邻近词查询
TWE模型中包含了词向量和主题向量,两类向量映射在同一空间中,因此可以与word2vec一样,使用embedding的方法召回语义相近的词汇。
sh run_word_distance_demo.sh # 运行邻近词查询的demo
参数说明
—model_dir
选择不同领域的的主题模型。—emb_file
TWE模型的Embedding模型文件—top_k
召回与输入词最接近的K个词。
运行示例
执行程序后,通过标准流方式进行输入,每行为一个词,程序会输出每个词的最邻近的K个词。如下所示:
- 请输入词语: 篮球
- Word Cosine distance
- ------------------------------
- 足球 0.903682
- 网球 0.842661
- 羽毛球 0.836915
- 足球比赛 0.809366
- 五人制足球 0.799211
- 美式足球 0.791207
- 中国足球 0.788995
- 乒乓球 0.788278
- 五人制 0.784913
- 足球新闻 0.783203
这一demo与word2vec经典的近邻词查询原理一样,只是TWE的word embedding引入了主题这一信息,在词的距离上考虑了主题这一属性,因此语义聚合度相比word2vec来说会更高。