jiebaR中文分词快速入门

  参考于jiebaR中文分词帮助文档,做了个笔记,方便以后学习。这里是官方英文文档,以及jiebaR官网的地址。


分词

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

1
2
3
4
5
6
text <- ‘你要明白,这仅仅是一个测试文本’
mixseg <- worker() #使用默认参数,混合模型(MixSegment)

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

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

1
mixseg

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

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

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

最大概率法(MPSegment)

负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。

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

隐式马尔科夫模型(HMMSegment)

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

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

混合模型(MixSegment)

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

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

索引模型(QuerySegment)

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

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


标注词性

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

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

提取关键词

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

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

1
keys <= "filename.txt"  #同样的,也可以对文件进行关键词提取

simhash计算

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

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

快速模式

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

1
qseg <= text

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

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

1
qseg = worker('mix')


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

    quick_worker$detect = T # 临时修改,下次重新启动包时,会恢复原来的默认设置。
    get_qsegmodel() # 获得当前快速模式的默认参数
文章目录
  1. 1. 分词
    1. 1.1. 最大概率法(MPSegment)
    2. 1.2. 隐式马尔科夫模型(HMMSegment)
    3. 1.3. 混合模型(MixSegment)
    4. 1.4. 索引模型(QuerySegment)
  2. 2. 标注词性
  3. 3. 提取关键词
  4. 4. simhash计算
  5. 5. 快速模式
,