给定一批新闻数据(可从obe-课件页面下载,文件名ruc_news.zip),从中挖掘出这些新闻中的社交网络关系。
数据格式:数据文件中包含了从人大新闻网采集的新闻内容(http://news.ruc.edu.cn/archives/category/important_news),包括新闻编号、发表时间、标题、浏览次数、作者、以及正文内容。 每一行为一条新闻,其中各个字段用\t隔开。
基于该数据,完成下述内容:
一、数据预处理(0分)
-
(1) 使用结巴分词,对其中的新闻标题和正文内容进行分词并抽取其中包含的人名、机构名和地名。结巴分词: https://github.com/fxsjy/jieba。注意,为了检测其中的实体,请使用posseg。Jieba的词性标注列表请参考https://blog.csdn.net/Yellow_python/article/details/83991967。
-
(2) 统计其中包含的热门人物和机构,验证数据的正确性
-
(3) 建立社交网络图,两个人如果出现在同一篇新闻中,则假设这两个人有联系。两个人的联系强弱可以通过共同出现的文章的数目来表示。例如,假设A和B在10篇新闻中同时出现过,则A-B之间的边的权重为10。
二、完成下面基础内容(30分):
-
图的验证: 提供界面,输入一个人A进行查询,可以输出和A关系最强的前10个人(邻居)。
-
图的统计:计算图的节点个数,边数,连通分量的个数,最大连通分量的大小。
结点数: 30642 边数: 1188579 连通分支数: 34 极大连通分支: 30605
三、自选分析:在上面的基础上,完成下面内容几项内容中的任意3项(每项15分,共45分):
-
(1) 影响力计算:使用PageRank算法计算每个人的影响力大小。并给出影响力最大的前20个人。
[('徐小珍', 6.68747092170607e-06), ('庞士', 6.714363123011516e-06), ('马俊锋', 6.721778899611273e-06), ('周知', 6.731255416939942e-06), ('农超', 6.734951493167437e-06), ('司杨光', 6.742105930481766e-06), ('史超', 6.7421360064618716e-06), ('姜才原', 6.753817368124991e-06), ('叶铭泉', 6.759211601288554e-06), ('狄东生', 6.764497849501906e-06), ('普列汉诺', 6.768217182264003e-06), ('许校', 6.772043324920581e-06), ('严书翰', 6.772463588368454e-06), ('易燃', 6.7734344118580255e-06), ('珞珈', 6.77408715233191e-06), ('李志凯', 6.77550087714343e-06), ('荣维木', 6.776433610031643e-06), ('李兴录', 6.77737610225654e-06), ('刘元文', 6.780319636349243e-06), ('申相勋', 6.784216940385215e-06)]
-
(5) 中心性计算:计算每个节点的中介中心性,并输出中介中心性最大的10个人。
-
(6) 节点的聚集系数计算:计算每个节点的聚集系数,并输出聚集系数最大的10个人。
[('郑凤勤', 1.0), ('陶锋', 1.0), ('伽利略', 1.0), ('王晓薇', 1.0), ('官刘晖', 1.0), ('赵启成', 1.0), ('朱宝霞', 1.0), ('梁洁', 1.0), ('徐念沙', 1.0), ('姚焕', 1.0)]
除上述内容外,也可以在图中融入机构名、地名等进行综合分析,分析出有价值有意义的现象。会根据内容适当加分。
四、使用计算机学报的论文模板和内容要求,撰写论文。要求格式规范,内容详实,有必要的思考,在摘要部分,清晰的写出完成了自选分析中的哪几项。(15分)。
- 五、提交完整的代码、可执行程序、用户手册(10分)