"""
(1)、jieba库概述
jieba是优秀的中文分词第三方库
- 中文文本需要通过分词获得单个的词语
- jieba是优秀的中文分词第三方库,需要额外安装
- jieba库提供三种分词模式,最简单只需掌握一个函数
(2)、jieba分词的原理
Jieba分词依靠中文词库
- 利用一个中文词库,确定汉字之间的关联概率
- 汉字间概率大的组成词组,形成分词结果
- 除了分词,用户还可以添加自定义的词组
jieba分词的三种模式(精确模式、全模式、搜索引擎模式)
- 精确模式:把文本精确的切分开,不存在冗余单词
- 全模式:把文本中所有可能的词语都扫描出来,有冗余
- 搜索引擎模式:在精确模式基础上,对长词再次切分
"""
import jieba
s = u'我想和女朋友一起去北京故宫博物院参观和闲逛。'
# ----------------------------返回 迭代数据类型
# # 精准模式
# cut = jieba.cut(s)
# print(cut)
# print(",".join(cut))
# # 全模式,输出文本中所有可能的单词
# cut = jieba.cut(s, cut_all=True)
# print(cut)
# print(",".join(cut))
# # 搜索模式,索引的分词结果
# cut = jieba.cut_for_search(s)
# print(cut)
# print(",".join(cut))
# ----------------------------返回 列表数据类型
# # 精准模式
# cut = jieba.lcut(s)
# print(cut)
# # 全模式,输出文本中所有可能的单词
# jieba.lcut(s,cut_all=True)
# print(cut)
# # 搜索模式,索引的分词结果
# jieba.lcut_for_search(s)
# print(cut)
# --------------------------- 添加新的分词
# jieba.add_word()
# ---------------------------------
# # 开启并行分词模式,参数为并发执行的进程数
# jieba.enable_parallel(5)
#
# # 关闭并行分词模式
# jieba.disable_parallel()
#
# # 示例
# jieba.enable_parallel(100)
# santi_words = [x for x in jieba.cut(s) if len(x) >= 2]
# jieba.disable_parallel()
#-----------------------------
# # 打印 相关词性
# import jieba.posseg as psg
# print('【Output】')
# # print([(x.word, x.flag) for x in psg.cut(wenjian) if x.flag == r"n"])
# print([(x.word, x.flag) for x in psg.lcut(wenjian) if x.flag.startswith('n')])
# -------------------------------------------------
# 显示文本高频 前N个词(20个)
# from collections import Counter
# c = Counter(wenjian).most_common(20)
# print(c)