python自然语言处理

python自然语言处理(一)
自言语言处理基础知识

参考:https://blog.csdn.net/meihao5/article/details/79592667

英文资料:

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://pan.baidu.com/s/1qUlPpUoxfmFRscxvDpS4kw 提取码: zrcb

http://zhongce.sina.com.cn/article/view/23230/

https://yq.aliyun.com/articles/695415?utm_content=g_1000049292

github框架:

fast text

https://github.com/facebookresearch/fastText

cnn

https://github.com/gaussic/text-classification-cnn-rnn

https://blog.csdn.net/qq_35697978/article/details/81059701

lstm

https://github.com/nicodjimenez/lstm

bert

https://github.com/google-research/bert

python分词框架可以使用结巴分词

https://github.com/fxsjy/jieba

Chinese Word Vectors 中文词向量
https://github.com/Embedding/Chinese-Word-Vectors
HANLP(好一点)https://github.com/hankcs/HanLP

ANSJ(差一点)

SNOWNLP(差一点)

JCSEG

词向量()

你可能感兴趣的:(NLP)