时间:2022-12-11
m6米乐这两年开始,各个学校对毕设的要求越来越高,难度也越来越大.... 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是
如今新闻泛滥,令人眼花缭乱,即使同一话题下的新闻也多得数不胜数。人们可以根据自己的职业和爱好关注专业新闻网站的不同热点要闻。因此,通过对人们关注新闻的热点问题进行分析,可以得出民众对某个领域的关切程度和社会需要解决的问题,也有利于了解当前的舆论焦点,有助于政府了解民意,便于国家对舆论进行正确引导,使我们的社会更加安定和谐。本文以财经领域为例,通过爬虫技术抓取网络上的大量财经新闻,m6米乐通过对新闻内容文本进行预处理及密度聚类分析来发现热点;从发现的热点中,再进行词汇聚类分析,得出热点所涉及的人或事物,以此分析出社会对经济领域关注的问题和需要解决的问题。
该项目学长要通过文本挖掘技术进行新闻热点问题分析,把从网上抓取到的财经新闻,通过对新闻内容的聚类,得到新闻热点;再对热点进行分析,通过对某一热点相关词汇的聚类,得到热点问题所涉及的人物、行业或组织等。
1、利用新闻 API、爬虫算法、多线程并行技术,抓取三大专业财经新闻网站(新浪财经、搜狐财经、新华网财经)的大量财经新闻报道;
2、m6米乐对新闻进行去重、时间段过滤,然后对新闻内容文本进行 jieba 分词并词性标注,过滤出名词、动词、m6米乐简称等词性,分词前使用自定义的用户词词典增加分词的准确性,分词后使用停用词词典、消歧词典、保留单字词典过滤掉对话题无关并且影响聚类准确性的词,建立每篇新闻的词库,利用 TF-IDF 特征提取之后对新闻进行 DBSCAN 聚类,并对每个类的大小进行排序;
3、针对聚类后的每一类新闻,为了得到该处热点的话题信息,还需要提取它们的标题,利用 TextRank 算法,对标题的重要程度进行排序,用重要性最高的标题来描述该处热点的线、对所有的新闻内容进行 jieba 分词,并训练出 word2vec 词嵌入模型,然后对聚类后的每一类新闻,提取它们的内容分词后的结果,运用 word2vec 模型得到每个词的词向量,再利用 FP-Growth类算法进行相关新闻挖掘。
算法过程写得比较简略,具体过程我们在下节的实操中进一步理解。3.3 算法实现
# dataSet为字典类型,表示探索频繁项集的数据集,keys为各项集,values为各项集在数据集中出现的次数
# minSup为最小支持度,构造FP树的第一步是计算数据集各元素的支持度,选择满足最小支持度的元素进入下一步
localD={} #存放每次循环中的频繁元素及其出现次数,便于利用全局出现次数对各项集元素进行项集内排序
#items为按出现次数排序后的项集,m6米乐是待更新到树中的项集;count为items项集在数据集中的出现次数
#inTree为待被更新的树;headTable为头指针表,m6米乐存放满足最小支持度要求的所有元素
#若项集items当前最频繁的元素在已有树的子节点中,则直接增加树子节点的计数值,增加值为items[0]的出现次数
else:#若项集items当前最频繁的元素不在已有树的子节点中(即,树分支不存在),则通过treeNode类新增一个子节点
else:#若新增节点后表头表中有此元素,则更新该元素的链表,即,在该元素链表末尾增加该元素
#对于项集items元素个数多于1的情况,对剩下的元素迭代updateTree
#若待被更新的元素链表当前元素的下一个元素不为空,则一直迭代寻找该元素链表的末位元素
#找到该元素链表的末尾元素后,在此元素后追加targetNode为该元素链表的新末尾元素
#basePat为指定元素;treeNode为指定元素链表的第一个元素节点,如指定r元素,则treeNode为r元素链表的第一个r节点
while treeNode!=None: #当元素链表指向的节点不为空时(即,尚未遍历完指定元素的链表时)
#将当前深度的频繁项追加到已有频繁项集中,然后将此频繁项集追加到频繁项集列表中