词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。分词过程就是找到这样分界符的过程.
jieba
库是一款优秀的 Python 第三方中文分词库。1. 分词模式
1.1 三种模式
jieba
支持三种分词模式:精确模式、全模式和搜索引擎模式- 精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析
jieba.cut(content, cut_all=False)
返回生成器(cut_all默认为False)jieba.lcut(content, cut_all=False)
返回列表
- 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据
jieba.cut(content, cut_all=True)
返回生成器jieba.lcut(content, cut_all=True)
返回列表
- 搜索引擎模式:在精确模式的基础上,对长词再次进行切分,相对于精确模式,搜索引擎模式会忽略一些语法元素,比如停用词、虚词等,适合做搜索关键词的提取
jieba.lcut_for_search(content)
1.2 用户词典
- 添加自定义词典后, jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
- 词典格式: 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
- 词典样式如下, 具体词性含义请参照7 jieba词性对照表, 将该词典存为userdict.txt, 方便之后加载使用。
2. 命名实体识别
命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
3. 词性标准
词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性。词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.