文章目录

  • 介绍
    • worker()函数介绍
    • 参数介绍
  • new_user_word()函数介绍
    • 参数介绍
    • freq()函数介绍
  • 实例
    • 利用默认库进行分词
    • 利用自定义词库进行分割
    • 通过文本文件添加用户自定义词库
      • 注意事项
    • 自定义停用词
    • 进行分词并词频统计
    • 词性标注
      • 注意事项
    • 提取关键词

介绍

能够实现中文分词的R包有Rwordseg包和jiebaR包,从目前来看jiebaR包的功能更加强大,效率也更高。这里将介绍如何使用jiebaR包实现中文分词。

worker()函数介绍

worker()函数可以创建一个jiebaR对象,包括分割器、查找器、重点词提取器等等,随后可进行具体的工作。

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
    The type of jiebaR workers including mix, mp, hmm, full, query, tag, simhash, and keywords.

  • dict
    A path to main dictionary, default value is DICTPATH, and the value is used for mix, mp, query, full, tag, simhash and keywords workers.

  • hmm
    A path to Hidden Markov Model, default value is HMMPATH, full, and the value is used for mix, hmm, query, tag, simhash and keywords workers.

  • user
    A path to user dictionary, default value is USERPATH, and the value is used for mix, full, tag and mp workers.

  • idf
    A path to inverse document frequency, default value is IDFPATH, and the value is used for simhash and keywords workers.

  • stop_word
    A path to stop word dictionary, default value is STOPPATH, and the value is used for simhash, keywords, tagger and segment workers. Encoding of this file is checked by file_coding, and it should be UTF-8 encoding. For segment workers, the default STOPPATH will not be used, so you should provide another file path.

  • write
    Whether to write the output to a file, or return a the result in a object. This value will only be used when the input is a file path. The default value is TRUE. The value is used for segment and speech tagging workers.

  • qmax
    Max query length of words, and the value is used for query workers.

  • topn
    The number of keywords, and the value is used for simhash and keywords workers.

  • encoding
    The encoding of the input file. If encoding detection is enable, the value of encoding will be ignore.

  • detect
    Whether to detect the encoding of input file using file_coding function. If encoding detection is enable, the value of encoding will be ignore.

  • symbol
    Whether to keep symbols in the sentence.

  • lines
    The maximal number of lines to read at one time when input is a file. The value is used for segmentation and speech tagging workers.

  • output
    A path to the output file, and default worker will generate file name by system time stamp, the value is used for segmentation and speech tagging workers.

  • bylines
    return the result by the lines of input files

  • user_weight
    the weight of the user dict words. “min” “max” or “median”.

new_user_word()函数介绍

该函数用于条件用户自定义的词汇

new_user_word(worker, words, tags = rep("n", length(words)))

参数介绍

  • worker
    a jieba worker

  • words
    the new words,是一个向量

  • tags
    the new words tags, default “n”,

freq()函数介绍

freq(x)对一个字符串向量x进行词频统计,随后可以基于此绘制词云图

实例

利用默认库进行分词


library(jiebaR)
engine<-worker()
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
segment(words,engine)
# 或者 engine<=words
# 或者 engine[words]
# [1] "4"          "月"         "28"         "日"         "在"         "北京市"     "新型"
# [8] "冠状病毒"   "肺炎"       "疫情"       "防控"       "工作"       "第"         "318"
# [15] "场"         "新闻"       "发布会"     "上"         "市"         "疾控中心"   "副"
# [22] "主任"       "全国"       "新型"       "冠状病毒"   "肺炎"       "专家"       "组成员"
# [29] "庞"         "星火"       "通报"       "4"          "月"         "27"         "日"
# [36] "15"         "时至"       "28"         "日"         "15"         "时"         "本市"
# [43] "新增"       "本土"       "新冠"       "肺炎"       "病毒感染者" "56"         "例"
# [50] "其中"       "确诊"       "病例"       "53"         "例"         "无症状"     "感染者"
# [57] "3"          "例"         "房山区"     "20"         "例"         "朝阳区"     "14"
# [64] "例"         "顺义区"     "8"          "例"         "通州区"     "6"          "例"
# [71] "海淀区"     "3"          "例"         "丰台区"     "2"          "例"         "东城区"
# [78] "1"          "例"         "石景山区"   "1"          "例"         "大兴区"     "1"
# [85] "例"         "社区"       "筛查"       "6"          "例"         "主动"       "就诊"
# [92] "2"          "例"         "风险"       "人员"       "48"         "例"   

利用自定义词库进行分割

library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_new_word<-worker()
new_user_word(engine_new_word, c("新闻发布会","新型冠状病毒"))
segment(words,engine_new_word)
# [1] "4"            "月"           "28"           "日"           "在"           "北京市"
# [7] "新型冠状病毒" "肺炎"         "疫情"         "防控"         "工作"         "第"
# [13] "318"          "场"           "新闻发布会"   "上"           "市"           "疾控中心"
# [19] "副"           "主任"         "全国"         "新型冠状病毒" "肺炎"         "专家"
# [25] "组成员"       "庞"           "星火"         "通报"         "4"            "月"
# [31] "27"           "日"           "15"           "时至"         "28"           "日"
# [37] "15"           "时"           "本市"         "新增"         "本土"         "新冠"
# [43] "肺炎"         "病毒感染者"   "56"           "例"           "其中"         "确诊"
# [49] "病例"         "53"           "例"           "无症状"       "感染者"       "3"
# [55] "例"           "房山区"       "20"           "例"           "朝阳区"       "14"
# [61] "例"           "顺义区"       "8"            "例"           "通州区"       "6"
# [67] "例"           "海淀区"       "3"            "例"           "丰台区"       "2"
# [73] "例"           "东城区"       "1"            "例"           "石景山区"     "1"
# [79] "例"           "大兴区"       "1"            "例"           "社区"         "筛查"
# [85] "6"            "例"           "主动"         "就诊"         "2"            "例"
# [91] "风险"         "人员"         "48"           "例"

通过文本文件添加用户自定义词库

library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_user<-worker(user='dictionary.txt')
segment(words,engine_user)
# [1] "4"            "月"           "28"           "日"           "在"           "北京市"
# [7] "新型冠状病毒" "肺炎"         "疫情"         "防控"         "工作"         "第"
# [13] "318"          "场"           "新闻发布会"   "上"           "市"           "疾控中心"
# [19] "副"           "主任"         "全国"         "新型冠状病毒" "肺炎"         "专家"
# [25] "组成员"       "庞"           "星火"         "通报"         "4"            "月"
# [31] "27"           "日"           "15"           "时至"         "28"           "日"
# [37] "15"           "时"           "本市"         "新增"         "本土"         "新冠"
# [43] "肺炎"         "病毒感染者"   "56"           "例"           "其中"         "确诊"
# [49] "病例"         "53"           "例"           "无症状"       "感染者"       "3"
# [55] "例"           "房山区"       "20"           "例"           "朝阳区"       "14"
# [61] "例"           "顺义区"       "8"            "例"           "通州区"       "6"
# [67] "例"           "海淀区"       "3"            "例"           "丰台区"       "2"
# [73] "例"           "东城区"       "1"            "例"           "石景山区"     "1"
# [79] "例"           "大兴区"       "1"            "例"           "社区"         "筛查"
# [85] "6"            "例"           "主动"         "就诊"         "2"            "例"
# [91] "风险"         "人员"         "48"           "例"

注意事项

1.如果你的词库是用记事本写的话,因为编码有时不是UTF-8,使用时会出现 各种错误,甚至软件奔溃。所以建议使用notepad++编辑,将编码设置为utf-8,另存为txt文件。
2.如果你需要添加搜狗细胞词库的话,那你需要安装cidian包,它可以帮助 我们把搜狗细胞词库转换为jiebaR可以使用的词库。

自定义停用词

