自然语言处理(NLP)知识结构总结-程序员宅基地

技术标签: 人工智能  数据结构与算法  数据库  

自然语言处理知识太庞大了,网上也都是一些零零散散的知识,比如单独讲某些模型,也没有来龙去脉,学习起来较为困难,于是我自己总结了一份知识体系结构,不足之处,欢迎指正。内容来源主要参考黄志洪老师的自然语言处理课程。主要参考书为宗成庆老师的《统计自然语言处理》,虽然很多内容写的不清楚,但好像中文NLP书籍就这一本全一些,如果想看好的英文资料,可以到我的GitHub上下载:  
http://github.com/lovesoft5/ml
  下面直接开始正文:

    一、自然语言处理概述
               1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容。
              2)自然语言处理是研究语言能力和语言应用的模型,建立计算机(算法)框架来实现这样的语言模型,并完善、评测、最终用于设计各种实用系统。
              3)研究问题(主要):
                                   信息检索
                                   机器翻译
                                   文档分类
                                   问答系统
                                   信息过滤
                                   自动文摘
                                   信息抽取
                                   文本挖掘
                                   舆情分析
                                   机器写作
                                   语音识别
           研究模式:自然语言场景问题,数学算法,算法如何应用到解决这些问题,预料训练,相关实际应用
               自然语言的困难:
                           场景的困难:语言的多样性、多变性、歧义性
                           学习的困难:艰难的数学模型(hmm,crf,EM,深度学习等)
                           语料的困难:什么的语料?语料的作用?如何获取语料?
    二、形式语言与自动机 
               语言:按照一定规律构成的句子或者字符串的有限或者无限的集合。
                描述语言的三种途径:

                                              穷举法
                                              文法(产生式系统)描述
                                              自动机
               自然语言不是人为设计而是自然进化的,形式语言比如:运算符号、化学分子式、编程语言

               形式语言理论朱啊哟研究的是内部结构模式这类语言的纯粹的语法领域,从语言学而来,作为一种理解自然语言的句法规律,在计算机科学中,形式语言通常作为定义编程和语法结构的基础

               形式语言与自动机基础知识:

                                                 集合论
                                                 图论
               自动机的应用:
                                            1,单词自动查错纠正

                                            2,词性消歧(什么是词性?什么的词性标注?为什么需要标注?如何标注?)

              形式语言的缺陷:

                                      1、对于像汉语,英语这样的大型自然语言系统,难以构造精确的文法

                                      2、不符合人类学习语言的习惯

                                      3、有些句子语法正确,但在语义上却不可能,形式语言无法排出这些句子

                                      4、解决方向:基于大量语料,采用统计学手段建立模型                              

    三、语言模型
           1)语言模型(重要):通过语料计算某个句子出现的概率(概率表示),常用的有2-元模型,3-元模型
           2)语言模型应用:
                                         语音识别歧义消除例如,给定拼音串:ta shi yan yan jiu saun fa de

                                         可能的汉字串:踏实烟酒算法的   他是研究酸法的      他是研究算法的,显然,最后一句才符合。

          3)语言模型的启示:

                              1、开启自然语言处理的统计方法

                              2、统计方法的一般步骤:               

                                                                 收集大量语料
                                                                 对语料进行统计分析,得出知识
                                                                 针对场景建立算法模型
                                                                 解释和应用结果
          4) 语言模型性能评价,包括评价目标,评价的难点,常用指标(交叉熵,困惑度)
          5)数据平滑:

                         数据平滑的概念,为什么需要平滑

                         平滑的方法,加一法,加法平滑法,古德-图灵法,J-M法,Katz平滑法等

        6)语言模型的缺陷:

                        语料来自不同的领域,而语言模型对文本类型、主题等十分敏感

                         n与相邻的n-1个词相关,假设不是很成立。


   四、概率图模型,生成模型与判别模型,贝叶斯网络,马尔科夫链与隐马尔科夫模型(HMM)
            1)概率图模型概述(什么的概率图模型,参考清华大学教材《概率图模型》)
           2)马尔科夫过程(定义,理解)
      3)隐马尔科夫过程(定义,理解)
              HMM的三个基本问题(定义,解法,应用)

                 注:第一个问题,涉及最大似然估计法,第二个问题涉及EM算法,第三个问题涉及维特比算法,内容很多,要重点理解,(参考书李航《统计学习方法》,网上博客,笔者github)

       

    五、马尔科夫网,最大熵模型,条件随机场(CRF)
               1)HMM的三个基本问题的参数估计与计算
               2)什么是熵
               3)EM算法(应用十分广泛,好好理解)
               4)HMM的应用
               5)层次化马尔科夫模型与马尔科夫网络
                                         提出原因,HMM存在两个问题
               6)最大熵马尔科夫模型
                                         优点:与HMM相比,允许使用特征刻画观察序列,训练高效
                                         缺点: 存在标记偏置问题
               7)条件随机场及其应用(概念,模型过程,与HMM关系)
                            参数估计方法(GIS算法,改进IIS算法)
                            CRF基本问题:特征选取(特征模板)、概率计算、参数训练、解码(维特比)
                            应用场景:
                                             词性标注类问题(现在一般用RNN+CRF)
                                             中文分词(发展过程,经典算法,了解开源工具jieba分词)
                                             中文人名,地名识别
               8)  CRF++
    六、命名实体 识别,词性标注,内容挖掘、语义分析与篇章分析(大量用到前面的算法)
            1)命名实体识别问题
                                     相关概率,定义
                                     相关任务类型

                                     方法(基于规程->基于大规模语料库)

              2)未登录词的解决方法(搜索引擎,基于语料)
              3)CRF解决命名实体识别(NER)流程总结:

                       训练阶段:确定特征模板,不同场景(人名,地名等)所使用的特征模板不同,对现有语料进行分词,在分词结                      果基础上进行词性标注(可能手工),NER对应的标注问题是基于词的,然后训练CRF模型,得到对应权值参数值

                       识别过程:将待识别文档分词,然后送入CRF模型进行识别计算(维特比算法),得到标注序列,然后根据标                            注划分出命名实体

              4)词性标注(理解含义,意义)及其一致性检查方法(位置属性向量,词性标注序列向量,聚类或者分类算法)

            
    七、句法分析
              1)句法分析理解以及意义
                           1、句法结构分析
                                      完全句法分析
                                             浅层分析(这里有很多方法。。。)
                           2、 依存关系分析
             2)句法分析方法
                                1、基于规则的句法结构分析
                                2、基于统计的语法结构分析
          
    八、文本分类,情感分析
               1)文本分类,文本排重
                                  文本分类:在预定义的分类体系下,根据文本的特征,将给定的文本与一个或者多个类别相关联
                           典型应用:垃圾邮件判定,网页自动分类
               2)文本表示,特征选取与权重计算,词向量
                          文本特征选择常用方法:
                                        1、基于本文频率的特征提取法
                                        2、信息增量法
                                        3、X2(卡方)统计量
                                        4、互信息法
               3)分类器设计
                                SVM,贝叶斯,决策树等
               4)分类器性能评测
                                1、召回率
                                2、正确率
                                3、F1值
               5)主题模型(LDA)与PLSA
                              LDA模型十分强大,基于贝叶斯改进了PLSA,可以提取出本章的主题词和关键词,建模过程复杂,难以理解。
               6)情感分析
                         借助计算机帮助用户快速获取,整理和分析相关评论信息,对带有感情色彩的主观文本进行分析,处理和归纳例如,评论自动分析,水军识别。
                        某种意义上看,情感分析也是一种特殊的分类问题
               7)应用案例

    九、信息检索,搜索引擎及其原理
              1)信息检索起源于图书馆资料查询检索,引入计算机技术后,从单纯的文本查询扩展到包含图片,音视频等多媒体信息检索,检索对象由数据库扩展到互联网。
                    1、点对点检索
                    2、精确匹配模型与相关匹配模型
                    3、检索系统关键技术:标引,相关度计算
            2)常见模型:布尔模型,向量空间模型,概率模型
            3)常用技术:倒排索引,隐语义分析(LDA等)   
            4)评测指标 
    十、自动文摘与信息抽取,机器翻译,问答系统
              1)统计机器翻译的的思路,过程,难点,以及解决
            2)问答系统
                    基本组成:问题分析,信息检索,答案抽取
                    类型:基于问题-答案, 基于自由文本
                    典型的解决思路
           3)自动文摘的意义,常用方法
           4)信息抽取模型(LDA等)
 
    十一、深度学习在自然语言中的应用  
             1)单词表示,比如词向量的训练(wordvoc)
             2)自动写文本
                            写新闻等
             3)机器翻译
             4)基于CNN、RNN的文本分类
             5)深度学习与CRF结合用于词性标注

转载于:https://www.cnblogs.com/aibabel/p/11445398.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30402085/article/details/101274061

智能推荐

使用UmcFramework和unimrcpclient.xml连接多个SIP设置的配置指南及C代码示例

在多媒体通信领域,MRCP(Media Resource Control Protocol)协议被广泛用于控制语音识别和合成等媒体资源。UniMRCP是一个开源的MRCP实现,提供了客户端和服务端的库。UmcFramework是一个基于UniMRCP客户端库的示例应用程序框架,它帮助开发者快速集成和测试MRCP客户端功能。本文将详细介绍如何使用UmcFramework和unimrcpclient.xml配置文件连接到多个SIP设置,以及如何用C代码进行示例说明。

java.net.ProtocolException: Server redirected too many times (20)-程序员宅基地

文章浏览阅读3k次。报错:java.net.ProtocolException: Server redirected too many times (20)1.没有检查到cookie,一直循环重定向。解决:CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));URL url = new URL(url); ..._java.net.protocolexception: server redirected too many times (20)

springboot启动报错 Failed to scan *****/derbyLocale_ja_JP.jar from classloader hierarchy_failed to scan from classloader hierarchy-程序员宅基地

文章浏览阅读4.1k次。问题这是部分报错信息2019-07-11 14:03:34.283 WARN [restartedMain][DirectJDKLog.java:175] - Failed to scan [file:/D:/repo/org/apache/derby/derby/10.14.2.0/derbyLocale_ja_JP.jar] from classloader hierarchyjava...._failed to scan from classloader hierarchy

MATLAB-ones函数_matlab中ones函数-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏7次。在MATLAB中,ones函数用于创建一个指定大小的由1组成的矩阵或数组。_matlab中ones函数

解决PS等软件出现应用程序无法正常启动(0xc000007b)_photoshop应用程序无法正常启动0xc000007b。请单击“确认”关闭应用程序。-程序员宅基地

文章浏览阅读3.9w次,点赞2次,收藏9次。  在使用电脑办公过程中,安装应用程序时难免遇到无法安装或者无法正常启动的问题,这对我们使用电脑带来了诸多不便。那遇到应用程序无法正常启动的问题要如何解决呢?相信大家肯定都是十分疑问的,每次都是只能忍痛重新安装软件。今天,小编就和大家探讨下应用程序无法正常启动的解决方法,帮助大家排忧解难。0xc000007b电脑图解1  第一种方案:SFC检查系统完整性来尝试修复丢失文件  1、打开电脑搜索输入cmd.exe,选择以管理员身份运行,跳出提示框时选择继续。0xc000007b电脑图解2_photoshop应用程序无法正常启动0xc000007b。请单击“确认”关闭应用程序。

oracle介质恢复和实例恢复的异同-程序员宅基地

文章浏览阅读396次。1、概念 REDO LOG是Oracle为确保已经提交的事务不会丢失而建立的一个机制。实际上REDO LOG的存在是为两种场景准备的:实例恢复(INSTANCE RECOVERY);介质恢复(MEDIA RECOVERY)。 实例恢复的目的是在数据库发生故障时,确保BUFFER CACHE中的数据不会丢失,不会造成数据库的..._oracle 实例恢复和介质恢复

随便推点

轻松搭建CAS 5.x系列(5)-增加密码找回和密码修改功能-程序员宅基地

文章浏览阅读418次。概述说明CAS内置了密码找回和密码修改的功能; 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以重置密码;系统可配置密码重置后,是否自动登录; 密码修改功能是,用户登录后输入新密码即可完成密码修改。安装步骤`1. 首先,搭建好cas sso server您需要按..._修改cas默认用户密码

springcloud(七) feign + Hystrix 整合 、-程序员宅基地

文章浏览阅读141次。之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和RestTemplate + Hystrix ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用。Feign + Hystrix 演示:  eruka(略)order 服务工程:  pom.xml<?xml version="1.0" encoding="U..._this is order 服务工程

YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度-程序员宅基地

文章浏览阅读3.4k次,点赞35次,收藏43次。学习率是影响目标检测精度和速度的重要因素之一。合适的学习率调度策略可以加速模型的收敛和提高模型的精度。在YOLOv7算法中,可以使用基于余弦函数的学习率调度策略(Cosine Annealing Learning Rate Schedule)来调整学习率。

linux中进程退出函数:exit()和_exit()的区别_linux结束进程可以用哪些函数,它们之间有何区别?-程序员宅基地

文章浏览阅读4k次,点赞4次,收藏9次。 linux中进程退出函数:exit()和_exit()的区别(1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核。(2)调用_exit函数时,其会关闭进程所有的文件描述符,清理内存以及其他一些内核清理函数,但不会刷新流(stdin, stdout, stderr ...). exit函数是在_exit..._linux结束进程可以用哪些函数,它们之间有何区别?

sqlserver55555_sqlserver把小数点后面多余的0去掉-程序员宅基地

文章浏览阅读134次。select 5000/10000.0 --想变成0.5select 5500/10000.0 --想变成0.55select 5550/10000.0 --想变成0.555select 5555/10000.0 --想变成0.5555其结果分别为:0.5000000 0.5500000 0.5550000 0.5555000一、如果想去掉数字5后面多余的0 ,需要转化一下:selec..._sql server 去小数 0

Angular6 和 RXJS6 的一些改动_angular6,requestoptions改成了什么-程序员宅基地

文章浏览阅读3.1k次。例一:import { Injectable } from '@angular/core';import { Observable } from 'rxjs';import { User } from "./model/User";import { map } from 'rxjs/operators';import { Http, Response, Headers, RequestOp..._angular6,requestoptions改成了什么

推荐文章

热门文章

相关标签