自然语言处理1——NLP概述
文章目录
说在前面
本文及后续文章是学习自然语言过程中的学习笔记,存在部分内容可能记录错误或不全情况。希望能帮助到你:D
什么是自然语言处理?
用机器处理人类语言的理论和技术,构造计算模型,用于自然语言的分析、转换和生成。
机器如何理解自然语言?
语法层面:
- 文本预处理:
- 文本采集
- 格式转换
- 编码识别
- 文本清洗
- 标注
- 句子切分
- 形态分析:研究构词方法、词的有意义的组合
- 分词:将句子切分为词序列
- 词性标注
- 句法分析
语义层面:
- 词义消歧
- 语义分析
语用层面:
- 语用分析
- 篇章分析
- 海量文档
常见应用
文本分类
根据内容、主题,自动分配预先定义的类别
方法:
- 基于机器学习:SVM、朴素贝叶斯
- 基于神经网络:CNN、RNN、多层感知机
文本聚类
根据文档间内容的相似度划分若干子集
方法:
- 基于距离:K-means
- 基于概率:PLSA、LDA
情感分析
观点性及倾向性识别、观点要素抽取
方法:
- 基于词典+规则:对文本进行拆句、分析匹配词典,计算情感值
- 基于统计机器学习:将情感分析作为分类问题
信息抽取
从文本中抽取指定类型的实体、关系、事件等,输出结构化数据
命名实体识别
识别文本中有特定意义的实体
难点:类型多样,结构复杂
实体消歧
一个命名实体对应多种表达
方法:利用实体间交互及上下文信息进行消歧
关系抽取
检测、识别文本中实体间的关系
输出:(实体1,关系类别,实体2)。如:(中国,首都,北京)
方法:
- 基于模板
- 监督学习:机器学习、深度学习
事件抽取
从非结构化文本中抽取事件信息(时间、地点、事件)
方法:
- 模式匹配
- 基于机器学习
- 混合方法(即混合上述两种方法)
自动文摘
抽取式:从原文抽取句子
生成式:根据原文的内容生成句子
信息推荐
协同过滤:
- 基于用户:对一堆用户进行分析
- 基于物品:对物品信息及用户对物品的偏好分析
基于内容:使用元素的描述属性进行推荐
基于知识:事先将领域知识整理为规范的、可用的表达形式
自动问答
基于检索式:问句理解->信息检索->答案抽取
基于生成式:基于seq2seq模型
- 抽取部分:预测答案并对文档进行排序
- 生成部分:将抽取的部分标注的答案作为一个特征信息叠加到文章向量中,经过encoder、decoder生成答案
机器翻译
把一种语言翻译成另外一种语言
NLP的困难
歧义
注音歧义、分词歧义、指代歧义、语义歧义
结构歧义:如吃食堂
短语歧义:如:咬死猎人 的狗 | 咬死 猎人的狗
语用歧义:如:你真讨厌
病构
真实文本的语言现象非常复杂,不规范、不干净且包含未知的语言现象,如:新词汇、新词义、新的语句结构、作者疏忽造成的错误等
重述
指相同意思的不同表达
层间循环依赖
底层需要高层模块的指导才能准确分析;高层模块建立在底层模块分析的基础上。
解决方法:简单级联、一体化、端到端模型
NLP方法论
理性主义
认为人大部分语言知识与生俱来,由遗传决定。
研究人的语言知识结构,试图书写大量语言规则,复制语言模型。
知识库+推理系统->NLP系统
应用:应用语言规则分析句子结构;根据词的语义及词在句子结构中作用推断句子语义。
经验主义
认为人从大量语言数据中学习复杂、广泛的语言知识。
研究大规模真实文本,将语言视为随机现象,用概率分布描述语言。
语料库+统计模型->NLP系统
应用:运用模型参数,估计语言现象的出现概率