美文网首页我爱编程
NLPIR、Jieba中文分词工具比较

NLPIR、Jieba中文分词工具比较

作者: 别忘了我可是齐天大圣啊 | 来源:发表于2018-05-26 18:22 被阅读0次

    1.中文分词概念

    中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

    2.现有的的中文分词工具

    中科院计算所NLPIR http://ictclas.nlpir.org/nlpir/

    ansj分词器 https://github.com/NLPchina/ansj_seg

    哈工大的LTP https://github.com/HIT-SCIR/ltp

    清华大学THULAC https://github.com/thunlp/THULAC

    斯坦福分词器 https://nlp.stanford.edu/software/segmenter.shtml

    Hanlp分词器 https://github.com/hankcs/HanLP

    结巴分词 https://github.com/yanyiwu/cppjieba

    KCWS分词器(字嵌入+Bi-LSTM+CRF) https://github.com/koth/kcws

    ZPar https://github.com/frcchang/zpar/releases

    IKAnalyzer https://github.com/wks/ik-analyzer

    3.认识、使用中文分词包

    3.1使用中科院计算所NLPIR语义分析系统

    打开NLPIR大数据搜索与挖掘共享平台


    NLPIR界面.png

    点击“开始分析”就可以得到分析结果


    分词标注.png

    此外,还有实体抽取、词频统计、文本分类、情感分析等对分词结果的不同查看方式。


    各种操作.png 生成词云.png

    3.1.1使用总结

    使用中科院计算所NLPIR语义分析系统比较简单,图形化的在线操作方式简单易上手,并且分词结果是符合我们在日常生活中的使用习惯的,分词结果能够被我们接受。在本次分析中,发现了词典中没有收录的新词:“毕业论文”、“信息管理”和“全体老师”。

    3.2使用jieba中文分词包

    3.2.1 安装jieba

    安装相应的包:通过指令语句安装jieba分词包,代码:

    pip install jieba

    安装jieba.png

    3.2.2 使用jieba中文分词

    • 分词cut
    jieba.cut : 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
    jieba.cut_for_search : 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
    待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
    jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及jieba.lcut_for_search 直接返回 list
    jieba.Tokenizer(dictionary=DEFAULT_DICT) : 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

    例子

    • 新建一个demo.py文件


      demo.png
    • 执行

    python demo.py

    分词结果.png
    关键词提取

    基于TF-IDF(term frequency-inverse document frequency)算法的关键词抽取(逆文档词频)

    import jieba.analyse
    jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

    • sentence: 为待提取的文本
    • topK: 为返回几个TF/IDF权重最大的关键词,默认值为20
    • withWeight: 为是否一并返回关键词权重值,默认值为False
    • allowPOS: 仅包括指定词性的词,默认值为空,即不筛选


      关键词抽取.png
    • 运行结果


      关键词抽取结果.png

    使用jieba对txt文件进行中文分词


    我选用的txt文件是之前爬取到的公管学院官网上面的新闻。
    此外,经过事先的查询,由于存在“停用词”,在进行分词的时候可能会扰乱结果,所以在网上下载了停用词表。
    代码:

    import jieba.analyse
    
    path = '/home/IR02LJC/jieba/ggnews .txt'
    file_in = open(path, 'r')
    content = file_in.read()
    
    try:
        jieba.analyse.set_stop_words('/home/IR02LJC/jieba/停用词表.txt')
        tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
        for v, n in tags:
            #权重是小数,为了凑整,乘了一万
            print(v + '\t' + str(int(n * 10000)))
    
    finally:
        file_in.close()
    

    运行结果显示如下:

    [IR02LJC@VM_0_10_centos jieba]$ python demo.py
    Building prefix dict from the default dictionary ...
    Loading model from cache /tmp/jieba.cache
    Loading model cost 0.956 seconds.
    Prefix dict has been built succesfully.
    我院  1127
    学院  961
    同学  920
    教授  797
    2017    795
    公共  721
    老师  685
    四川大学    671
    管理  581
    2016    506
    专业  385
    院长  335
    讲座  306
    姜晓萍 305
    研究  262
    交流  259
    学生  256
    社会工作    255
    师生  254
    副教授 246
    研究生 245
    发布  239
    2015    235
    活动  233
    大学  230
    管理系 224
    治理  223
    本次  221
    学习  219
    学术  219
    时间  213
    MPA 205
    工作  199
    社会  189
    教育  185
    哲学  185
    发展  183
    档案  179
    行政  178
    社会保障    175
    参加  171
    中国  169
    介绍  167
    建设  164
    教师  163
    举办  162
    课程  162
    实践  161
    论坛  157
    哲学系 156
    书记  156
    合作  155
    社会学 154
    学科  153
    主题  151
    十九  151
    2018    144
    精神  143
    信息资源管理  135
    会议  130
    实习  122
    报告  120
    下午  119
    代表  117
    项目  116
    2014    115
    本科生 114
    创新  114
    学科建设    114
    成功  114
    讨论  112
    博士  111
    发言  111
    30  108
    国际  107
    云贵  107
    图书馆 106
    研讨会 106
    学会  105
    教学  104
    城市  104
    热烈  101
    招生  101
    成都  100
    07  100
    主持  99
    评估  97
    理论  97
    分享  96
    教职工 96
    高校  96
    参观  96
    见面会 95
    本科  94
    团队  92
    校区  92
    同志  91
    全国  91
    成都市 90
    服务  90
    
    

    • 词云
      得到分词结果之后,还可以利用在线词云生成工具TAGUL制作词云。
      词云.png

    参考链接:https://www.jianshu.com/p/17b48b651d79
    https://blog.csdn.net/sinat_34022298/article/details/75943272
    https://blog.csdn.net/shijiebei2009/article/details/39696571
    https://blog.csdn.net/tracydragonlxy/article/details/79014770

    相关文章

      网友评论

        本文标题:NLPIR、Jieba中文分词工具比较

        本文链接:https://www.haomeiwen.com/subject/whysjftx.html