zoukankan      html  css  js  c++  java
  • python3 jieba分词

    一.jieba库用于分词,https://github.com/fxsjy/jieba

    二.分词:分词精细:全局(文本分析)<精确(快速成词)<搜素(搜素引擎分词)

     1 #分词
     2 str=r'今天我们中出了一个叛徒,不想领导领导的领导不是好领导'
     3 a=jieba.cut(str,cut_all=True,HMM=False)
     4 #分词(字符串,是否采用全局模式(默认False精确模式),是否使用HMM模式(默认True))
     5 print(a)#返回可迭代的生成器
     6 print(','.join(a))
     7 
     8 b=jieba.lcut(str)#lcut_for_search直接返回列表
     9 print(b)
    10 
    11 print(jieba.lcut_for_search(str, HMM=True))#搜索模式
    12 ---------------------------------------------------------
    13 Building prefix dict from the default dictionary ...
    14 <generator object Tokenizer.cut at 0x0368E8A0>
    15 Loading model from cache C:Users11373AppDataLocalTempjieba.cache
    16 今天,我们,中出,了,一个,叛徒,,,不想,领导,领导,的,领导,不是,好,领导
    17 Loading model cost 0.784 seconds.
    18 ['今天', '我们', '中出', '', '一个', '叛徒', '', '不想', '领导', '领导', '', '领导', '不是', '', '领导']
    19 Prefix dict has been built succesfully.
    20 ['今天', '我们', '中出', '', '一个', '叛徒', '', '不想', '领导', '领导', '', '领导', '不是', '', '领导']
    分词

    三.导入用户字典

    1 #导入用户的字典
    2 #词典格式:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
    3 #file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码
    4 jieba.load_userdict('dict.txt')
    5 print(jieba.lcut(str))
    6 --------------------------------------------------------
    7 ['今天', '我们', '中出了', '一个', '叛徒', '', '不想', '领导领导', '', '领导', '不是', '', '领导']
    导入用户字典
    中出了
    领导领导
    dict.txt

    四.实时操作字典

     1 jieba.add_word('一个叛徒')#实时在字典中添加某个词
     2 print(jieba.lcut(str))
     3 jieba.del_word('领导')#删除字典的某个词
     4 print(jieba.lcut(str))
     5 jieba.suggest_freq(('一个','叛徒'),True)#可调节单个词语的词频,使其能(或不能)被分出来
     6 print(jieba.lcut(str))
     7 jieba.suggest_freq(('',''),True)
     8 print(jieba.lcut(str))#自动计算的词频在使用 HMM 新词发现功能时可能无效。
     9 print(jieba.lcut(str,HMM=False))#自动计算的词频在使用 HMM 新词发现功能时可能无效。
    10 ----------------------------------------------------------------------
    11 ['今天', '我们', '中出', '', '一个叛徒', '', '不想', '领导', '领导', '', '领导', '不是', '', '领导']
    12 Loading model cost 0.751 seconds.
    13 Prefix dict has been built succesfully.
    14 ['今天', '我们', '中出', '', '一个叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
    15 ['今天', '我们', '中出', '', '一个', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
    16 ['今天', '我们', '中出', '', '一个', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
    17 ['今天', '我们', '', '', '', '一个', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
    操作字典

    五.关键字提取

     1 import jieba.analyse
     2 
     3 str='今天我们中出了一个叛徒,不想领导领导的领导不是好领导'
     4 
     5 #关键字提取
     6 a=jieba.analyse.extract_tags(str, topK=20, withWeight=False, allowPOS=())
     7 # (文本,为返回几个 TF/IDF 权重最大的关键词,默认值为 20,
     8 # 为是否一并返回关键词权重值,默认值为 False,仅包括指定词性的词,默认值为空,即不筛选)
     9 print(a)
    10 
    11 #基于 TextRank 算法的关键词抽取
    12 # 1.将待抽取关键词的文本进行分词
    13 # 2.以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
    14 # 3.计算图中节点的PageRank,注意是无向带权图
    15 b=jieba.analyse.textrank(str, topK=20, withWeight=True, allowPOS=('n','nr','ns'))
    16 print(b)
    17 -------------------------------------------------------------------------
    18 ['领导', '中出', '叛徒', '不想', '今天', '不是', '我们', '一个']
    19 [('领导', 1.0), ('叛徒', 0.2510095552068219)]
    关键字提取

    六.其他

     1 import jieba.posseg as pseg
     2 import jieba
     3 str='今天我们中出了一个叛徒,不想领导领导的领导不是好领导'
     4 print(pseg.lcut(str))#词性标注
     5 
     6 #并行分词,不支持windows
     7 # jieba.enable_parallel(2)# 开启并行分词模式,参数为并发执行的进程数
     8 # jieba.disable_parallel()# 关闭并行分词模式
     9 
    10 #Tokenize:返回词语在原文的起止位置
    11 result = jieba.tokenize(str,mode='search')#输入参数只接受 unicode
    12 for i in result:
    13     print(i)
    14 ---------------------------------------------------------------------
    15 [pair('今天', 't'), pair('我们', 'r'), pair('', 'f'), pair('', 'v'), pair('', 'ul'), pair('一个', 'm'), pair('叛徒', 'n'), pair('', 'x'), pair('不想', 'v'), pair('领导', 'n'), pair('领导', 'n'), pair('', 'uj'), pair('领导', 'n'), pair('不是', 'c'), pair('', 'a'), pair('领导', 'n')]
    16 ('今天', 0, 2)
    17 ('我们', 2, 4)
    18 ('中出', 4, 6)
    19 ('', 6, 7)
    20 ('一个', 7, 9)
    21 ('叛徒', 9, 11)
    22 ('', 11, 12)
    23 ('不想', 12, 14)
    24 ('领导', 14, 16)
    25 ('领导', 16, 18)
    26 ('', 18, 19)
    27 ('领导', 19, 21)
    28 ('不是', 21, 23)
    29 ('', 23, 24)
    30 ('领导', 24, 26)
    其他
  • 相关阅读:
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式 创建启用BCS的业务解决方式
    POI 导入excel数据自己主动封装成model对象--代码分析
    四旋翼飞行器Quadrotor飞控之 PID调节(參考APM程序)
    Detours改动段属性漏洞
    C++中父类的虚函数必需要实现吗?
    深入理解JavaScript系列(12):变量对象(Variable Object)
    CSS 类、伪类和伪元素差别具体解释
    Qt Quick 之 PathView 具体解释
    读《一年一度屈原祭,端午时节话公知》有感
    Volley简单学习使用五—— 源代码分析三
  • 原文地址:https://www.cnblogs.com/yu-liang/p/9202829.html
Copyright © 2011-2022 走看看