zoukankan      html  css  js  c++  java
  • 自然语言处理NLP学习笔记一:概念与模型初探

    • 前言

    先来看一些demo,来一些直观的了解。

    自然语言处理:

    可以做中文分词,词性分析,文本摘要等,为后面的知识图谱做准备。

    http://xiaosi.trs.cn/demo/rs/demo

    知识图谱:

    https://www.sogou.com/tupu/person.html?q=刘德华

    还有2个实际应用的例子,加深对NLP的理解

     九歌机器人:

    https://jiuge.thunlp.cn/

    微软对联机器人:

    http://duilian.msra.cn/

    • NLP概述:

    自然语言处理,是研究如何利用计算机技术对语言文本(句子,篇章或话语等)进行处理和加工的一门技术。

    NLP的关键思想之一是将单词转换为数字向量,然后把这些数字向量放到机器学习模型中进行预测。

    深度学习是NLP的关键技术之一。

    自然语言处理是构建知识图谱的基础技术。

    学科面临的主要挑战:

    大量出现的新词语:例:佛系

    无处不在的歧义:例:喜欢城市的年轻人 

    隐喻表达:例:在朋友圈潜水

    不同语言的概念不同:翻译之间的理解

    对应的核心挑战:

     ->语义分析

    ->语用场景的分析

    • NLP应用举例:

    一: 汉语分词

    1. 最大匹配法(基于规则或模板的方法)

    2. 基于n-gram的分词法(传统的统计方法,生成式)

    3. 基于神经网络的分词方法(目前最主流的分词方法)

    二: 机器翻译:

    1. 基于模板/规则的方法

    2. 基于语料库的方法

    3. 基于神经机器翻译方法

    三: 同声翻译:

     技术应用现状:

    1,各种 输入法;

    2,语音

    • 常见的NLP方法:

    1.基于规则的方法

    2.基于统计学习方法

    ---------------------------------------

    基于统计方法的基本方法/框架:

    框架:学习系统->模型->预测系统

    原理:训练数据(样本),带标签,预测下一个输入后的输出

    如买保险,买与不买是标签,已有买保险数据为样本。我们重点是做好训练模型

    常用的统计模型:

    模型主要是6,7种,侧重点不同,根据需要选择不同的模型使用即可。

    1.统计模型

    1) 语言模型(LM)--比较复杂

    2) 隐马尔可夫模型(HMM)-----多分类问题(大于2的)

    3)K-近邻(KNN)----数据量比较少可选用

    4) 朴素贝叶斯法(NB)

    5)决策树(DT)

    6)最大熵(maximum entropy)

    -------二类分类--------

    7)支持向量机(SVN)

    8)感知机

    ------序列标注-------

    9)条件随机场(CRFConditional random fields)

      

    基于统计学的一个算法,Viterbi算法:每次只保留最佳的算法

     

    已有开源工具一大堆,这里不一一列出。

    基于学习的基本方法:

    人工神经网络最火的是深度学习

     深度学习在2009年才取得重大突破,把识别率提高了百分之十几个点。

    神经语言模型:

    条件概率模型,统计之前出现次数的概率,预测概率最大化

    计算机是没法理解人类语言的(意图),只能把出现概率最大的取出来,那么就需要大量的样本训练他。

    神经网络分2种: 

    浅层学习:LR,SVM,Bayes,boosting

    深度学习: CNN,RNN,DBM,AutoEncoder

    CNN:卷积 RNN则不会过多约束

    2个核心,1是卷积: 实际是一个加权运算;2是最大池化。

    RNN:循环 CNN对于输入数据的维度约束是比较严重的,训练是啥,预测就是啥

    LSTM(长短记忆神经网络,RNN的一种)核心过程:

    3个门,每个门对应一个函数 。每个门的结果要么是0要么是1

    遗忘门: 选择哪些遗忘

    输入门: 决定输入什么

    输出门:决定输出什么

    --------------------------------------------------------- 

    笔记:

    1. N多的数学公式,要想深入学习,还得学好数学

    2. 模型普通人就不要研究了

    • 知识图谱

    知识图谱与深度学习相当于两条路在走,未来会深度学习。

    深度学习可以用来预测,知识图谱不能,知识图谱类似将所有知识穷举起来,搜索你要的知识就行。

    知识图谱可以为深度学习提供知识,深度学习为知识图谱提供模型与工具构建。

    知识图谱是基于语义网发展起来的。

    语义网: 具有一定关系的网络

    知识图谱实例:

    http://kw.fudan.edu.cn

    http://zhishi.me

    • 文本挖掘

    TF-IDF加权法

    一堆概念与术语:

    ​NLU 自然语言理解

    NLP 自然语言处理 

    MT 机器翻译

    HLT 人类语言技术,包括NLU,CL,MT

    DL(deep learning) 深度学习

    NN(Neural Networks)神经网络

    RNN(Convolutional Neural Networks):卷积神经网络

    CNN:循环神经网络

    LSTM:长短期记忆网络

     n-gram:输入一句话,输出这句话的概率

    ​Word Embedding(词嵌入),将单词映射到向量空间里,并用向量来表示。

    Word2vec 词向量表示,将相似的单词分组映射到向量空间的不同部分,即能学到单词与单词之间的关系。

    ​Word2Vec有2种方法,skip-gram和CBOW。

    skip-gram:输入一个词,然后试着估计其他词出现在该词附近的概率。

    CBOW:连续词汇学习

  • 相关阅读:
    JAVA 使用 POI进行读取Excel表格示例
    问题解决:Maven execution terminated abnormally (exit code 1)
    oracle总结: INTERVAL DAY TO SECOND, 但却获得 NUMBER
    SpringMvc返回JSON出现"$.result.currentLevel"
    Spring+SpringMVC+mybatis maven pom文件
    redis在Linux上的安装
    Jsoup访问https网址异常SSLHandshakeException(已解决)
    不同版本2.5的Servlet web.xml 头信息
    Spring管理事物两种方式
    Error:too many padding sections on bottom border.
  • 原文地址:https://www.cnblogs.com/xiaoer/p/11059069.html
Copyright © 2011-2022 走看看