zoukankan      html  css  js  c++  java
  • 0-1语言建模当中会遇到的问题

    在对语言建模之前,先来说明一些基本的简单的概念。

    我们假设:

    有这样一个集合,在这个集合里面,是我们所有的涉及到的单词集,并且这个单词的集合是有限的(finite)。为了表示这个集合,用字母V来表示,例如V={the,a,man,telescopo,Beckham,two…}

    有了单词的集合,然后还需要有一个单词串的集合,为了更形象的解释,比如:

    the STOP

    a STOP

    the fan STOP

    the fan saw Beckham STOP

    the fan saw saw STOP

    the fan saw Beckham play for Real Madrid STOP

    这个单词串的集合使用V+来表示。

    为什么在每个的末尾要加一个STOP呢,这在以后的学习当中会用到,他有利于帮助我们开发一个概率模型。(convenient start to develop a probabilistic model)

    现在有了上面的定义,继续探讨自然语言处理建模当中的问题。

    现在:

    • 我们有一个有许多句子的样本,叫它训练样本training sample.
    • 我们需要学习一个概率分布p(learn a probability distribution p),p满足下面的条件:

            image

              这个公式向我们表明了,x属于V+当中的元素,所有其中的元素的概率相加结果应该是1.

    为了更形象的说明P是什么,可以看下面的例子:

    image

    那么,整体的流程是怎样的呢?

    我们把training sample测试样本当中的句子当作输入input,经过模型的处理,最终的输出便是p(output)。这是我们建立模型的作用。

    为什么要做这些事情(这些事情指的是上面的准备测试样本,计算概率、建模等)?

    起初,研究这些是为了解决语音识别当中遇到的难题,相关的还有手写识别等。这些技术的发展在NLP的很多领域楼来都证明十分的有用。

    这些概率p该怎么计算出来呢?

    原始的办法:

    • 假设我们有N个训练用的句子sentences
    • 每一个单词串,用x1 x2 x3…xn来表示,x表示每一个单词。使用c(x1…xn)来表示这个单词串在训练数据training data当中出现的次数。
    • 计算方法为:p(x1…xn)=c(x1…xn)/N

    这个办法,刚一看到会觉得没有什么不妥,其实如果细心的话可以发现这个公式是有问题的。如果某一个单词串并没有在训练数据中出现,那么这个概率p的值就会变为0,如果P=0的话,那么就没有能力去生成新的句子(has no ability to generalize to new sentences)。因为,在训练样本中没有出现,并不代表在测试的时候或者在实际生活中p=0的单词串不会出现,所以,必须要解决p=0的问题,在0-4中会提到。

  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/createMoMo/p/3189892.html
Copyright © 2011-2022 走看看