NLP_Natural Language Processing
自然语言处理的概念
- 自然语言处理是人工智能和语言学的交叉学科,该领域主要探讨如何处理及运用自然语言、自然语言认知(让计算机能“懂”人类的语言)、自然语言生成系统(将机器数据转换成自然语言)以及自然语言理解系统将自然语言转化为计算机程序更易于处理的形式。
自然语言处理的两大体系
- 自然语言理解(NLU)
- 自然语言生成(NLG)
自然语言处理的主要任务
-
分词(中文分词、英文分词)
如:“小明毕业于清华大学”的分词结果可能会是这样的:[“小明”,“毕业”,“于”,“清华”,“大学”,“清华大学”],为什么说是可能,其实这取决于我们是用什么样的分词工具,这个我们后边会有专门的文章来聊这一块;
主要方法:(1) 基于词典的匹配:前向最大匹配、后向最大匹配
(2) 基于词的标注:最大熵模型、条件随机场(CRF)/感知机
(3) 其他方法:与词性标注结合、与句法分析结合
-
词性标注(Part-of-Speech tagging,简称POS tagging)
如:“小明毕业于清华大学”标注结果为:“小明[名词]毕业[动词]于[介词]清华大学[名词]”主要方法:
(1) 基于统计概率
(2) 隐马尔可夫模型(HMM)
(3) 机器学习(ML)
-
语义消歧(WSD)
语义消歧的主要目的是识别单词的正确含义 -
文本分类
文本分类是指计算机对文本集使用一定的分类模型进行自动分类标记的过程,也是现阶段应用较为广泛的一个方面,具体过程如下:
(1) 预处理:将原始预料转换成同一格式,便于后续的处理
(2) 索引:将文档分解为基本处理单元,同时降低后续处理的开销
(3) 统计:词频统计,(单词、概念)与分类的相关概率
(4) 特征抽取:从文档中抽取出反应文档主体的特征
(5) 分类器:分类器的训练
(6) 评价:分类器的测试结果分析
(7) 调优:对分类器的超参数进行调优
文本分类的主要算法:
决策树、朴素贝叶斯、神经网络、支持向量机(SVM)、KNN、EM、ME 等等
文本分类的主要应用:垃圾邮件过滤、新闻分类 -
文本挖掘
文本挖掘就是利用自然语言处理技术,让计算机具备文字阅读能力,帮助用户自动化处理海量文本数据,提升文字处理效率和文本挖掘深度,降低人工成本的一种任务; -
信息抽取
信息抽取也叫知识抽取,主要处理的是结构化数据(数据库、链接数据等)、半结构化数据(网页中的列表、table)、非结构化数据(纯文本数据),从这当中去进行关系、事件等等的抽取; -
问答系统(QA)
现代化的问答系统其实是融合知识库、信息检索、机器学习、自然语言处理等技术的一种人机对话服务,其涉及到的信息检索、知识表示这样的一些内容使得开发一款非传统的QA系统会比较困难,这里说的传统的QA系统,比如说基于常见问题集FAQ的问答系统,准确点说应该是传统的信息检索系统。 -
机器翻译(MT)
机器翻译其实很好理解,就是将句子或者短语从源语言转化成目标语言的任务,比如说常用的英文–>中文,这个过程需要考虑一些什么内容呢,比如说由于两个语言之间句子结构导致的差异,直译必然导致的问题就是,翻译出来的句子可能并不是一句正常的话语,通俗点说,不是人话,如何解决这个问题,常用的比如说语言模型(LM)等等。这一块后边再补充。 -
命名实体识别(NER)
NER尝试从给定的文本主体或者文本语料库中提取实体(如:人物、位置或者组织),像现在流行的知识图谱当中必不可少的任务就是命名实体识别,还有上边的信息抽取;
简单总结一下,很多时候一个完整的自然语言处理应用系统并不是只由单个任务组成,而是有多个任务合并执行的,比如说我问了一个这样的问题:“我想找一家不错的法式餐厅”,(虽然我可能没钱去,题外话了),那么需要处理哪些信息呢?首先语音转为文本、语义分析、情感分析:我找的是一家不错的,机器翻译:可能餐厅名称是法文的,我听不懂不是、问答:系统需要告诉我哪里有或者没有这样的餐厅。诸如此类的问题。