问题1:jieba中文分词的原理?

问题2:HMM在jieba中的应用?

问题3:HMM在其他行业内有何应用?

 

首先学一个东西的第一步应该先看官网https://github.com/fxsjy/jieba

官网给出jieba中应用到的算法有:

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

功能解析:

主要功能包括:1、分词;2、添加自定义词典:字典的载入与调整;3、关键词抽取:IT-IDF算法、TextRank算法;4、词性标注;5、并行分词;6、ToKenize;7、chineseAnalyzer for Whoosh 搜索引擎;8、命令行分词

1.分词

jieba分词与HMM学习
#主要涉及函数包括有
jieba.cut()
jieba.cut_for_search()
jieba.lcut()
jieba.lcut_for_search()
jieba.Tokenizer(dictionary=DEFAULT_DICT)

#jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
#jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
#待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
#以上2个方法返回的是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
#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("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

分词代码
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-21
  • 2021-06-23
猜你喜欢
  • 2021-08-24
  • 2021-05-16
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-02-28
相关资源
相似解决方案