NLP
少奶奶的猪
python开发,web开发,odoo开发,前端开发,数据库,机器学习
展开
-
NLP——13.条件随机场与应用
一、最大熵模型《数学之美》中的描述:原创 2020-05-11 15:43:11 · 228 阅读 · 0 评论 -
NLP——12.词向量及相关应用
表示人类造出的词:(1)从语料中提取出含义表达。(2)从文字到数值向量词编码的方式:N-gram,TF-IDF——Word2vec(对于多义词会转化到同一个数值向量,从而导致不准确)——sense2vec(区分在不同语境下某些单词的具体含义)·给每个词一个索引,每个词都编码一个下标,但是由于词与词之间有一些隐含的关系,这样做会破坏这个关系。近义词,同一类。绘制到一个二维空间中,希望保证向量空间的相似度,即含义上相近的词绘制到二维空间中之后仍然是相近的。词典:给每个不同的词一个下标原创 2020-05-11 15:17:56 · 643 阅读 · 0 评论 -
NLP——11.深度学习与NLP简单应用
希望在毫不知情(很少的人类介入)的情况下实现。即端对端的实现。一、Intro工具推荐:二、Auto-Encoder使用自编码器的情况:1)拿到的原始数据缺少标签 (数据降噪) 2)数据太大了,需要进行降维,使得最后数据集大小可接受(例如可以讲原始的88图片压缩成21的)将原始图片“数字2”压缩(encoder一个从大到小的NN)到一个中间量(compressed representation),然后通过一个完全反过来的(Decoder一个从小到大的NN)恢复出原始图片。自编码器实原创 2020-05-11 15:04:50 · 269 阅读 · 0 评论 -
NLP——10.使用HMM进行词性标注
这里我们用NLTK自带的Brown词库进行学习。假设我们的单词集: words = w1 … wNTag集: tags = t1 … tNP(tags | words) 正比于 P(ti | t{i-1}) * P(wi | ti) 类似贝叶斯公式(利用中间量)为了找一个句子的tag,我们其实就是找的最好的一套tags,让他最能够符合给定的单词(words)。首先,导入需要的库In [1]:import nltkimport sysfrom nltk.corpus import b原创 2020-05-11 14:55:33 · 745 阅读 · 0 评论 -
NLP——9.隐式马尔科夫链
在初始状态确定的情况下,(1 0)状态下,马尔科夫链的结果最终会趋于稳态分布。即最终结果会得到一个固定的稳态分布。没有办法给出完整的判断,这个时候就需要多一条马尔科夫链。先设置一个牛市和熊市的马尔科夫链,然后牛市对应涨跌,熊市也对应涨跌。从而得到一个双层结构的马尔科夫链。能观测到的最外侧的涨跌(显性的状态集合),而牛市和熊市没办法直接观测得到为隐式。通过能观测的显性求解出整个双层马尔科夫链集合,这就是隐马尔科夫链。由于每次掷骰子的时候只能得到黑盒输出的数字(可见状态链:1,6,8...原创 2020-05-11 11:43:30 · 330 阅读 · 0 评论 -
NLP——8.基于统计的翻译系统
基于统计的机器翻译:mosesdecoder作为比对翻译效果的baseline,如果不如这个的效果,就说明测试系统效果不算好。首先看看一共需要以下三个模型:语言模型:用来评估这句话的通畅程度。1、需要从大量的语料中学习出在新的句子知道对应的英语翻译是什么。2、翻译模型:实质是基于短语的(不是基于单词的翻译)3、平行语料:只要中英文两个文件中行是相同的,那他们就是相互对应的中英文4、在大量的平行语料中学习出该怎样去完成。可能会对词进行一些表示,例如word2vec等将文字表示为计算机能读懂的向量原创 2020-05-11 11:25:16 · 3703 阅读 · 0 评论 -
NLP——7.LDA主题模型(数学公式推导)
这篇文章看一下公式式怎么推导出来的。正经的LDA,主要有以下几个方面:一个函数:gamma函数四个分布:二项分布,多项分布,beta分布,狄利克雷分布一个概念一个理念:共轭先验与贝叶斯框架pLSA,LDA一个采样:Gibbs采样我们来看一下它是怎么推导出来的。共轭先验与共轭分布假定似然函数p(x|θ)p(x|θ)已知,问题是选取什么样的先验分布p(θ)p(θ)和后验分布p(...原创 2020-05-05 21:26:32 · 4926 阅读 · 0 评论 -
NLP——6.LDA主题模型(简单理解及应用)
1.直观理解主题模型听名字应该就知道他讲的是什么?假如有一篇文章text,通过里面的词,来确定他是什么类型的文章,如果文章中出现很多体育类的词,比如,篮球,足球之类的,那么主题模型就会把它划分为体育类的文章。因为主题模型涉及比较多的数学推导,所以我们先用一个小栗子,理解它要做的事。假设有这么一个场景:一个资深HR收到一份应聘算法工程师的简历,他想仅仅通过简历来看一下这个人是大牛,还是彩笔...原创 2020-05-05 20:53:44 · 1262 阅读 · 0 评论 -
NLP——5.从朴素贝叶斯到语言模型(N-gram)
1. 引言:朴素贝叶斯的局限性我们知道朴素贝叶斯的局限性来源于其条件独立假设,它将文本看成是词袋子模型,不考虑词语之间的顺序信息,就会把“武松打死了老虎”与“老虎打死了武松”认作是一个意思。那么有没有一种方法提高其对词语顺序的识别能力呢?有,就是这里要提到的N-gram语言模型。2. N-gram语言模型是啥?2.1从假设性独立到联合概率链规则照抄我们垃圾邮件识别中的条件独立假设,长这个样...原创 2020-05-04 22:04:24 · 403 阅读 · 0 评论 -
NLP——4.朴素贝叶斯与应用(语种检测)
我们试试用朴素贝叶斯完成一个语种检测的分类器,说起来,用朴素贝叶斯完成这个任务,其实准确度还不错。机器学习的算法要取得好效果,离不开数据,咱们先拉点数据(twitter数据,包含English, French, German, Spanish, Italian 和 Dutch 6种语言)瞅瞅。in_f = open('data.csv')lines = in_f.readlines()...原创 2020-06-16 19:18:44 · 450 阅读 · 0 评论 -
NLP——4.朴素贝叶斯与应用(新闻分类)
贝叶斯理论简单回顾在我们有一大堆样本(包含特征和类别)的时候,我们非常容易通过统计得到 p(特征∣类别)p(特征|类别)p(特征∣类别)大家又很熟悉的公式:p(x)p(y∣x)=p(y)p(x∣y)p(x)p(y|x)=p(y)p(x|y)p(x)p(y∣x)=p(y)p(x∣y)所以做一个小小的变换p(特征)p(类别∣特征)=p(类别)p(特征∣类别)p(特征)p(类别|特征)=p(类...原创 2020-06-16 19:18:35 · 536 阅读 · 0 评论 -
NLP——4.朴素贝叶斯
1. 引言贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。2. 贝叶斯公式贝叶斯公式就一行:P(Y∣X)=P(X∣Y)P(Y)P(X)P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}P(Y∣X)=P(X)P(X∣Y)P(Y)而它其...原创 2020-05-02 21:11:55 · 418 阅读 · 0 评论 -
NLP——2.Python正则表达式
正则表达式是处理字符串的强大工具,拥有独特的语法和独立的处理引擎。我们在大文本中匹配字符串时,有些情况用str自带的函数(比如find, in)可能可以完成,有些情况会稍稍复杂一些(比如说找出所有“像邮箱”的字符串,所有和julyedu相关的句子),这个时候我们需要一个某种模式的工具,这个时候正则表达式就派上用场了。说起来正则表达式效率上可能不如str自带的方法,但匹配功能实在强大太多。对啦,...原创 2020-05-02 11:26:59 · 231 阅读 · 0 评论 -
NLP——3.jieba中文处理
和拉丁语系不同,亚洲语言是不用空格分开每个有意义的词的。而当我们进行自然语言处理的时候,大部分情况下,词汇是我们对句子和文章理解的基础,因此需要一个工具去把完整的文本中分解成粒度更细的词。jieba就是这样一个非常好用的中文工具,是以分词起家的,但是功能比分词要强大很多。1.基本分词函数与用法jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 ...原创 2020-05-02 11:05:09 · 476 阅读 · 0 评论 -
NLP——1.基础字符串操作
字符串操作我们一起回归一下python字符串的相关操作,这是非常基础的知识,但却是使用频度非常高的一些功能。去空格及特殊符号s = ' hello, world!'print s.strip()print s.lstrip(' hello, ')print s.rstrip('!')hello, world!world! hello, world连接字符串sStr1 = ...原创 2020-05-02 10:37:28 · 234 阅读 · 0 评论