[关闭]
@Wayne-Z 2017-02-27T00:11:38.000000Z 字数 2193 阅读 3130

关于使用机器学习技术对人民日报文本进行数据挖掘的可行性分析

NLP



主要目标

本项目的目标是对如人民日报等官方媒体网站以及微博等媒体平台的相关内容进行爬取,并进行内容等方面的数据挖掘,提供一系列统计数据,用于下一步的分析和研究。

技术关键

爬虫

针对不同的网站,要根据其特定的文本发送方式和规律进行特定爬虫的编写,并将爬取的文本进行预处理,以达到可供中文分词等进一步处理的要求。

基于中文的分词系统

由于英文文本的基本单位是英文单词,因此国外的自然语言处理可以直接利用单词作为建立模型并进行分析的基本单位,这个中文文本有着本质的区别,因此如何使用机器对中文文本进行有效的再切割是技术关键之一。

基于中文编码的文本分类器

由于语言的不同,中文本身具有很多特殊字符,并且其编码方式(UTF-8)和已有的项目也不一定兼容和适配,需要找到或编写合适的代码接口,使得已有的项目可以适用于中文。

使用工具及解决方案

MeCab

MeCab是一套日文分词(形态分析)和词性标注系统(Yet Another Part-of-Speech and Morphological Analyzer), Mecab 系统比较新, 在很多方面都优于目前已有的系统, mecab 目前开发也比较活跃。 Mecab 虽然使用 CRF 实现, 但是解析效率上确相当高效, 据作者的介绍, Mecab 比基于 HMM 的 Chasen 的解析速度要快。 有学者在一台 Linux 机器上粗略测试过其速度,将近达到 2MB/s,完全达到了工程应用的需求, 该系统目前在日文 NLP 界被广泛使用。
本项目中并没有采用其原生自带的中文词典进行训练,而是从网上找到了一个更加精确的中文词典进行训练,其具体参数和精确度可参考相应博客

Demo

测试使用的原文本如下

我国经济发展进入新常态,是党的十八大以来党中央综合分析世界经济长周期和我国发展阶段性特征及其相互作用作出的重大战略判断。习近平总书记从国家战略的高度,对新常态的基本特点、科学内涵作了精辟阐释,对新常态怎么看、新常态下怎么干提出了明确要求。要主动适应、把握、引领新常态,与时俱进抓好经济工作,推动经济持续健康发展,为如期全面建成小康社会,进而实现第二个百年奋斗目标、实现中华民族伟大复兴奠定坚实物质基础。

将输入定位到train文件中,输入代码如下

  1. mecab -d ./mecab-chinesedic-binary/ -O wakati train.txt -o train
  2. 我国经济发展进入新常态,是党的十八大以来党中央综合分析世界经济长周期和我国发展阶段性特征及其相互作用作出的重大战略判断。习近平总书记从国家战略的高度,对新常态的基本特点、科学内涵作了精辟阐释,对新常态怎么看、新常态下怎么干提出了明确要求。要主动适应、把握、引领新常态,与时俱进抓好经济工作,推动经济持续健康发展,为如期全面建成小康社会,进而实现第二个百年奋斗目标、实现中华民族伟大复兴奠定坚实物质基础。

打开train文件,结果如下图所示

我国 经济 发展 进入 新 常态 , 是 党 的 十八 大 以来 党中央 综合 分析 世界 经济 长 周期 和 我国 发展 阶段性 特征 及其 相互作用 作出 的 重大 战略 判断 。 习近平 总书记 从 国家 战略 的 高度 , 对 新 常态 的 基本 特点 、 科学 内涵 作 了 精辟 阐释 , 对 新 常态 怎么 看 、 新 常态 下 怎么 干 提出 了 明确 要求 。 要 主动 适应 、 把握 、 引 领 新 常态 , 与时俱进 抓好 经济 工作 , 推动 经济 持续 健康 发展 , 为 如期 全面 建成 小康 社会 , 进而 实现 第二 个 百年 奋斗 目标 、 实现 中华民族 伟大 复兴 奠定 坚实 物质 基础 。

可见,中文分词的目标可以基本实现。

fastText

FaceBook AI Research在2016年暑假发布了开源项目fasttext
该项目可以用来进行文本的快速分类,并通过建立词向量模型,定量地反映出关键词之间的关联度。在论文Bag of Tricks for Efficient Text Classification中,作者将该项目的测试精度与测试时间与其他现有的项目和模型进行了详细的比较,证明fasttext无论在测试精度还是测试效率上都是目前业界最高。而在该论文中提到作者使用了搜狗的新闻语料,证明了其对于中文的通用性。

Demo

Demo的目标是分析出新闻文本所属的主题类型,用于训练模型的文本文件news_fasttext_test.txt大小为300M左右,其内容如下图所示
1.PNG-161.8kB
在命令行中输入如下命令,在30秒内得到训练好的model文件

  1. ./fasttext supervised -input news_fasttext_test.txt -output model

训练完成后,用news_fasttext_train.txt文件进行精度的测试

  1. ./fasttext test model.bin news_fasttext_train.txt

测试文件的大小也为300M,测试结果如下图2.PNG-12.7kB
说明精度为90.8%。
上文提到的两个文件都是事先人工进行标记完毕,并已经经过了分词。

总结

经过分类测试,本项目所设计的几个主要技术瓶颈已经分别找到了高效率的解决方案,无论是精度还是时间效率都很可观。下一步的工作还需要人工对大量文本进行分类和标记,用于模型的训练和对精度的初步估计,以及对特定网站的爬虫编写。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注