1 什么是分词
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。分词过程就是找到这样分界符的过程.
小米公司教育是一家上市公司,旗下有小米程序员品牌。我是在小米这里学习人工智能
['小米', '公司', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '小米', '程序员', '品牌', '。', '我', '是', '在', '小米', '这里', '学习', '人工智能']
分词的作用: * 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
流行中文分词工具jieba: * 愿景: "结巴"中文分词, 做最好的 Python 中文分词组件.
jieba的特性: * 支持多种分词模式 * 精确模式 * 全模式 * 搜索引擎模式 * 支持中文繁体分词 * 支持用户自定义词典
jieba的安装:
pip install jieba
2.jieba的使用:
2.1.精确模式分词
精确模式分词:
试图将句子最精确地切开,适合文本分析.
python
# 精确模式分词
content = "小米公司教育是一家上市公司,旗下有小米程序员品牌。我是在小米这里学习人工智能"
# 精确模型:试图将句子最精确地切开,适合文本分析。也属于默认模式
jieba.cut(content, cut_all=False) # cut_all默认为False
# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=False)

2.2全模式分词
python
## 全模式分词
#把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能消除歧义。
# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=True)
# 注意1:人工智能全模型分成三个词
# 注意2:逗号和句号也给分成了词

2.3搜索引擎模式分词
python
###jieba 搜索模式分词
#在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jieba
content = "小米公司教育是一家上市公司,旗下有小米程序员品牌。我是在小米这里学习人工智能"
jieba.cut_for_search(content)

2.4中文繁体分词
python
####中文繁体分词
#针对中国香港, 台湾地区的繁体文本进行分词。
import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)

2.5自定义词典
python
#####使用自定义词典、
#添加自定义词典后, jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
#词典格式: 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
#词典样式如下, 具体词性含义请参照7 jieba词性对照表, 将该词典存为userdict.txt, 方便之后加载使用。
import jieba
sentence = '小米公司教育是一家上市公司,旗下有小米程序员品牌。我是在小米这里学习人工智能'
# 1 没有使用用户自定义词典
mydata = jieba.lcut(sentence, cut_all=False)
print('mydata-->', mydata)
格式:word1 freq1 word_type1
黑马程序员 5 n
传智教育 6 n
人工智能 7 nz
学习 3
上市 3
