Mac版R语言(六)文本挖掘(用户词库的导入、批量导入搜狗词库)

2023-11-21 13:59

本文主要是介绍Mac版R语言(六)文本挖掘(用户词库的导入、批量导入搜狗词库),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

R语言问题讨论交流,欢迎关注我的新浪微博:Jenny爱学习

文本挖掘应用的博客将分4个部分分别讨论完成,本篇将完成part 1的详细project:

  1. 用户字典批量安装,自定义分词词库,自建分词packages的安装
  2. jiebaR分词的使用
  3. 词云的绘制(wordcloud2详细使用见:Mac版R语言(四)使用wordcloud2画词云点击打开链接)
  4. k-means聚类

运行环境Platform: x86_64-apple-darwin13.4.0 (64-bit),MacOS Sierra 10.12.3,R3.3.2 (2016-10-31),涉及到的所有packages均更新下载于2017-6月。

所有代码均已全部运行,结果附图,有任何问题欢迎留言讨论。

1.  分词常用packages


1.1 R提供的文本挖掘packages:

  •  tm:英文分词工具
  • jiebaR:中文分词工具,本身是C++写的,具有极高的运算处理速度
  • Rwordseg:中文分词工具,Mac版依赖旧版本的Java,较难安装,版本更新慢,不推荐使用
  • chinese.misc:中文分词工具,内核基于Rwordseg
  • rmmseg4j:
  • snowball:英文词干化
1.2 其他常用汉语分词系统:
  • 中科院NLPIR汉语分词系统   :零代码在线版  点击打开链接
  • 微软word2vec:基于深度学习的文本挖掘系统


2.  用户词典的建立

 2.1 词库下载
        jiebaR作为目前R平台上最好的中文分词工具,虽然其自带词库和停用词库,但是对于不同行业的研究者来说,自带词库并不能满足所有的研究需求。因此,用户需要自己安装行业内的专用词库,具体词库可以从搜狗词库上下载安装:点击打开链接


2. 2 单个词典导入

2.2.1 零代码转换分词词库
             如果只需要导入单个词典,推荐使用在线版本的词库转换工具,同样是来自jiebaR作者Qin Wenfeng,点击链接进行在线转换:
       点击打开链接


2.2.2  代码导入词库
    cidian包的下载安装方法见下方:2.3 批量词库导入。
新建Rproject工程文件,将project工程文件建立在搜狗词典库同文件夹中。
结果如下图:
在得到的文件中,将转化后的后缀名为.dict搜狗词库名称改为user.dict.utf8,并替换原文件,就将搜狗词典转换为默认的用户词典了。

2.3  批量词库导入
        
  需要进行分词的文档可能综合了许多学科,因此仅仅使用单个词库并不能分出许多不同行业的专用词,这时就需要批量导入多学科词库,对文档进行分词。
        批量导入搜狗词库需要cidian这个package,在R上查看cidian的文档信息,cidian这个包同样来自jiebaR的作者Qin Wenfeng。
        11、13、14行的注释:在载入cidian的时候还需要载入Rcpp和RcppProgress、stringi、pbapply、jiebaR这五个程序包。
        由于词典发布在github上,因此Mac环境下需要借助devtools这个packages安装下载(后面有详细介绍),windows环境需要安装Rtools开发工具才能安装cidian包。

    安装jiebaR中批量导入词库的package
   打开R,根据文档,执行以下代码:       
结果截图


整个代码运行的过程中,要确保每个文件的路径正确,否则可能会生成一些空数据集,

代码运行后,词库所在的文件夹中会生成对应.scel词库的.txt.文件格式,如下图:
将所有生成的.txt文件合并为一个文件

这时得到一个全部.txt格式词库的文件,R中environment显示,整理后的词库约有30万条专业词汇,21.6M:
使用unique()函数去掉重复词语,还剩28万条词:


最后,将去重的词库写出:
write.table(dict1,file = "use.dict.utf8",quote = F,row.names = F,col.names = F,fileEncoding = "UTF-8")
在Rproject文件夹中得到如下结果:
按照2.2.2 中介绍的替换词库的方法,将生成的词库替换至jiebaR的默认用户词库即可。




这篇关于Mac版R语言(六)文本挖掘(用户词库的导入、批量导入搜狗词库)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402777

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i