美文网首页AI专题
Python自然语言处理实战(1):NLP基础

Python自然语言处理实战(1):NLP基础

作者: TOM_c732 | 来源:发表于2020-04-23 10:17 被阅读0次

    展开

          从建模的角度看,为了方便计算机处理,自然语言可以被定义为一组规则或符号的集合,我们组合集合中的符号来传递各种信息。自然语言处理研究表示语言能力、语言应用的模型,通过建立计算机框架来实现这样的语言模型,并且不断完善这样的语言模型,还需要根据语言模型来设计各种实用的系统,并且探讨这些实用技术的评测技术。从自然语言的角度出发,NLP基本可以分为两个部分:自然语言处理以及自然语言的生成,演化为理解和生成文本的任务。

          自然语言的理解是个综合的系统工程,它又包含了很多细分学科,有代表声音的音系学,代表构词法的词态学,代表语句结构的句法学,代表理解的语义句法学和语用学。

    音系学:指代语言中发音的系统化组织。

    词态学:研究单词构成以及相互之间的关系。

    句法学:给定文本的哪部分是语法正确的。

    语义学:给定文本的含义是什么?

    语用学:文本的目的是什么?

          自然语言生成恰恰相反,从结构化数据中以读取的方式自动生成文本。该过程主要包含三个阶段:文本规划(完成结构化数据中的基础内容规划)、语句规划(从结构化数据中组合语句来表达信息流)、实现(产生语法通顺的语句来表达文本)。

    1.2、NLP的研究任务

    机器翻译:计算机具备将一种语言翻译成另一种语言的能力。

    情感分析:计算机能够判断用户评论是否积极。

    智能问答:计算机能够正确回答输入的问题。

    文摘生成:能够准确归纳、总结并产生文本摘要。

    文本分类:能够采集各种文章,进行主题分析,从而进行自动分类。

    舆论分析:能够判断目前舆论的导向。

    知识图谱:知识点相互连接而成的语义网络。

    1.3、NLP相关知识的构成

     分词(segment):词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字位基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文分词的基础和关键。中文分词常用的手段是基于字典的最长串匹配,据说可以解决85%的问题,但是歧义分词很难。

    词性标注(part-of-speech tagging):标注的目的是表征词的一种隐藏状态,隐藏状态构成的转移就构成了状态转移序列。

    命名实体识别(NER, Named Entity Recognition):从文本中识别具有特定类别的实体(通常是名词)

    句法分析(syntax parsing):往往是一种基于规则的专家系统。目的是解析句子中各个成分的依赖关系,可以解决传统词袋模型不考虑上下文的问题。

    指代消解(anaphora resolution):中文中代词出现的频率很高

    情感识别(emotion recognition):本质上是分类问题,通常可以基于词袋模型+分类器,或者现在流行的词向量模型+RNN。经过测试发现后者比前者准确率略有提升。

    纠错(correction):具体做法有很多,可以基于N-Gram进行纠错,也可以通过字典树、有限状态机等方法进行纠错。

    问答系统(QA system):往往需要语音识别、合成、自然语言理解、知识图谱等多项技术的配合才会实现得比较好。

        知识结构:NLP是研究人和机器之间用自然语言进行有效通信的理解和方法。这需要很多跨学科的知识,需要语言学、统计学、最优化理论、机器学习、深度学习以及自然语言处理相关理论模型知识做基础。

    句法语义分析:针对目标句子,进行各种句法分析,如分词、词性标记、命名实体识别及链接、句法分析、语义角色识别和多义词消歧等。

    关键词抽取:抽取目标文本中的主要信息,比如从一条新闻中抽取关机信息。主要是了解是谁、于何时、为何、对谁、做了何事、产生了有什么结果。涉及实体识别、时间抽取、因果关系抽取等多项关键技术。

    文本挖掘:主要包含了对文本的聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的呈现界面。

    机器翻译:将输入的源语言文本通过自动翻译转化为另一种语言的文本。根据输入数据类型的不同,可细分位文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则到二十年前的基于统计的方法,再到今天的基于深度学习(编解码)的方法,逐渐形成了一套比较严谨的方法体系。

    信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋以不同的权重来建立索引,也可使用算法模型来建立更加深层的索引。查询时,首先对输入比进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

    问答系统:针对某个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。

    对话系统:系统通过多回合对话,跟用户进行聊天、回答、完成某项任务。主要涉及用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,对话系统还需要基于用户画像做个性化回复。

    ————————————————

    版权声明:本文为CSDN博主「CopperDong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/QFire/java/article/details/81046637

    相关文章

      网友评论

        本文标题:Python自然语言处理实战(1):NLP基础

        本文链接:https://www.haomeiwen.com/subject/szkoihtx.html