当前位置:   article > 正文

深度学习 第五章 自然语言处理与深度学习_1-gram算法

1-gram算法

深度学习入门视频-唐宇迪 (笔记加自我整理)

深度学习 第五章 自然语言处理与深度学习

        自然语言处理主要是处理文本数据,是一种非结构化的数据,是一个非常热的方向,主要应用在拼写检查、机器翻译、客服系统等。这一章简单介绍下整体的发展,最主要的是word2vec词嵌入模型,word2vec不仅可以用在文本上,也可以延伸到推荐领域计算商品之间的相似性。

       一般文本数据都需要进行预处理,如果是网络爬虫得到的数据,需要提前去掉一些html的标签,变成我们常见的文章的形式,然后去除标点符号。文本数据一般都是一段话或者是一篇文章,但是自然语言处理的基本单元是单词,如果是中文的话,还需要对句子进行分词,一般使用jieba分词器,如果是英文则不用分词,分词就是把句子分成一个一个的单词。之后需要去掉一些停用词,比如英文里面的the,a,这些没有实际含义的词,中英文都有对应常见的停用词表,网上都有。最后再把词组重新组成句子,整个过程就是文本数据的预处理,用预处理的数据进行之后的建模操作。

1.  词袋模型

         词袋模型,顾名思义,就是把每一篇文章当成一个袋子,把对应文章里面包含的单词放到对应的袋子中。以每一篇文章(每个袋子)为单位,计算当前这篇文章中单词的重要性,抽取出最重要的前几n个单词,代表本篇文章。

       如何计算单词的重要性,有两种方法比较常见,一种是统计词频,就是袋子中每个单词出现的次数,取出现次数最大的前n个单词,比如前5000个;另一种叫tf-idf 词频-逆文档频率,即tf*idf,tf是指某个单词在某一篇文章中出现的频率,idf是指你文档频率,主要是表示该单词代表含义的重要程度,idf(t) = log( 文章总数 / (包含该单词的文章数+1 )) , idf可以理解为如果一个单词在越多的文档中出现,那么这个单词越不重要。tf*idf是指,某个单词在当前文章中出现频率越高,而且在其他文章中出现从次数越少,这个单词越能代表当前这篇文章的含义。这两种都不考虑词和词之间的顺序性。

  • 计算词的重要性有两种方法:
    • 词频统计,简单粗暴,scikit-learn中的CountVectorizer
    • tf-idf(词频-逆文档频率),  即 词频tf *  词义的重要性idf

2.语言模型 n-gram

        语言模型,就是计算一个句子的概率的模型,句子中的每个单词都和其前面的所有单词相关,然后将每个单词出现的概率相乘,就得到这个句子可能出现的概率。这里计算的是每个单词在前面单词出现的情况下出现的频率,即都是条件概率。比如“今天”P(w2|w1) 出现的概率,计算的是在“我”出现的情况下,出现“今天”的概率,最终句子的概率是所有单词的条件概率相乘。

      

        但是这样存在一个问题,每一个单词都依赖该单词前面出现的所有单词,会导致单词条件概率的值特别小,数据特别稀疏,而且从语义上来看,大部分单词都只和它附近的几个单词比较相关,所以出现了n-gram模型,n是需要自己指定的,可以是1-gram,2-gram,3-gram等,常用1-gram和2-gram。

  • 说明
    • 1-gram模型,是指当前单词出现的频率只和其前面的一个单词有关系
    • 2-gram模型,是指当前单词出现的频率只和其前面的两个单词有关系
    • n-gram模型,依次类推。

         

  •     1-gram的计算过程
    • 目标:预测的目标句子(I want english food)出现的概率
    • 说明:
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/629657
    推荐阅读
    相关标签
      

    闽ICP备14008679号