自然语言处理(Nature Language Process)是一个非常让人着迷的领域,应用范围非常广泛,比如去年人机大战中大出风头的IBM Watson,iPhone 4S的语音助理模块Siri,以及针对于社会热点的舆情分析,这些应用都使用了自然语言处理技术。当然,统计背景的分析类科研人员更关注于舆情分析这类的文本挖掘技术。
很多统计软件都提供了文本挖掘的功能,比如常见的数据分析软件SAS、SPSS等,以及一些语言如Python、Java,侧重点有所不同。但对于一般文本挖掘主要包括:
Preprocess:数据准备、导入、清洗以及一般性的预处理
Associate:关联分析,根据同时出现的频率找出关联规则
Cluster:将相似的文档(词条)进行聚类
Categorize:将文本划分到预先定义的类别里
API:可扩展的应用编程接口
至少在2008年,商业和开源软件的功能特性差不多(但我不确认Latent Semantic Analysis、Latent Dirichlet Allocation这类的模型是否支持),只是由于众所周知的缘故,对于API的扩展支持有所差异。
对于中文环境下的文本挖掘,无外乎要解决如下几个问题:
较为精确的中文分词(可能还需要支持个性化题库,甚至词性分析)
生成词条-文档矩阵,甚至矩阵的运算
后续的挖掘算法支撑(传统的以及语义类的)
其他
在R语言环境下,有众多的包支撑解决上述问题。 Ingo Feinerer开发维护的tm包提供了完整的文本挖掘的框架,借助辅助工具及R包,甚至还可以处理word、pdf文档的读入,文档处理并行化运算,文件数据库的语料处理等问题。
闲话不多说,最下面链接给出了一份基于《Introduction to the tm Package》整理的,基于tm包的中文文本挖掘的介绍性文档,内容包含
互联网网页处理:XML包的简介
中文分词
tm包的完整介绍:读写、语料库构建、过滤、转化、元数据、文档-词条矩阵等
文本挖掘技术及应用等