(转)jiebaR中文分词快速入门

中文帮助文档:
http://qinwenfeng.com/jiebaR/section-3.html#section-3.0.1
官方英文文档:
https://cran.r-project.org/web/packages/jiebaR/jiebaR.pdf

1. 分词

jiebaR提供了四种分词模式,可以通过函数worker()来初始化分词引擎,使用函数segment()进行分词。具体使用?worker查看帮助

简单用法举例说明
A、简单使用

text <- '你要明白,这仅仅是一个测试文本'
mixseg <- worker() #使用默认参数,混合模型(MixSegment)

segment(text, mixseg)
#等价于mixseg[text]
#也等价于mixseg <= text

[1] “你” “要” “明白” “这” “仅仅” “是” “一个” “测试” “文本”

B、直接输入mixseg命令,可以查看此worker的配置

mixseg
Worker Type: Jieba Segment

Default Method : mix
Detect Encoding : TRUE
Default Encoding: UTF-8
Keep Symbols : FALSE
Output Path :
Write File : TRUE
By Lines : FALSE
Max Word Length : 20
Max Read Lines : 1e+05

Fixed Model Components:
$dict
[1] “E:/Program Files/R/R-3.4.0/library/jiebaRD/dict/jieba.dict.utf8”

$user
[1] “E:/Program Files/R/R-3.4.0/library/jiebaRD/dict/user.dict.utf8”

$hmm
[1] “E:/Program Files/R/R-3.4.0/library/jiebaRD/dict/hmm_model.utf8”

$stop_word
NULL

$user_weight
[1] “max”

$timestamp
[1] 1503653441

$default $dete等。。
注意:可以通过R语言常用的 $符号重设一些worker的参数设置,如 WorkerName$symbol = T,在输出中保留标点符号。一些参数在初始化的时候已经确定,无法修改, 可以通过WorkerName$PrivateVarible来获得这些信息。

C、支持文件分词,省去读取文件后再进行分词的麻烦

segment('D:/test.txt', mixseg) #自动判断输入文件编码模式,默认文件输出在同目录下。
#等价于mixseg['D:/test.txt']
#也等价于mixseg <= 'D:/test.txt'

D、四个分词模型
最大概率法(MPSegment):
负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。

mpseg <- worker('mp') #最大概率法(MPSegment)
mpseg[text]

隐式马尔科夫模型(HMMSegment):
是根据基于人民日报等语料库构建的HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。 HMM模型由dict/hmm_model.utf8提供。分词算法即viterbi算法。

hmmseg <- worker('hmm') #隐式马尔科夫模型(HMMSegment)
hmmseg[text]

混合模型(MixSegment):
是四个分词引擎里面分词效果较好的类,结它合使用最大概率法和隐式马尔科夫模型。

mixseg <- worker('mix') #混合模型(MixSegment)
mixseg[text]

索引模型(QuerySegment):
先使用混合模型进行切词,再对于切出来的较长的词,枚举句子中所有可能成词的情况,找出词库里存在。

queryseg <- worker('query') #索引模型(QuerySegment)
queryseg[text]

2. 标注词性

可以使用 <=.tagger 或者 tag 来进行分词和词性标注,词性标注使用混合模型模型分词,标注采用和 ictclas 兼容的标记法。

tagseg <- worker('tag')
tagseg[text]

r v nr r d v m vn n
“你” “要” “明白” “这” “仅仅” “是” “一个” “测试” “文本”

3. 提取关键词

关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径,使用方法与分词类似。topn参数为关键词的个数。

keys = worker('keywords', topn = 2) #参数topn表示提取排在最前的关键词个数
keys <= text

8.94485 7.14724
“文本” “测试”

#同样
keys <= “一个文件路径.txt” #同样的,也可以对文件进行关键词提取

4. simhash计算

对中文文档计算出对应的simhash值。simhash是谷歌用来进行文本去重的算法,现在广泛应用在文本处理中。Simhash引擎先进行分词和关键词提取,后计算Simhash值和海明距离。

simhasher = worker("simhash", topn = 2)
simhasher <= text

simhasher <= text
$simhash
[1] “10014870797707624170”

$keyword
8.94485 7.14724
“文本” “测试”

5. 快速模式

无需使用函数worker(),使用默认参数启动引擎,并立即进行分词。使用qseg(quick segmentation),使用默认分词模式,自动建立分词引擎,类似于ggplot2包里面的qplot函数。

qseg <= text

[1] “你” “要” “明白” “这” “仅仅” “是” “一个” “测试” “文本”

worker(‘mix’) #查看worker(‘mix’)参数配置
qseg #查看qseg参数配置,与上面一样都得到以下结果

都得到最开始的那个结果。

实际上,第一次运行时,会启动默认引擎 quick_worker,相当于先运行了一遍代码:

qseg = worker('mix')
  注意:  可以通过qseg$重设模型参数,重设模型参数将会修改以后每次默认启动的默认参数;如果只是想临时修改模型参数,可以使用非快速模式的修改方式quick_worker$。
qseg$type = "mp" # 重设模型参数的同时,重新启动引擎;下次重新启动包时,现有的设置不会改变。

quick_worker$detect = T # 临时修改,下次重新启动包时,会恢复原来的默认设置。
get_qsegmodel()         # 获得当前快速模式的默认参数

转载自:http://blog.csdn.net/songzhilian22/article/details/49250489

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值