library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_user<-worker(user='dictionary.txt',stop_word = "stopwords.txt")
segment(words,engine_user)
# [1] "4"            "月"           "28"           "日"           "北京市"       "新型冠状病毒"
# [7] "肺炎"         "疫情"         "防控"         "工作"         "318"          "场"
# [13] "新闻发布会"   "上"           "市"           "疾控中心"     "副"           "主任"
# [19] "全国"         "新型冠状病毒" "肺炎"         "专家"         "组成员"       "庞"
# [25] "星火"         "通报"         "4"            "月"           "27"           "日"
# [31] "15"           "时至"         "28"           "日"           "15"           "时"
# [37] "本市"         "新增"         "本土"         "新冠"         "肺炎"         "病毒感染者"
# [43] "56"           "其中"         "确诊"         "病例"         "53"           "无症状"
# [49] "感染者"       "3"            "房山区"       "20"           "朝阳区"       "14"
# [55] "顺义区"       "8"            "通州区"       "6"            "海淀区"       "3"
# [61] "丰台区"       "2"            "东城区"       "1"            "石景山区"     "1"
# [67] "大兴区"       "1"            "社区"         "筛查"         "6"            "主动"
# [73] "就诊"         "2"            "风险"         "人员"         "48"

进行分词并词频统计


library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_user<-worker(user='dictionary.txt',stop_word = "stopwords.txt")
freq(segment(words,engine_user))
#             char freq
# 1          就诊    1
# 2          主动    1
# 3          社区    1
# 4        大兴区    1
# 5             1    3
# 6        丰台区    1
# 7        通州区    1
# 8          筛查    1
# 9            14    1
# 10            3    2
# 11       无症状    1
# 12         病例    1
# ...

词性标注

library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_user<-worker(user='dictionary.txt',stop_word = "stopwords.txt",type="tag")
segment(words,engine_user)
# x              m              m              m             ns              b
# "4"           "月"           "28"           "日"       "北京市" "新型冠状病毒"
# n              n             vn             vn              m              q
# "肺炎"         "疫情"         "防控"         "工作"          "318"           "场"
# a              f              n              n              b              b
# "新闻发布会"           "上"           "市"     "疾控中心"           "副"         "主任"
# n              b              n              n              l             nr
# "全国" "新型冠状病毒"         "肺炎"         "专家"       "组成员"           "庞"
# n              n              x              m              m              m
# "星火"         "通报"            "4"           "月"           "27"           "日"
# m              x              m              m              m              n
# "15"         "时至"           "28"           "日"           "15"           "时"
# n              v              n              x              n              n
# "本市"         "新增"         "本土"         "新冠"         "肺炎"   "病毒感染者"
# m              r              v              n              m              i
# "56"         "其中"         "确诊"         "病例"           "53"       "无症状"
# n              x             ns              m             ns              m
# "感染者"            "3"       "房山区"           "20"       "朝阳区"           "14"
# ns              x             ns              x             ns              x
# "顺义区"            "8"       "通州区"            "6"       "海淀区"            "3"
# ns              x             ns              x             ns              x
# "丰台区"            "2"       "东城区"            "1"     "石景山区"            "1"
# ns              x              n             vn              x              b
# "大兴区"            "1"         "社区"         "筛查"            "6"         "主动"
# v              x              n              n              m
# "就诊"            "2"         "风险"         "人员"           "48"

注意事项

如果用户自定义的词库中不指定tag的值,输出结果就会认为是x

提取关键词

library(jiebaR)
words<-"4月28日,在北京市新型冠状病毒肺炎疫情防控工作第318场新闻发布会上,市疾控中心副主任、全国新型冠状病毒肺炎专家组成员庞星火通报,4月27日15时至28日15时,本市新增本土新冠肺炎病毒感染者56例,其中确诊病例53例、无症状感染者3例;房山区20例、朝阳区14例、顺义区8例、通州区6例、海淀区3例、丰台区2例、东城区1例、石景山区1例、大兴区1例。社区筛查6例、主动就诊2例、风险人员48例。"
engine_user<-worker(user='dictionary.txt',stop_word = "stopwords.txt",type="keywords",topn=10)
engine_user<=words
# 234.784        35.2176        35.2176        26.4953        23.4784        23.4784
# " "            "1"           "日"         "肺炎"           "15"           "28"
# 23.4784        23.4784        23.4784        23.4784
# "3" "新型冠状病毒"            "2"            "6"

