R语言jiebaR包的分词学习

实训中的自然语言处理部分,首先就是要分词了,学习一下!

上手jiebaR

使用jiebaR的第一步当然是安装jiabaR包并加载咯

安装: install.packages("jiebaR")    加载:  library(jiebaR)

三种分词语句的写法:

wk = worker()
#方法1
wk["我希望未来会很好"]

#方法2
wk<="我希望未来会很好" #此处用=的话可不行哟

#方法3
segment("我希望未来会很好",wk)

结果都是一样的,如下
 [1] "我" "希望" "未来" "会" "很" "好"

当然也可对文本文件进行分词:当前目录下创建文本文件like.txt

##like.txt
新的一学年开始了,结束了大一的骄傲和浮躁之后,桥川、钟白、任逸帆等人顺利进入了大二。肖海洋也通过了大一的考试,如愿以偿没有留级。大一的同窗情谊依旧继续。过了一个假期,大二伊始,旧同学的离开和新同学的加入,让他们之间的关系也发生了微妙变化。顾一心随家人去了美国上学, 毕十三把这份牵挂变成了学习上奋进的动力。转学生许连翘新转入电摄班并貌似带着神秘的任务。原班主任的离开,让原本散漫的电摄班开始团结。
人物的新旧交替,和大二课业的丰富与繁重,2015级电摄班大二的同窗故事更加精彩。这时的他们褪去了大一的青涩,迎来大学中成长速度最快的一年。九个人开启了各自的梦想,并在跌跌撞撞中实现自己的梦想。又是一年大学时光的流逝,九位同窗好友之间的情谊越来越浓。

然后,输入 wk[‘like.txt‘]

返回 [1] "like.segment.2018-01-08_16_13_17.txt" ,即在同目录下生成了分好词的文件,如下:

##like.segment.2018-01-08_16_13_17.txt
新 的 一 学年 开始 了 结束 了 大 一 的 骄傲 和 浮躁 之后 桥川 钟 白 任 逸 帆 等 人 顺利 进入 了 大二 肖 海洋 也 通过 了 大 一 的 考试 如愿以偿 没有 留级 大一 的 同窗 情谊 依旧 继续 过 了 一个 假期 大二 伊始 旧 同学 的 离开 和 新 同学 的 加入 让 他们 之间 的 关系 也 发生 了 微妙 变化 顾 一心 随 家人 去 了 美国 上学 毕 十三 把 这份 牵挂 变成 了 学习 上 奋进 的 动力 转 学生 许 连翘 新 转入 电摄 班 并 貌似 带 着 神秘 的 任务 原 班主任 的 离开 让 原本 散漫 的 电 摄班 开始 团结 人物 的 新旧交替 和 大二 课业 的 丰富 与 繁重 2015 级 电 摄班 大二 的 同窗 故事 更加 精彩 这时 的 他们 褪去 了 大 一 的 青涩 迎来 大学 中 成长 速度 最快 的 一年 九个 人 开启 了 各自 的 梦想 并 在 跌跌撞撞 中 实现 自己 的 梦想 又 是 一年 大学 时光 的 流逝 九位 同窗好友 之间 的 情谊 越来越 浓

so easy 吧,现在让我们看一下刚刚到底发生了些什么

分词引擎

在调用worker()函数时,我们实际是在加载jiebaR库的分词引擎。jiebaR库提供了7种分词引擎。

  • 混合模型(MixSegment):是四个分词引擎里面分词效果较好的类,结它合使用最大概率法和隐式马尔科夫模型。
  • 最大概率法(MPSegment) :负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。
  • 隐式马尔科夫模型(HMMSegment):是根据基于人民日报等语料库构建的HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。 HMM模型由dict/hmm_model.utf8提供。分词算法即viterbi算法。
  • 索引模型(QuerySegment):先使用混合模型进行切词,再对于切出来的较长的词,枚举句子中所有可能成词的情况,找出词库里存在。
  • 标记模型(tag)
  • Simhash模型(simhash)
  • 关键词模型(keywods)

一般情况下,使用默认引擎(混合模型)就足够了。

下面让我们仔细研究以下work()函数

worker(type = "mix", dict = DICTPATH, hmm = HMMPATH, user = USERPATH,
  idf = IDFPATH, stop_word = STOPPATH, write = T, qmax = 20, topn = 5,
  encoding = "UTF-8", detect = T, symbol = F, lines = 1e+05,
  output = NULL, bylines = F, user_weight = "max")

各参数的含义如下:

  • type, 引擎类型
  • dict, 系统词典
  • hmm, HMM模型路径
  • user, 用户词典
  • idf, IDF词典
  • stop_word, 关键词用停止词库
  • write, 是否将文件分词结果写入文件,默认FALSE
  • qmax, 最大成词的字符数,默认20个字符
  • topn, 关键词数,默认5个
  • encoding, 输入文件的编码,默认UTF-8
  • detect, 是否编码检查,默认TRUE
  • symbol, 是否保留符号,默认FALSE
  • lines, 每次读取文件的最大行数,用于控制读取文件的长度。大文件则会分次读取。
  • output, 输出路径
  • bylines, 按行输出
  • user_weight, 用户权重

