• jieba分词


    1.在github上对于jieba的介绍是非常全的,以后一定养成一个看官网的习惯!!学英语啊,学英语

    中文分词是中文NLP的第一步,一个优秀的分词系统取决于足够的语料和完善的模型,很多机构和公司也都会开发和维护自己的分词系统,虽然jieba分词的性能并不是最优秀的,但它开源免费、使用简单、功能丰富,并且支持多种编程语言实现。

    https://github.com/fxsjy/jieba

    本文主要来自readme文档

    一、特点

    1、支持三种分词模式

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

    2、支持繁体分词

    3、支持自定义词典

    4、MIT 授权协议

    三、安装说明

    全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
    半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py install
    手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录

    四、算法

    • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
    • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
    • 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

    五、主要功能:1、分词;2、添加自定义字典;3、关键词提取;4、词性标注;5、并行分词;6、Tokenize:返回词语在原文的起止位置;7、ChineseAnalyzer for Whoosh 搜索引擎;

     1、分词

    01、jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
    02、jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
    03、待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
    04、jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator
    可以使用
    for 循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list 05、jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。
    jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。
    #encoding=utf-8
    import jieba
    seg_list = jieba.cut("小明硕士毕业于中国科学院计算所,后在日本京都大学深造",cut_all=True)
    print ("full mode 全模式:" + "/".join(seg_list))
    
    seg_list = jieba.cut("我来到北京清华大学",cut_all=False)
    print("Default mode#精确模式:",'/'.join(seg_list))
    
    seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")
    print ("search mode#搜索模式,全模式基础上对长词进行切分:" ,'/'.join(seg_list))



    jieba.cut()和jieba.cut_for_search()返回的是一个可以迭代的对象

     2、添加自定义字典

    3、关键词提取

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

    import jieba.analyse

    • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
      • sentence 为待提取的文本
      • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
      • withWeight 为是否一并返回关键词权重值,默认值为 False
      • allowPOS 仅包括指定词性的词,默认值为空,即不筛选
    • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件

    基于 TextRank 算法的关键词抽取

    • jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默认过滤词性。
    • jieba.analyse.TextRank() 新建自定义 TextRank 实例

    基本思想:

    1. 将待抽取关键词的文本进行分词
    2. 以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
    3. 计算图中节点的PageRank,注意是无向带权图

    六、分词速度

    七、常见问题

     


  • 相关阅读:
    C++ primer plus读书笔记——第6章 分支语句和逻辑运算符
    C++ primer plus读书笔记——第7章 函数——C++的编程模块
    C++ primer plus读书笔记——第5章 循环和关系表达式
    C++ primer plus读书笔记——第4章 复合类型
    C++ primer plus读书笔记——第3章 处理数据
    C++ primer plus读书笔记——第2章 开始学习C++
    10款好用到爆的Vim插件,你知道几个?
    程序员最讨厌的100件事,瞬间笑喷了,哈哈~~
    20 个最常用的 Git 命令用法说明及示例
    史上最全的Nginx配置参数中文说明
  • 原文地址:https://www.cnblogs.com/students/p/10725916.html
Copyright © 2020-2023  润新知