[基本功]jieba分词基本操作集合

jieba分词

分词模式

精确模式

  • 试图将句子最精确地切开,适合文本分析

全模式

  • 把句子中所有可以成词的词语扫描出来,速度快,不能解决歧义

搜索引擎模式

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

paddle模式

  • 利用PaddlePaddle深度学习框架,训练序列标注网络模型实现分词。支持词性标注

    • pip install paddlepaddle-tiny==1.6.1
    • jieba.enable_paddle()

主要功能

分词

  • jieba.cut

    • 需要分词的字符串

    • cut_all

      • 是否采用全模式
    • hmm

      • 是否使用HMM模型
    • use_paddle

      • 是否使用paddle模式下的分词模式
  • jieba.cut_for_search

    • 需要分词的字符串

    • 是否使用hmm模型

    • 注意

      • 适用于搜索引擎构建倒排索引的分词,粒度细
  • jieba.cut和jieba.cut_for_search返回一个可迭代的generator

  • jieba.lcut和jieba.lcut_for_search返回list

  • jieba.dt为默认分词器,所有全局分词相关函数都是该分词器的映射

  • jieba.Tokenizer(dictionary=DEFAULT_DICT)新建自定义分词器,可用于同时使用不同词典

添加自定义词典

  • 载入词典

    • jieba.load_userdict(file_name)

      • 文件类对象或自定义词典的路径
    • 词典格式

      • 与dict.txt一样

        • 一个词占一行:词语 词频(可省略) 词性(可省略)
      • file_name若为路径或二进制方式打开的文件

        • 必须utf-8编码
    • 更改分词器的tmp_dir

      • 指定缓存文件所在的文件夹
    • 更改分词器的cache_file

      • 指定缓存文件所在的文件名
  • 调整词典

    • add_word(word,freq=None,tag=None)

    • del_word(word)

    • suggest_freq(segment,tune=True)

      • 调节单个词语的词频,使其能或不能被分出来

        • jieba.suggest_freq((‘中’, ‘将’), True)

          • 将’中‘和’将‘分开
        • jieba.suggest_freq(‘台中’, True)

          • 将’台中‘放在一起
    • 注意

      • 自动计算的词频在使用HMM新词发现功能时可能无效
  • 关键词提取

    • 基于TF-IDF算法的关键词抽取

      • import jieba.analyse

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

          • sentence

            • 待提取文本
          • topK

            • 返回几个权重最大的关键词
          • withWeight

            • 是否一并返回关键词权重值
          • allowPOS

            • 仅包括指定词性的词
        • jieba.analyse.TFIDF(idf_path=None)

          • 新建TFIDF实例 idf_path为IDF频率文件
        • jieba.analyse.set_idf_path(filename)

          • 逆向文件频率文本语料库可以切换成自定义语料库的路径
        • jieba.analyse.set_stop_words(file_name)

          • 停用词文本语料库可以切换成自定义语料库的路径
    • 基于TextRank算法的关键词抽取

      • jieba.analyse.textrank(sentence,topK=20,withWeight=False,allowPOS=(‘ns’,‘n’,‘vn’,‘v’))

      • jieba.nalyse.TextRank()

        • 新建自定义TextRank实例
  • 词性标注

    • jieba.posseg.POSTokenizer(Tokenizer=None)

      • 新建自定义分词器
      • tokenizer参数可指定内部使用的jieba.Tokenizer分词器
      • jieba.posseg.dt为默认词性标注分词器
    • 标注句子分词后每个词的词性,采用和ictclas兼容的标记法

    • import jieba.posseg as pseg

    • words = pseg.cut(“我爱北京天安门”) #jieba默认模式

    • paddle模式词性标注对应表

  • 并行分词

    • 将目标文本按行分割后,各行文本分配到多个python进程并行分词,然后归并结果,提升分词速度

    • 不支持windows

    • 用法

      • jieba.enable_parallel(4)

        • 开启并行分词模式,参数为并行进程数
      • jieba.disable_parrellel()

        • 关闭并行分词模式
  • Tokenize

    • 返回词语在原文的起止位置

    • 输入参数只支持unicode

    • 默认模式

      • result = jieba.tokenize(u’永和服装饰品有限公司’)
        for tk in result:
        print(“word %s\t\t start: %d \t\t end:%d” % (tk[0],tk[1],tk[2]))
    • 搜索模式

      • result = jieba.tokenize(u’永和服装饰品有限公司’, mode=‘search’)
        for tk in result:
        print(“word %s\t\t start: %d \t\t end:%d” % (tk[0],tk[1],tk[2]))
  • ChineseAnalyzer for Whoosh搜索引擎

    • from jieba.analyse import ChineseAnalyzer
  • 命令行分词

其他词典

下载所需要的词典

  • 覆盖jieba/dict.txt

  • jieba.set_dictionary(‘data/dict.txt.big’)

  • 词典

    • 占用内存较小的词典

      • https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.small
    • 支持繁体分词更好的词典

      • https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.big

延迟加载机制

你可能感兴趣的:(基本功&经典方法,自然语言处理,python,深度学习)