work()函数的默认配置:

如果我们想改变分词引擎的配置项,可以在调用worker()创建分词引擎时,也可以通过wk$XX来进行设置

自定义用户词典

编写自定义的词典文件,mydict.utf8

然后,在调用worker时设置自定义的用户词典  wk=worker(user="mydict.utf8")

再次对like.txt执行分词,得到的结果如下:

【自定义词典结果】

【默认词典结果】

duang,是不是很有效果

此外,过滤停止词的本质与自定义词典是一样的啦,只要把停止词的默认文件换成自己的停止词文件就好啦

此外此外,还可能需要去除数据字母,可用正则表达式,用stringr包去除空格等

  

原文地址:https://www.cnblogs.com/Hyacinth-Yuan/p/8243476.html

时间: 2024-10-07 23:52:40

R语言jiebaR包的分词学习的相关文章

安装R语言的包的方法

安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA")  # 安装 TSA install.packages("TSA", contriburl="url",  dependencies = TRUE) # 安装TSA 2. 手动安装(离线安装) 在Windows下: 下载对应的package.zip文件 打开R的菜单条->Packages->"Install packa

R语言的包管理功能

现代的开发语言都已经不再是单一的编程语言和编译环境,而是一个网络化的分布式系统.通过包(packages)管理程序进行软件模块的安装.卸载.更新等操作. 包管理的思路从Linux操作系统而来,通过Debian的apt-get可以从全球数万个网站快速获取软件的最新版本.在Mac OS X上也可以通过MacPort或Brew进行软件包的管理.Java语言自己不带包管理程序,但可通过maven进行包的自动下载和编译.链接.nodejs是通过npm进行包管理.python通过pip进行包管理.这些都是在

R语言diagram包画订单状态流图

代码如下: library("diagram") #a <- read.table(file="clipboard",header=TRUE) write.table(a,file="a.txt",sep=";") aa <- a c <- matrix(nrow=ncol(aa),ncol=ncol(aa),0) i <- 1 while(i<=ncol(aa)){ j <- 1 whil

R语言TTR包的安装

R语言是一门统计语言,主要用于数学建模.统计计算.数据处理.可视化 等几个方向,R语言天生就不同于其他的编程语言.R语言封装了各种基础学科的计算函数,我们在R语言编程的过程中只需要调用这些计算函数,就可以构建出面向不同领域.不同业务的.复杂的数学模型. 一.作用 1.TTR包的目的是在R当中构造技术分析和其它技术交易规则的函数.TTR可在CRAN中找到,目前的版本号是0.22(更新2013-3-18). TTR目前的功能是提供了一些常见的技术分析指标的函数,可以分为下面几类: 移动平均 趋势检测

R语言caret包的学习(一)--数据预处理

caret包(Classification and Regression Training)是一系列函数的集合,它试图对创建预测模型的过程进行流程化.本系列将就数据预处理.特征选择.抽样.模型调参等进行介绍学习. 本文将就caret包中的数据预处理部分进行介绍学习.主要包括以下函数:model.matrix(),dummyVars(),nearZeroVar(),findCorrelation(),findLinearCombos(),preProcess(),classDist() 创建虚拟变

R语言caret包的学习(二)--特征选择

在进行数据挖掘时,我们并不需要将所有的自变量用来建模,而是从中选择若干最重要的变量,这称为特征选择(feature selection).本文主要介绍基于caret包的rfe()函数的特征选择. 一种算法就是后向选择,即先将所有的变量都包括在模型中,然后计算其效能(如误差.预测精度)和变量重要排序,然后保留最重要的若干变量,再次计算效能,这样反复迭代,找出合适的自变量数目.这种算法的一个缺点在于可能会存在过度拟合,所以需要在此算法外再套上一个样本划分的循环.在caret包中的rfe命令可以完成这

R语言——jiebaR基础

一.jiebaR中的函数介绍(很大一部分参照jiebaR官方文档:qinwenfeng.com/jiebaR/)**No.1**worker(type = "mix", dict = DICTPATH, hmm = HMMPATH, user = USERPATH,idf = IDFPATH, stop_word = STOPPATH, write = T, qmax = 20, topn = 5,encoding = "UTF-8", detect = T, sy

R语言 机器学习包

from:http://www.zhizhihu.com/html/y2009/410.html 机器学习是计算机科学和统计学的边缘交叉领域,R关于机器学习的包主要包括以下几个方面:  1)神经网络(Neural Networks): nnet包执行单隐层前馈神经网络,nnet是VR包的一部分(http://cran.r-project.org/web/packages/VR/index.html).  2)递归拆分(Recursive Partitioning): 递归拆分利用树形结构模型,来

R语言做文本挖掘 Part2分词处理

Part2分词处理 在RStudio中安装完相关软件包之后,才能做相关分词处理,请参照Part1部分安装需要软件包.参考文档:玩玩文本挖掘,这篇文章讲用R做文本挖掘很详尽,并且有一些相关资料的下载,值得看看! 1.       RWordseg功能 说明文档可在http://download.csdn.net/detail/cl1143015961/8436741下载,这里只做简单介绍. 分词 > segmentCN(c("如果你因为错过太阳而流泪", "你也会错过星星