• jieba分词(1)


    近几天在做自然语言处理,看了一篇论文:面向知识库的中文自然语言问句的语义理解,里面提到了中文的分词,大家都知道对于英文的分词,NLTK有很好的支持,但是NLTK对于中文的分词并不是很好(其实也没有怎么尝试,哈哈哈!)

    然后发现了jieba(结巴)分词,发现还是很强大的,还有一个THULAC(http://thulac.thunlp.org/#%E7%BC%96%E8%AF%91%E5%92%8C%E5%AE%89%E8%A3%85),THULAC我还没有试过,这次先来展示一下jieba分词的一些基本用法,后期继续更新

    本文并非原创,参考的博客有:http://blog.csdn.net/xiaoxiangzi222/article/details/53483931

    #-*- coding:utf-8 -*-
    import jieba
    import jieba.posseg as jp
    
    string='已结婚的和尚未结婚的青年都要实行计划生育'
    #全模式
    list1=jieba.cut(string,cut_all=True)
    print "/".join(list1)
    #精确模式
    list2=jieba.cut(string,cut_all=False)
    print "/".join(list2)
    #搜索引擎模式(****默认是精确模式*****)
    list3=jieba.cut_for_search(string)
    print "/".join(list3)
    
    print '*'*80
    
    # 问题来了:
    #         ①已/结婚/的/和/尚未/结婚/的/青年/都/要/实行/计划生育
    #         ②已/结婚/的/和尚/未/结婚/的/青年/都/要/实行/计划生育
    #     这两个貌似好想都可以,那到底是怎么分词的呢,大家接着往下看
    
    
    #添加自己的词典进行分词
    #userdict.txt:
    #             和尚 10000000 n  (词+空格+词频+空格+词性)
    jieba.load_userdict("userdict.txt")
    #修改词频之后,结果就是②
    list4=jieba.cut(string)
    print "/".join(list4)
    
    jieba.del_word('和尚')
    list7=jieba.cut(string)
    print "/".join(list7)
    
    print '*'*80
    #动态更改分词器
    string1='李小福是创新办主任也是云计算方面的专家'
    list5=jieba.cut(string1)
    print "/".join(list5)
    jieba.add_word('创新办','10','n')
    jieba.add_word('云计算')
    list6=jieba.cut(string1)
    print "/".join(list6)
    
    print '*'*80
    #显示词性
    words =jp.cut(string)
    for w in words:
      print w.word, w.flag

    运行结果:  

    已/结婚/的/和尚/尚未/未结/结婚/的/青年/都/要/实行/计划/计划生育/生育
    已/结婚/的/和/尚未/结婚/的/青年/都/要/实行/计划生育
    已/结婚/的/和/尚未/结婚/的/青年/都/要/实行/计划/生育/计划生育
    ********************************************************************************
    已/结婚/的/和尚/未/结婚/的/青年/都/要/实行/计划生育
    已/结婚/的/和/尚未/结婚/的/青年/都/要/实行/计划生育
    ********************************************************************************
    李小福/是/创新/办/主任/也/是/云/计算/方面/的/专家
    李小福/是/创新办/主任/也/是/云计算/方面/的/专家
    ********************************************************************************
    已 d
    结婚 v
    的 uj
    和 c
    尚未 d
    结婚 v
    的 uj
    青年 t
    都 d
    要 v
    实行 v
    计划生育 l

  • 相关阅读:
    js创建form添加input项目并提交表单
    DataTable 修改列名 删除列 调整列顺序
    文件夹右键出取得管理员所有权选项
    c#多线程
    js用计时器加载大量dom
    c# 将html添加进剪贴板(带格式)
    landa语法
    c# @符号后面对 双引号转义
    asp.net web api CORS
    IIS中发布网站的问题
  • 原文地址:https://www.cnblogs.com/ybf-yyj/p/7552822.html
Copyright © 2020-2023  润新知