R语言中利用jiebaR包实现中文分词相关推荐

  1. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其 ...

  2. R语言中利用pacman安装和加载包

    R语言之强大,就在于它可以安装加载不同的包(package).很多前沿的科研工作者会把他们最新的工具写成包上传到github或者CRAN上,这样所有R的用户都可以下载使用. pacman是一个管理R包 ...

  3. R语言中的机器学习包

    转载自:http://blog.csdn.net/liuxincumt/article/details/7527917 Machine Learning & Statistical Learn ...

  4. (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子

    前言 自用生信代码, 花费一个多月写下来的.自学R以来第一次写600多行的代码.我的文章已经发表,如对您的研究有帮助希望可以引用一下.文章点我 SVM-RFE 主要是借助e1071包, 实现mSVM- ...

  5. R语言中使用UpSet包绘制多集合Venn图

    集合的交集一帮采用Venn图进行展示,但当集合数目超过3时,使用Venn图直接展示会显得比较杂乱,我们倾向于使用UpSet展示. 这里,我们介绍UpSet的概念,并展示如何使用UpSet packag ...

  6. R语言:利用rhdf5包分别创建单组学,多组学.h5文件

    最近在跑的方法需要.h5作为输入文件,就学习了一下怎么创建.h5文件,原有数据结构如下: 生成单组学.h5文件的代码如下: library(rhdf5) library(dplyr) library( ...

  7. R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图

    学习笔记的主要内容是在R语言中利用ggplot2进行PCA分析和绘图,包括简单分析与操作流程,对比不同方式得到的结果差异,提供脚本代码供练习. PCA分析的原理 在处理基因差异表达数据时,有时候需要分 ...

  8. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  9. R语言中最强的神经网络包RSNNS

    转载自:http://www.dataguru.cn/article-1470-1.html R语言中已经有许多用于神经网络的package.例如nnet.AMORE以及neuralnet,nnet提 ...

最新文章

  1. c++:用顺序表实现简单的栈
  2. 从任何兼容 TWAIN 的设备获取图象的控件Dynamic Web TWAIN
  3. CNCF宣布containerd毕业
  4. php单词出现频率,PHP编程计算文件或数组中单词出现频率的方法
  5. php基于数组的分页实现
  6. Random()中具体实现(含种子数组的实现)
  7. 德国拜尔集团迎来人工智能专家--李飞飞
  8. 一点感想——还没学会跑,怎么能够想着飞
  9. 数据库操作--批量修改数据库表名及字段名大小写转换及首字母大写+删除没有数据无用的表...
  10. 使用密钥文件登录及免密登录服务器方法
  11. 自由浮动时间与总浮动时间
  12. 【转】用java将pdf转换成jpg图片的代码
  13. 互联网+机器人”碰撞出啥样火花? 华数机器人以大数据云平台为智能制造连接“大脑”...
  14. 电容滤波器和电感滤波器详解(工作原理,设计详解,典型电路图)
  15. 弘辽科技:为什么手淘推荐流量突然增加?
  16. substring字符串截取
  17. 通过API Key免登录访问Grafana
  18. Windbg调试学习
  19. 微服务拆分时机与原则
  20. 手机软件必备功能——自动更新和好友推荐

热门文章

  1. [词根词缀]bell/bio/brev/calc/cand/car的由来
  2. 视觉特效转场插件集Boris Continuum Complete 2019 for FCPX v12.0.1破解版
  3. EPICS synApps介绍
  4. Math之ARIMA:基于statsmodels库利用ARIMA算法对太阳黑子年数据(来自美国国家海洋和大气管理局)实现回归预测(ADF检验+LB检验+DW检验+ACF/PACF图)案例
  5. 第三次拒字节offer、腾讯内部活水csig
  6. Java 八大核心包介绍
  7. 【CAD”批量打印“神器】详细解析打印步骤手册
  8. 阿里云数仓MaxCompute存取性能调研报告,内含纯手搓SQL生成器
  9. hexo博客进行百度、谷歌SEO
  10. 我和高中同学结婚了,在洞房花烛之夜不敢告诉他,我在客厅看到了什么