您的位置:首页 > 其它

文本挖掘系统的实现之R语言分词

2016-02-25 20:43 337 查看
1、文本挖掘的发展

对于文本挖掘大体可以分为两大类,一种是对单个文本的挖掘,主要是做文本结构析,文本摘要、信息表现,主要是挖掘单个文本中有价值的信息,在内容或结构上,主要应用在文本检索领域或搜索引擎;另一种是对文档集的,主要是做文本的分类、聚类,通过提取文本的某些特征对文本进行分类聚类,可以应用在文件的自动管理和垃圾邮件的过滤等方面。

2、 中文文本挖掘的流程

1)数据源:这是文本挖掘的起始点,文本的数据源会有网页、邮件、图书、文章、日志等,这些都会蕴含着丰富的价值。

2)文本的预处理:整理需要挖掘的文本,包括文本解析,而对于中文文本来说,主要的就是分词。通过分词及语言分析的算法或工具将其转化成数据挖掘工具可以处理的结构化数据。

3)文本挖掘:在完成文本预处理后,可以利用数据挖掘、数据分析以及机器学习的方法提取面向特定应用目标的信息或模式。

4)模式评估与展现:这是文本挖掘的最后一个环节,是利用已经定义好的

评估指标对获取的信息或模式进行评价。如果评价通过,就可以通过各种方式将

模式呈现给用户。



3、数据预处理

特征表示

一般选用TF—IDF来表示一个词的权重

遵循 TF-IDF 思想可以用很多不同的数学公式来计算,常用的公式如下:太难打了省略。TF 代表一个一片文章中的单词,如果出现的次数越多,则越重要。如果一个单词在多篇文章中出现,那么越不重要。

4、文本分类算法(这里有很多算法,大家可以百度一下,不讲解每一个算法的原理)

SVM

决策树

5、中文文本挖掘工具

5.1 R 文本挖掘应用

Rwordseg 包

Rwordseg 包,它可以方便的定义字典,这样就可以不断的适应新词的出现,也可以适应有不同领域专业词汇的分词.

Rwordseg 是 R 中的中文分词工具,用的分词 Java 工具 Ansj,通过 r Java 调用写成的方法。Ansj 是一个开源的Java 中文分词工具,是基于中科院的ICTCLAS 分词算法,采用隐马尔科夫模型(Hidden Markov Model, HMM)

如何使用Rwordseg进行中文分词

library(r Java)

> library(Rwordseg)

> segment CN("这是个中文分词软件。")

[1] "这" "是" "个" "中文" "分词" "软件"

segment CN("这是个中文分词软件。",nosymbol=FALSE)

[1] "这" "是" "个" "中文" "分词" "软件" "。"

segment CN("康东是个好学生。")

[1] "康" "东" "是" "个" "好" "学生"

> segment.options(isNameRecognition = TRUE)

> segment CN("康东是个好学生。")

[1] "康东" "是" "个" "好" "学生"

可以创建自定义的词典

listDict()

[1] Name Type Des Path

<0 行> (或 0-长度的 row.names)

> segmentCN("这是个中文分词软件。")

[1] "这" "是" "个" "中文" "分词" "软件"

> insertWords("这是")

> segmentCN("这是个中文分词软件。")

[1] "这是" "个" "中文" "分词" "软件"

Rwordseg 包更强功能,可以安装新的词典,一次安装后,每次启动此包时就会自动加载。而且支持每行一词的文本词典和 Sogou 的 Secl 格式细胞词典,这样就方便了我们自己编辑词典,也可以从 Sogou 细胞词库搜索下载专业词汇加到字典中,使我们的分词更加准确。

install Dict("E:/颜色名称.scel","color")

736 words were loaded! ... New dictionary 'color' was installed!

> list Dict()

Name Type Des

Path

1 color 绘画 这是各种颜色的汉语名称,希望大家补充 d:/Program Files/R/R-3.0.

2/library/Rwordseg/dict/color.dic

Rwordseg 不只是能对字符串进行分词,对于文本文件直接就可以分词,而且效率也非常高。我们可以用它做分词,但是作为一个集成的系统,需要使用 r Java 调用 R 命令,因此最好用其底层的 Ansj 这个开源的 Java 包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: