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)

相关推荐

  • 美国企业云服务器中的关键功能

    技术美国企业云服务器中的关键功能并非每个美国云服务器都会为您的企业提供相同的功能集。在为您的企业选择完美的美国云服务器环境时,您需要注意某些能够帮助您获得最佳性能、可扩展性和安全性的功能。1. 稳固的服务器网络 美国云服

    礼包 2021年11月9日
  • ipv6组播地址范围(ipv6的组播地址)

    技术SDN网络IPv6组播机制是什么本篇内容主要讲解“SDN网络IPv6组播机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SDN网络IPv6组播机制是什么”吧!知识

    攻略 2021年12月20日
  • 分析mysql系统库日志信息记录表

    技术分析mysql系统库日志信息记录表这篇文章主要介绍“分析mysql系统库日志信息记录表”,在日常操作中,相信很多人在分析mysql系统库日志信息记录表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年11月5日
  • properties文件怎么读取里面数据(properties文件数据怎么获取)

    技术怎样读取properties或yml文件数据并匹配今天就跟大家聊聊有关怎样读取properties或yml文件数据并匹配,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

    攻略 2021年12月18日
  • DAY17 个人中心头像设置

    技术DAY17 个人中心头像设置 DAY17 个人中心头像设置先来说存储文件的两种情形,同文件不同名的存储以及同名不同文件的存储
    解决的方法就是指纹,用指纹来识别文件,并通过指纹进行文件的获取
    写入

    礼包 2021年10月28日
  • 弯月眉,因为胖找不到对象,怎么办

    技术弯月眉,因为胖找不到对象,怎么办为了好找对象就坚持减肥弯月眉,如果觉得找不找对象无所谓的话,你就放开吃吧!
    一个人的体重超标,过于肥胖;一,对你的健康也不好。二,行动不方便,工作难找。三,不入法眼,找对象难。
    有句话

    生活 2021年10月26日