R语言做文本挖掘 Part4文本分类

技术R语言做文本挖掘 Part4文本分类 R语言做文本挖掘 Part4文本分类Part4文本分类
【发现有人转载,决定把格式什么重新整理一遍,有时间做个进阶版文本挖掘,恩!原文地址:CSDN-R语言做文

用于文本挖掘的r语言第4部分文本分类

第四部分文本分类

【发现有人转载,决定重新整理格式和什么,有时间就做一个高级版的文本挖掘,嗯!原文地址:用于文本挖掘的CSDN-R语言第4部分文本分类]

正如第3部分文本聚类中提到的,分类和聚类之间的简单区别。因此,要进行分类,需要先整理出一个训练集,也就是已经分类清楚的文本;测试集可以被训练集代替;预测集,即未分类文本,是分类方法的最终应用。

1.数据准备

训练集准备是一个非常繁琐的功能,所以暂时还没有找到什么省力的方法,只能根据文字内容手动整理。在这里,我们仍然使用某个品牌的官方微数据。根据微博的内容,我把它在微博中的主要内容分为:推广信息、产品推广、公益信息、生活鸡汤、时尚新闻、娱乐圈。每个类别有20-50条数据,如下图,培训。

训练集是hlzj.train,以后作为测试集使用。

预测集是第2部分中的hlzj。

hlzj . train-read . CSV(' hlzj _ train . CSV ',header=T,stringsAsFactors=F)

长度(hlzj.train)

[1] 2

表(hlzj.train $类型)

时尚新闻生活产品

27 34 38

推广公益娱乐圈

45 22 36

长度(hlzj)

[1] 1639

2.分词处理

训练集、测试集和预测集都需要分词才能进行后续的分类过程。这里就不详细描述了。该过程类似于第2部分中描述的过程。设置分词后hlzjTrainTemp的训练,然后为HLZJ文件设置分词后的hlzjTEMP。然后分别从hlzjTrainTemp和hlzjTemp中删除停止字。

图书馆

hlzjtrainttemp-gsub('[0-90123456789 ~]','',hlzj.train$text)

分段

hlzjtrainttemp 2-lappy(hlzjtrainttemp,removeStopWords,StopWords)

hlzj temp 2-lappy(hlzj temp,removeStopWords,StopWords)

3.获取矩阵

如Part3所述,聚类时,首先要将文本转换成矩阵,分类也需要这个过程,使用tm软件包。首先,将训练集和停止词去除后的预测集的结果合并到hlzjAll中。请记住,前202条数据(1:202)是训练集,最后1639条数据(20:1841)是预测集。得到hlzjAll的语料库,得到文档入口矩阵,转化为公共矩阵。

hlzjAll -字符(0)

hlzjAll[1:202]-hlzjtrainttemp 2

hlzjAll[203:1841]-hlzjtemp 2

长度(hlzjAll)

[1] 1841

语料库

(hlzjall . DTM-document term matrix(corp sall,control=list(WordLengs=c(2,Inf)))

文档术语矩阵(文档: 1841,术语: 10973)

非稀疏/稀疏条目: 33663/20167630

稀疏度: 100%

最长期限: 47

加权:项频率(tf)

dtmAll _ matrix-as . matrix(hlzjall . DTM)

4.分类

使用类软件包中的knn算法(K最近邻算法)。矩阵的前202行数据是已经分类的训练集,而最后1639条数据没有分类。我们应该根据训练集得到分类模型,然后对其进行分类预测。将分类结果与原微博放在一起,用fix()检查,可以看到分类结果,效果相当明显。

row names(DTmall _ matrix)[1:202]-hlzj . train $ type

row name(DTmall _ matrix)[20:1841]-c(')

train - dtmAll_matrix[1:202,]

predict-dtmAll _ matrix[203:1841,]

train class-as . factor(row name(train))

图书馆(类)

培训、预测、培训课程

长度(hlzj_knnClassify)

[1] 1639

hlzj_knnClassify[1:10]

[1]产品产品推广产品时尚新闻生活

[8]产品产品时尚新闻

:时尚新闻生活产品推广公益娱乐圈

表(hlzj_knnClassify)

hlzj_knnClassify

时尚新闻生活产品推广公益娱乐圈

40 869 88 535 28 79

hlzj . KNN result-list(type=hlzj _ knnClassify,text=hlzj)

hlzj . KNN result-as . data . frame(hlzj . KNN result)

修复(hlzj.knnResult)

Knn分类算法是最简单的一种。后来我尝试用神经网络算法(nnet())、支持向量机算法(svm())和randomForest算法(())的时候,出现了计算机内存不足的问题。我的电脑是4G的,当我观看内存监控时,我可以看到最大使用量达到了3.92G,看起来我们需要换一台更好的电脑 ()

在硬件条件能够满足的情况下,分类应该没有问题。相关算法可以使用:方法名,来查看其描述文档。

5.分类效应

上面没有提到测试过程。对于上面的例子,knn的前两个参数使用train。因为使用了相同的数据集,结果是准确率可以达到100%。如果训练集很多,可以按7:3或833602随机分成两部分,前者用于训练,后者用于测试。这里就不细说了。

在分类效果不理想的情况下,需要对训练集进行丰富,使训练集的特征尽可能明显,以提高分类效果,这在实践中是一个繁琐但不敷衍的过程。

有什么可以改进的欢迎指正,请注明出处,谢谢!

————————————————

版权声明:本文系CSDN博主EchoCaiCai原创文章,遵循CC 4.0 BY-SA版权协议。转载请附上原始来源链接和本声明。

原文:https://blog.csdn.net/cl1143015961/article/details/44413631

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151778.html

(0)

相关推荐

  • HDFS集群NameNode节点元数据占用内存计算的示例分析

    技术HDFS集群NameNode节点元数据占用内存计算的示例分析这篇文章将为大家详细讲解有关HDFS集群NameNode节点元数据占用内存计算的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后

    攻略 2021年12月9日
  • jquery如何去除第一个元素

    技术jquery如何去除第一个元素这篇文章主要介绍“jquery如何去除第一个元素”,在日常操作中,相信很多人在jquery如何去除第一个元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月16日
  • Java静态代码分析工具的优势是什么

    技术Java静态代码分析工具的优势是什么这篇文章主要讲解了“Java静态代码分析工具的优势是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java静态代码分析工具的优

    攻略 2021年10月29日
  • 印第安人灭绝了吗,屠杀印第安人的刽子手是谁

    技术印第安人灭绝了吗,屠杀印第安人的刽子手是谁印第安人是美洲大陆的原住民,也可以称为土著,在航海时代被发现以后,他们的逍遥日子发生了改变,现在的北美印第安人已经很稀少,是原来人口的一个零头而已,印第安人的美洲大陆,在历史

    生活 2021年10月31日
  • 如何解决win7注册表损坏导致无法引导启动问题

    技术如何解决win7注册表损坏导致无法引导启动问题这篇文章给大家分享的是有关如何解决win7注册表损坏导致无法引导启动问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。系统注册表损坏,用U盘启

    攻略 2021年11月17日
  • sql server 2008如何利用mdf和ldf文件还原数据库

    技术sql server 2008如何利用mdf和ldf文件还原数据库这篇文章将为大家详细讲解有关sql server 2008如何利用mdf和ldf文件还原数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读

    攻略 2021年11月18日