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

来源:互联网 发布:单片机报警电路设计 编辑:程序博客网 时间:2024/06/05 00:10

中文帮助文档:
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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卫生间下水道堵了怎么办妙招 教练不让你练车怎么办 教练不让我练车怎么办 考三要练车教练不给练怎么办 科目二指纹打卡指纹不清楚怎么办 教练凶你的时候怎么办 人行聘用制3年后怎么办 道路运输从业资格证过期了怎么办 码头如果要危险运输证怎么办? 7座车怎么办载客营运证 商调函到了原单位不配合怎么办 公司车辆超证了怎么办? 准迁证过期了5年怎么办 天津中派木业不发工资怎么办 在香港餐厅嫌冷怎么办 出国读研报到证怎么办 高中后出国留学档案怎么办 爱迪花园拆了怎么办 燕郊房子卖了户口怎么办 强制险单子丢了怎么办 车辆保险贴丢了怎么办 车险原单子丢了怎么办 车险保单丢了该怎么办? 审车保险单丢了怎么办 湖州公积金贷款买房具体信用怎么办 驾驶本扣分满了怎么办 摩托车被扣12分怎么办 驾照被扣12分怎么办 骑摩托被扣12分怎么办 摩托车没有驾照违章被扣分怎么办 高考登录密码丢了怎么办 高中档案遗失里面体检表怎么办 驾校不给补科一成绩单怎么办 外地驾照转广州体检表怎么办 驾照体检表签名签错怎么办 改完名字后护照怎么办 办健康证没有身份证怎么办 身份证掉了怎么办健康证 华师附小不搬了怎么办 健康证快到期了怎么办 老公想去日本打工怎么办