机器学习(周志华) 参考答案 第十四章 概率图模型 14.9
来源:互联网 发布:apache ivy 配置 编辑:程序博客网 时间:2024/05/16 08:06
机器学习(周志华西瓜书) 参考答案 总目录
- http://blog.csdn.net/icefire_tyh/article/details/52064910
机器学习(周志华) 参考答案 第十四章 概率图模型
- http://blog.csdn.net/icefire_tyh/article/details/53509879
拖了好几个月,现在越来越懒了,于是放弃了自己写个LDA的想法,使用现成的GibbsLDA++0.2
9.从网上下载或者自己实现
由于对《天龙八部》并不怎么熟悉,所以选择了《射雕英雄传》,毕竟小说看了好几遍。
射雕英雄传共40章,按每5章作为一个文档,共8个文档。
全部输入输出文档
VS2015仲GibbsLDA++0.2工程压缩包
步骤一:分词
中文分词一直是个困难的任务,一本射雕好几十万字,如果手动去保留所有名词,那好几天就没了。而现成的中文分词软件并不能很好的划分词语,但也没得办法,分词分的怪怪的也只能用了。
这里选择的是评价较好的
只需要注册下就能每天使用500次的关键词提取,同时获得该关键词的频率,具体操作方法请看使用手册。
(理论上用它的分词与词性提取效果更好,分词后仅保留名词即可,但是这样会有2万左右的词汇,一是词汇大量重复,和郭靖相关的就重复了300次[郭靖说,郭靖笑,郭靖冲,次日郭靖…],二是软件跑着就跪了,所以这里用关键词替代)
官网提供的py关键词提取代码,稍微修改下适应这道题需求:
from __future__ import print_function, unicode_literalsimport jsonimport requestsKEYWORDS_URL = 'http://api.bosonnlp.com/keywords/analysis'for i in range(1, 9): filename=(r'C:\Users\icefire\Desktop\txt5\0%02d.txt'%(i)) print ('处理%s'%(filename)) input_file = open(filename) text = input_file.read( ) input_file.close() params = {'top_k': 300} data = json.dumps(text) headers = {'X-Token': '你的密钥,在控制台最下方'} resp = requests.post(KEYWORDS_URL, headers=headers, params=params, data=data.encode('utf-8')) filename=(r'C:\Users\icefire\Desktop\txt5\word_0%02d.txt'%(i)) print ('输出%s\n'%(filename)) output_file=open(filename,'w') for weight, word in resp.json(): output_file.write('%.0f %s\n'%(weight*weight*10000, word)) output_file.close()
这里每个文档生成300个关键词(有点少,毕竟5章那么多字,但是由于分词的效果也一般般,就没设置太大的数目),由于所有关键词的频率的平方和为1,所以对词频做平方和操作,并乘上10000,作为该关键词的频数。
步骤二:生成用于
这个步骤比较简单,由于LDA并不关心文档中每个词的顺序,所以仅需对每个关键词重复复制频数次就行。
最终输入的TEXT,第一行是文档的总数n,接下来的n行每行代表一个文档,文档中的每个词用空格隔开
filename1=(r'C:\Users\icefire\Desktop\txt5\text.txt')output_file=open(filename1,'w')output_file.write('8\n')for i in range(1, 9): str='' filename=(r'C:\Users\icefire\Desktop\txt5\word_0%02d.txt'%(i)) print ('处理%s'%(filename)) input_file = open(filename) for line in input_file.readlines(): num,tstr=line.split(); num=int(num) for j in range(1, num): str += (tstr+' ') input_file.close() output_file.write(str+'\n')print ('输出%s\n'%(filename1))output_file.close()
步骤三:运行
我这里用的是
步骤四:结果分析
先放题目要求的结果,每个文档所对应的话题演变(保存在.theta文件仲)
横坐标表示15个话题,纵坐标表示8个文档
文档一:剧情从开头到郭靖降伏小红马为止,可以从表中看出该段最主要的话题是话题2。
话题2主要词:
柯镇恶在这里的概率是超过郭靖的,因为在前5章一大部分是在江南发生的事,后来七怪去了蒙古才找到郭靖,这里的词汇主要是江南和蒙古出现人物的人名。
文档二:剧情从七怪发现郭靖内功突增到王府梅超风被黄蓉胁迫帮助郭靖。该段最主要的话题是话题13。
话题2主要词:
该话题依然包含了部分蒙古的词汇,但是大部分都排在了后面。武功,功力等词排在最常出现的几个人名之后。
文档三:剧情从王府梅超风帮助郭靖到宝应郭靖黄蓉救出程瑶迦。该段最主要的话题是话题9。
话题9主要词:
该段主要剧情在于洪七公教郭靖掌法以及归云庄,到这里大概能归纳出该LDA算法将每个段落主要名词来划分话题。
最后再贴一段:
文档6:剧情从牛家村黄药师大战全真七子开始到瑛姑找一灯大师报仇结束。该段最主要的话题是话题10。
话题10主要词:
该话题中的主要词都是在丐帮,铁掌峰和湘西一行的人物名词。
到这里还是有些疑问的,感觉这样为每段归纳话题的意义并不大,因为仅仅是将每段关键词又重新拿了出来作为话题。如果分词后先将这些词归进行话题分类,再对文档进行话题归纳,这样做是不是更好呢?
- 机器学习(周志华) 参考答案 第十四章 概率图模型 14.9
- 机器学习(周志华) 参考答案 第十四章概率图模型
- 机器学习(周志华)_第十四章 概率图模型
- 机器学习(周志华) 参考答案 第二章模型评估与选择
- 机器学习(周志华) 参考答案 第三章 线性模型 3.3
- 机器学习(周志华) 参考答案 第三章 线性模型 3.4
- 机器学习(周志华) 参考答案 第三章 线性模型 3.5
- 机器学习(周志华) 参考答案 第三章 线性模型
- 第二章 模型评估与选择--机器学习(周志华) 参考答案
- 第三章 线性模型--机器学习(周志华)参考答案
- 概率图模型笔记-周志华《机器学习》
- 机器学习模型 概率图模型
- 机器学习(周志华) 参考答案 第四章 决策树
- 机器学习(周志华) 参考答案 第五章 神经网络
- 机器学习(周志华) 参考答案 第九章 聚类
- 机器学习笔记(十四)概率图模型
- 【机器学习】概率图模型总结
- 《机器学习》周志华第一章参考答案
- 图片验证码识别教程技术原理分析
- Idea技能学习
- 关于在bootstrap 弹出框上再弹出模态框的BUG?
- 如何获取微信公众平台图文消息的永久链接
- PHP判断手机是IOS还是Android,判断是否是微信打开
- 机器学习(周志华) 参考答案 第十四章 概率图模型 14.9
- tensorflow 在 win7 64位配
- Oracle 常见错误总结(如:ORA-XXXXX)及问题解决方法
- Rails 5中使用Bootstrap
- HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
- 电脑建立win7下wifi热点的问题解决
- Windows下Anaconda的安装和简单使用
- didRegisterForRemoteNotificationsWithDeviceToken不调用
- Window和WindowManager