当前位置: 首页 > 工具软件 > jiebaR > 使用案例 >

R语言 | jiebaR中文分词包

阎懿轩
2023-12-01

[更新~] Python网络爬虫与文本数据分析

jiebaR

中文与英文做文本分析很多时候会多一个分词步骤,因为默认情况下,文本分析软件会默认用空格作为分隔符处理文本,所以很多软件需要先将中文文本分词,整理成像英文那样用空格间隔单词的数据形式。

在R中有一个jiebaR中文分词包,可以帮我们做分词操作~

安装

install.packages("jiebaR")

分词

jiebaR::segment(code, jiebar)

  • code: 中文文本

  • jiebar: 老板segment, 员工是jiebaR包中的worker()函数

对字符串分词

library(jiebaR)
## Loading required package: jiebaRD
#初始化jiebaR中的worker,将这个工人命名为tokenizer
tokenizer <- worker()

#segment函数雇佣tokenizer干分词的活
words <- segment("市长江大桥视察长江大桥", tokenizer)
words
## [1] "市长"     "江大桥"   "视察"     "长江大桥"

worker()

刚刚给segment雇佣的worker时没有设置工作要求,所以干的活比较粗糙。现在我们把分词这个工作细致化。

worker(
    type = "mix", 
    user = USERPATH,
    stop_word = 
    STOPPATH, 
    topn = 5,
    symbol = F)

type

默认type="mix"

  • mp(最大概率模型)- 基于词典和词频

  • hmm(HMM模型)- 基于 HMM 模型,可以发现词典中没有的词

  • mix(混合模型)- 先用 mp 分,mp 分完调用 hmm 再来把剩余的可能成词的单字分出来。

  • tag(标记模型)- 词性标记,基于词典的

分词结果带着词性

tokenizer <- worker(type='tag')
words <- segment("市长江大桥视察长江大桥", tokenizer)
words
##          n          x          v         ns 
##     "市长"   "江大桥"     "视察" "长江大桥"

user

有时候jiebaR分词容易把感兴趣的词分成更细粒度的词,中国大妈这个词,默认是会被分为中国大妈  两个词。例如

tokenizer <- worker()

text <- "在黄金市场上,中国大妈战胜华尔街金融大鳄"
segment(text, tokenizer)
##  [1] "在"       "黄金市场" "上"       "中国"     "大妈"     "战胜"    
##  [7] "华尔街"   "金融"     "大"       "鳄"

这时候我们需要把中国大妈加到用户自定义词典中,通过词典告诉worker,凡是遇到中国大妈,一律不许乱分,保持词语其完整性。

diydict.txt我放到了data文件夹内,每行存放一个词语。

library(jiebaR)

tokenizer <- worker(user="data/diydict.txt")

text <- "在黄金市场上,中国大妈战胜华尔街金融大鳄"
segment(text, tokenizer)
## [1] "在"       "黄金市场" "上"       "中国大妈" "战胜"     "华尔街"   "金融"    
## [8] "大"       "鳄"

symbol

是否保留符号,默认不保留

tokenizer <- worker()

text <- "在黄金市场上,大妈战胜华尔街金融大鳄!!!"
segment(text, tokenizer)
## [1] "在"       "黄金市场" "上"       "大妈"     "战胜"     "华尔街"   "金融"    
## [8] "大"       "鳄"

保留符号

tokenizer <- worker(symbol = TRUE)

text <- "在黄金市场上,大妈战胜华尔街金融大鳄!!!"
segment(text, tokenizer)
##  [1] "在"       "黄金市场" "上"       ","       "大妈"     "战胜"    
##  [7] "华尔街"   "金融"     "大"       "鳄"       "!"        "!"       
## [13] "!"

R语言相关

R语言 | 读写txt、csv、excel文件 
R语言 | 数据操作dplyr包


Python相关[更新] Python网络爬虫与文本数据分析 
读完本文你就了解什么是文本分析

文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用

plotnine: Python版的ggplot2作图库
小案例: Pandas的apply方法  
stylecloud:简洁易用的词云库 
用Python绘制近20年地方财政收入变迁史视频  
Wow~70G上市公司定期报告数据集

漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  



后台回复关键词【jiebaR】获取本文代码和数据
  • 分享”和“在看”是更好的支持!

 类似资料: