• 【Python 数据分析】jieba文本挖掘


    jieba是一个强大的分词库,完美支持中文分词

    安装jieba

    使用命令安装

    pip install jieba

    image

    出现上图表示安装成功了

    jieba分词模式

    全模式

    全模式:试图将句子精确地切开,适合文本分析,输出的是多有可能的分词组合

    import jieba
    
    str = "我是一个中国人"
    word1 = jieba.cut(str,cut_all=True)
    for item in word1:
        print(item)

    运行结果:



    一个
    中国
    国人

    精确模式

    精确模型:把句子中所有的可以分词的词语都扫描出来,速度非常快,但不能解决歧义

    注意:没有参数cut_all的情况下,默认为精确模式

    import jieba
    
    str = "我是一个中国人"
    #word1 = jieba.cut(str)
    word1 = jieba.cut(str,cut_all=False)
    for item in word1:
        print(item)

    运行结果:



    一个
    中国

    搜索引擎模式

    搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

    import jieba
    
    str = "我是一个中国人"
    word1 = jieba.cut_for_search(str)
    for item in word1:
        print(item)

    词性标注

    使用jieba.posseg可以对词性进行标注

    import jieba.posseg
    
    str = "我是一个中国人"
    word1 = jieba.posseg.cut(str)
    #.flag 词性
    #.word 词语
    for item in word1:
        print(item.word+"--"+item.flag)

    运行结果:

    我--r
    是--v
    一个--m
    中国--ns
    人--n

    词性说明

    image

    自定义词库

    例如:我们现在想对句子【豆花鱼是一种很好吃的鱼】做一次分词

    import jieba.posseg
    
    str = "豆花鱼是一种很好吃的鱼"
    word1 = jieba.posseg.cut(str)
    for item in word1:
        print(item.word+"--"+item.flag)

    分词结果:

    豆花--n
    鱼--n
    是--v
    一种--m
    很--zg
    好吃--v
    的--uj
    鱼—n

    【分析】按理来说,豆花鱼是一个名词,但是现在词库没有这个名词,所以分错了

    那么接下来我们就自定义分词词库

    找到路径C:UsersOLIVERAppDataLocalProgramsPythonPython36Libsite-packagesjieba

    image

    我们可以看到现在存在一个dict.txt文件,那么我们现在新建一个文件Add_dict.txt

    image

    接着我们引入该词库进行分词

    import jieba.posseg
    
    #引入词库
    jieba.load_userdict("C:/Users/OLIVER/AppData/Local/Programs/Python/Python36/Lib/site-packages/jieba/Add_dict.txt")
    str = "豆花鱼是一种很好吃的鱼"
    word1 = jieba.posseg.cut(str)
    for item in word1:
        print(item.word+"--"+item.flag)

    运行结果:

    豆花鱼--nz
    是--v
    一种--m
    很--zg
    好吃--v
    的--uj
    鱼—n

    我们从上述的结果中可以清晰看到【豆花鱼】已经变成一个其他专有名词了。

    注意:新增的词库每次使用都需要引用,它不是一次引入终生使用的

  • 相关阅读:
    sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
    busybox程序连接 ln怎么回事?怎样实现的
    有线网卡与无线网卡同时使用
    "$(@:_config=)"
    C#中Global文件
    Win7 IIS7 HTTP 错误 404.2 Not Found解决方法
    C#中的日期处理函数
    js字母大小写转换
    asp.net发布到IIS中出现错误:处理程序“PageHandlerFactoryIntegrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    sql server在存储过程中使用游标和事务
  • 原文地址:https://www.cnblogs.com/OliverQin/p/8983164.html
Copyright © 2020-2023  润新知