zoukankan      html  css  js  c++  java
  • python数据分析------文本挖掘(jieba)

    1、import jieba

    jieba的cut函数有三个模式:全模式、精准模式、搜索引擎模式

    1 精确模式,试图将句子最精确地切开,适合文本分析;
    2 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    3 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    【jieba.lcut生成list,如  tags = jieba.lcut(text) ,text也要先处理成list。】

    例子:全模式:cut_all=True

    import jieba
    sentence="我喜欢上海东方明珠"
    w1=jieba.cut(sentence,cut_all=True)
    for item in w1:
        print(item)

    #结果:

    喜欢
    上海
    上海东方
    海东
    东方
    东方明珠
    方明
    明珠

    精准模式:cut_all=False,或者默认情况下

    import jieba
    sentence="我喜欢上海东方明珠"
    w2=jieba.cut(sentence,cut_all=False)
    #或者w2=jieba.cut(sentence)
    for item in w2:
        print(item)
    #结果:

    喜欢
    上海
    东方明珠

    搜索引擎模式:jieba.cut_for_search()

    import jieba
    snetence="我喜欢上海东方明珠"
    w3=jieba.cut_for_search(sentence)
    for item in w3:
        print(item)
    #结果


    喜欢
    上海
    东方
    方明
    明珠
    东方明珠

    2、结巴的词性标注

    import jieba.posseg 
    sentence="我喜欢上海东方明珠"
    w4=jieba.posseg.cut(sentence)
    #flag为词性,word为词
    for item in w4:
        print(item.word+"---"+item.flag)
    #结果
    我---r
    喜欢---v
    上海---ns
    东方明珠---nr

    词性:

    3、加载自己创建的词典

    比如:我在桌面创建了一个dict.txt。

    import jieba.posseg
    jieba.load_userdict('C:/user/Desktop/dict.txt')
    sentence="Lee_yl学习Python"
    w5=jieba.posseg.cut(sentence)
    for item in w5:
        print(item)
    #结果
    Lee_yl/nr
    学习/v
    Python/eng

    加载自己的文件是暂时的,本次加载在内存中,下一次需要再加载。

    4、提取关键词【jieba.analyse.extract_tags(字符串,关键词数量)】

    import jieba.analyse
    sentence="我喜欢上海东方明珠"
    w6=jieba.analyse.extract_tags(sentence,3)print(w6)
    #结果
    ['东方明珠', '喜欢', '上海']

    5、返回词语的位置

    import jieba
    w7=jieba.tokenize(sentence,mode="search")
    for item in w7:
        print(item)
    #结果,0,1,3,5,9表示词的索引位置
    ('我', 0, 1)
    ('喜欢', 1, 3)
    ('上海', 3, 5)
    ('东方明珠', 5, 9)

     6、计算词频(collections.defaultdict)

    from collections import defaultdict
    s = 'mississippi' d = defaultdict(int) for k in s: d[k] += 1 list(d.items())

    结果:[('m', 1), ('i', 4), ('s', 4), ('p', 2)]

    这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如default(int)则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0.

  • 相关阅读:
    《ECMAScript6入门》___阮一峰 笔记
    JS的常用正则表达式 验证密码(转载自用)
    微信小程序 写一个获取验证码 及setInterval 使用基本方法
    python中将图片从客户端(client)推到(POST)到服务器端(server)的方法
    用python将MSCOCO和Caltech行人检测数据集转化成VOC格式
    Tensorflow物体检测(Object Detection)API的使用
    opencv获取IP摄像头(IP-camera)实时视频流
    利用flask将opencv实时视频流输出到浏览器
    Tensorflow同时加载使用多个模型
    opencv在同一窗口打印多张图片
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/8808065.html
Copyright © 2011-2022 走看看