赞
踩
深度学习入门视频-唐宇迪 (笔记加自我整理)
深度学习 第五章 自然语言处理与深度学习
自然语言处理主要是处理文本数据,是一种非结构化的数据,是一个非常热的方向,主要应用在拼写检查、机器翻译、客服系统等。这一章简单介绍下整体的发展,最主要的是word2vec词嵌入模型,word2vec不仅可以用在文本上,也可以延伸到推荐领域计算商品之间的相似性。
一般文本数据都需要进行预处理,如果是网络爬虫得到的数据,需要提前去掉一些html的标签,变成我们常见的文章的形式,然后去除标点符号。文本数据一般都是一段话或者是一篇文章,但是自然语言处理的基本单元是单词,如果是中文的话,还需要对句子进行分词,一般使用jieba分词器,如果是英文则不用分词,分词就是把句子分成一个一个的单词。之后需要去掉一些停用词,比如英文里面的the,a,这些没有实际含义的词,中英文都有对应常见的停用词表,网上都有。最后再把词组重新组成句子,整个过程就是文本数据的预处理,用预处理的数据进行之后的建模操作。
1. 词袋模型
词袋模型,顾名思义,就是把每一篇文章当成一个袋子,把对应文章里面包含的单词放到对应的袋子中。以每一篇文章(每个袋子)为单位,计算当前这篇文章中单词的重要性,抽取出最重要的前几n个单词,代表本篇文章。
如何计算单词的重要性,有两种方法比较常见,一种是统计词频,就是袋子中每个单词出现的次数,取出现次数最大的前n个单词,比如前5000个;另一种叫tf-idf 词频-逆文档频率,即tf*idf,tf是指某个单词在某一篇文章中出现的频率,idf是指你文档频率,主要是表示该单词代表含义的重要程度,idf(t) = log( 文章总数 / (包含该单词的文章数+1 )) , idf可以理解为如果一个单词在越多的文档中出现,那么这个单词越不重要。tf*idf是指,某个单词在当前文章中出现频率越高,而且在其他文章中出现从次数越少,这个单词越能代表当前这篇文章的含义。这两种都不考虑词和词之间的顺序性。
2.语言模型 n-gram
语言模型,就是计算一个句子的概率的模型,句子中的每个单词都和其前面的所有单词相关,然后将每个单词出现的概率相乘,就得到这个句子可能出现的概率。这里计算的是每个单词在前面单词出现的情况下出现的频率,即都是条件概率。比如“今天”P(w2|w1) 出现的概率,计算的是在“我”出现的情况下,出现“今天”的概率,最终句子的概率是所有单词的条件概率相乘。
但是这样存在一个问题,每一个单词都依赖该单词前面出现的所有单词,会导致单词条件概率的值特别小,数据特别稀疏,而且从语义上来看,大部分单词都只和它附近的几个单词比较相关,所以出现了n-gram模型,n是需要自己指定的,可以是1-gram,2-gram,3-gram等,常用1-gram和2-gram。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。