数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词

在上一篇博客中简单介绍了实验环境和流程,这一篇我们继续。


第一步,下载搜狗中文语料库。链接:http://www.sogou.com/labs/dl/c.html
我们下载24M大小的精简版(tar.gz格式)

数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片

下载完了,解压缩,放到做本次实验的目录里存好。(这不废话嘛!)
打开语料库看下,它一共是9类,每类由编号为10到1999大约1900篇txt文件构成。
手动将每一类的1900篇文章分开,分成两份,一份存为训练集,一份存为测试集。

我们点击上图中的分类编码对照表(txt格式)可以看每一类对应的中文分类。

数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片





第二步就是下载中科院张华平博士的汉语词法分析系统ICTCLAS了。链接:http://ictclas.nlpir.org/downloads


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片



我们打开下载包,进入这个路径:20140926175340_ICTCLAS2014\ICTCLAS2014\sample\pythonsample
这时pythonsample目录下是这样的:
数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片

根据readme提示将data文件夹拷到pythonsample目录下:


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片



然后我们就可以将pythonsample文件夹整个拷到我们做这个实验的目录中了。


第三步,尝试分词。
我们用python自带的IDLE打开pythonsample中的nipir.py文件。安装python环境参考廖雪峰老师的网站:http://www.liaoxuefeng.com


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片





打开以后,发现示例文件的最下方分词举例是这样的:


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片

也就是说,示例分词是要把"Big News: @解放日报 [最右]【呼市铁路局原副局长被判死缓 最头痛藏钱】2013年12月底,呼市铁路局原副局长马俊飞..."这段话做分词。我们跑下试试,看看分词效果。
调出命令行界面,进入pythonsample文件夹,运行nlpir.py。(我的pythonsample文件夹就在桌面上)。如图:


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片



第一次尝试运行的时候,可能会报操作系统位数不匹配的错,如下:


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片



我们大概知道,肯定是操作系统位数的问题,常用的windows系统就是32位或者64位,我们根据提示去看看nlpir.py文件第14行:


数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片

第14行是把libFile 指向nipir目录下的NLPIR64.dll,我们打开nlpir目录,发现里边既有NLPIR64.dll又有NLPIR32.dll。这样我们只需把第14行的64改为32,然后跑跑试试。

数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片



分词成功了,但是输出结果是乱码。python的编码问题困扰了很多人哈,因为我也是初学,对编码理解的也不深,不过这个问题我们可以先解决,编码问题以后有时间再深入研究。
解决办法:将下面两行代码贴到nlpir.py文件顶端。
import sys
type = sys.getfilesystemencoding()
然后在文件最下方将print (s)改为print s.decode('utf-8').encode(type),如图:
数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片

然后,我们在去尝试运行nlpir.py。
OK!成功啦!很开心有木有!!

数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词
文章图片







【数据挖掘 文本分类(二)搜集中文语料库与ICTCLAS分词】

    推荐阅读