6月28日 看完论文《融合LDA与TextRank的关键词抽取研究》,基本理解其思想。
6月29日 看完第二篇论文《词语位置加权TextRank的关键词抽取研究》,理解其思想。
7月1日 和包睿,礼明师兄确定交接事宜《关键字提取流程》。
7月4日 理解textrank算法思想,下载textrank包。
7月5日 了解jieba词性标注分词原理及用法。
7月6日 弄清textrank包用法,修改算法。
7月8日 开始实现lda算法,向镇宇师兄和靖达师兄lda工具的安装使用(疑问:选lda或gensim包,corpus,word_id,topic_id参数如何正确输入)。
7月9日 完成TR算法(看懂代码),对其进行改进,代码优化简略。(lda相关问题得到解答,如使用gensim包,corpus,word_id,topic_id参数如何正确输入等)
7月10日 打出lda算法,并与TR算法进行融合,加入数据预处理程序analysis,学会函数分类编程思想(类封装函数,用对象调用类(一些方法仅在类创建对象时调用,就不用每次调用对象时函数都被调用,比如说是去停用词的算法,就不用每次处理一篇文档都调用一次),提高算法效率),最高准确率为27.3%.
7月11日 上午 做TR效果测试
下午 改进lda算法,优化了lda效率;
改进analysis预处理,让TR与lda输入单词数相同;
加入“先分句后分词”预处理;
晚上 做参数遍历,寻找最优参数设置;(lda:32%;TR:31.8%;lda+TR:())
调整lda+TR融合算法,分为4种:
- ex1 转移矩阵加权平均(0.5)
- ex2 转移矩阵相乘
- ex3 最终结果相加
- ex4 最终结果相乘
经测试,最终确定第2种方法ex2 转移矩阵相乘的效果最好,准确率为33.9856490541%.
7月12-13日 任务有5个:
(1)不去掉“类”,“栈”,“3d”;(ok,准确率下降)
(2)提取《SMPCUP2017_ValidationSet_Task1.txt》里的所有文件;(ok)
(3)导入结巴自定义词典《trainSet.txt》,计算召回率,代码如下;(ok)
(4)模糊匹配,若两个词均含有相同内容,保留长字去短字。(ok,,准确率提高到36.3%)
(5)增加去停用词规则,过滤含数字/符号的单词(纯数字)。(ok)
7月17日,《SMPCUP2017数据标注(1-1200).xlsx》计算词频。(ok,17号完成)
加入组合词方法(词频不低于3的词和其左边的词和右边的词组合),效果不太好。
7月18日,和子旋师兄聊关键词提取的方法(特征工程和word2vec的skip-gram模型);
发现引入PositionAnalysis方法计算词的权重都一样,错误已修正;
错误修正后,去掉lda,转移矩阵相乘(1×panalysis)准确率为46。3%;
任务一提交,结果最好为56%(第3名)。
7月19日,加权平均——权重归一化;
融合textrank和PositionAnlysis方法(去除lda),调整转移矩阵和最终矩阵参数,准确率为47。5%;
学习skitit-learn方法,做词二分类问题(是否是关键词);
8月4日,整合了scikit-learn文本分类方法和位置信息,来训练分类器;
8月6日 ,文本分类方法加入了词性特征和词的idf值特征,来训练分类器;
8月9日,尝试用各种scikit-learn里的方法(除svm)训练分类器;
开始的时候数据过拟合,后来将训练集70%做训练集,30%做测试集,发现adaboost(200)的效果较好(50%);