开头小记:
最近需要文本处理的很多问题,基本上都是口语化的对话数据,需要根据文本数据提取关键的信息(意图、语义?不知道怎么定义)。于是找到了HanLP的项目 (github.com/hankcs/HanL…),链接中附了一本书(下面这本)。索性买来仔细看一下。 基本是缩略形式的笔记。
正文
一: 主要的概念点
1 What’s NLP
NLP==>自然语言处理 ,把非结构化的文本处理成结构化的数据,方便实现对语言的理解和使用。
- a 分词、词性、实体识别
- b 分类聚类
- c 句法分析、语义分析、篇章分析
2 主要的方法
自然语言处理主要有两种方法:基于规则的专家系统方法,基于统计的学习方法。
- a 基于规则的专家系统方法
顾名思义通过相关领域的专家基于个人知识以及经验总结出处理规则,形成针对一类问题的规则库。
优点: 这样的方法见效快,准确率很容易达到一个可用的水平,而且需要的基础数据集偏小。
不足:覆盖率、准确率依靠专家的经验知识,规则库积累到一定量的时候,需要处理规则之间的关系优先级等,不容易根据数据情况更新
- b 基于统计的学习方法
3 机器学习123
机器学习是不直接编程,赋予计算机提高能力的方法。
比如我们要完成某项任务,过往的方法是写清楚每一步的处理逻辑以达到预期的效果。机器学习是让机器自己发现处理一类问题的方法。
- 模型
- 特征
- 数据集
数据集 是用来让机器学习的数据集合或者样本,用来生成解决问题的样本数据或者测试数据
3 机器学习的分类
- 监督学习
通过标注答案的训练集合的学习,生成预测结果。
- 无监督学习
通常用于聚类 分类问题,通过计算数据之间的联系。 - 半监督学习
通过多个模型预测的结果丰富样本数据,扩充训练集的算法 - 强化学习
xxxx (没看懂)
4 语料库和工具的使用
这个直接看书或者GitHub,没必要整理了。
二:记录点
一般的自然语言处理都是要经过下面的环节:
1 分词和词性标注:将语句的词进行分割。一般根据词典等方法。
2 句法分析:通过在句子中词的序列性标注出语法信息
3 语义分析:理解句子表达的语义。
4 文本分类聚类:将文本进行分类 或者相似文本进行聚类
上面的每一步都是单独的方向,看了下书里面也是按照这几个方向分别讲的。后面看了再补充,不过分词和词性标注应该没什么好看的,现在有很多开源库可以实现比如 jieba分词github.com/fxsjy/jieba
所以先看一下句法分析或者语义分析,毕竟是现在比较紧迫的事情。
----------------------------------