鱼C论坛

 找回密码
 立即注册
查看: 1024|回复: 8

python文本分析 主题模型

[复制链接]
发表于 2018-9-4 11:10:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在做主题模型的时候,出现了以下的现象,求大神:
  1. text = open(r'C:\Users\lenovo\Desktop\自然语言处理\白沙分词.txt', 'r', encoding='gbk').read()
  2. dictionary = corpora.Dictionary([text])
  3. print(dictionary.token2id)
复制代码



错误如下:

错误

错误
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-4 12:14:51 | 显示全部楼层
dictionary = corpora.Dictionary([[text]])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-4 16:00:30 | 显示全部楼层
程序员的救赎 发表于 2018-9-4 12:14
dictionary = corpora.Dictionary([[text]])

我还想请问一下,做主题模型之前的数据是分好词的把
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 17:58:48 | 显示全部楼层
本帖最后由 程序员的救赎 于 2018-9-4 18:01 编辑
chunguang 发表于 2018-9-4 16:00
我还想请问一下,做主题模型之前的数据是分好词的把


没分的话,自己分一下就好了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-4 18:31:13 | 显示全部楼层
程序员的救赎 发表于 2018-9-4 17:58
没分的话,自己分一下就好了。

但我在做完以后,主题词只有一个,是怎回事?而且还有以下提醒
1536056990(1).png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 18:52:18 | 显示全部楼层
chunguang 发表于 2018-9-4 18:31
但我在做完以后,主题词只有一个,是怎回事?而且还有以下提醒


把完整的代码和数据上传过来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-4 19:45:23 | 显示全部楼层
程序员的救赎 发表于 2018-9-4 18:52
把完整的代码和数据上传过来。
  1. from gensim import corpora,models


  2. text = open(r'C:\Users\lenovo\Desktop\自然语言处理\白沙分词.txt', 'r', encoding='gbk').read()
  3. dictionary = corpora.Dictionary([[text]])
  4. print(dictionary.token2id)
  5. corpus = [dictionary.doc2bow([corpus]) for corpus in text]
  6. tfidf = models.TfidfModel(corpus)
  7. corpus_tfidf = tfidf[corpus]
  8. total_topics = 2
  9. lsi = models.LsiModel(corpus_tfidf,id2word=dictionary,num_topics=total_topics)
  10. for index, topic in lsi.print_topics(total_topics):
  11.     print('Topic #'+str(index+1))
  12.     print(topic)
复制代码

白沙分词.txt

5.6 KB, 下载次数: 3

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-6 00:42:24 | 显示全部楼层
本帖最后由 程序员的救赎 于 2018-9-6 00:46 编辑

应该跟你前面语料没有分词有关,我刚看完了corpora的文档内容,
增加了分词的代码,由于主题模型我还没做过,
你先试着增加分词后再思考思考
  1. from gensim import corpora,models
  2. import jieba

  3. text = open(r'C:\Users\asus\Desktop\白沙分词.txt', 'r', encoding='gbk').readlines() # 不懂的在www.baidu.com输入 'read(), readline(), readlines()的区别'
  4. print(text)
  5. word_list = []
  6. for i in text:
  7.     word_list.extend(list(jieba.cut(i))) # 用结巴分词
  8. word_list = [word for word in word_list if word.strip()]  # 去除多余的换行符跟空格
  9. print(word_list)
  10. dictionary = corpora.Dictionary([word_list])
  11. print(dictionary.token2id)
复制代码


还有你的报错信息,翻译如下:
RuntimeWarning:在true_divide中遇到无效值

原因分析在百度上找得到。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-6 14:35:23 | 显示全部楼层
程序员的救赎 发表于 2018-9-6 00:42
应该跟你前面语料没有分词有关,我刚看完了corpora的文档内容,
增加了分词的代码,由于主题模型我还没做 ...

问题是我这个已经是分完词的了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-7 08:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表