NLP自然语言处理

NLP自然语言处理,第1张

罗素悖论:由所有不包含自身的集合构成的集合

例子:理发师称只给那些不给自己理发的人理发。

基于集合论,理发师无论给自己理发还是不给自己理发都是矛盾的。

因此集合论不是完备的。 即使后面冯罗伊德等科学家提出了各种假定条件。

由于上述的原因,集合率无法很好的描述自然语言,科学家发现通过概率模型可以更好的描述自然语言。

深度学习来处理自然语言属于概率模型

证明最小点位于坐标轴上

h = f+c|x|

由于在x = 0处不可导

h-left'(0)h-right'(0) = (f'+c)(f'-c)

那么如果c>|f'(0)|可得,h在0处左右导数异号

0是最值。

那么在损失函数加入L1正则化后,可以得到某些维度容易为0,从而得到稀疏解

几乎所有的最优化手段,都将适用凸优化算法来解决

P(A|B) = P(A and B) / P(B)

if A and B 独立

=》P(A and B| C) = P(A|C)P(B|C)

也可以推出

=>A(A|B and C) = P(A|C) (B交C不为空)

抛9次硬币,硬币出现正面的概率是05,出现k次的概率分布如下如

服从正态分布

x的平均值

E = xp(x) +

x相对于期望的偏离

var = (x-E(x))^2

conv = (x - E(x))(m - E(m))

描述x,m是否有同分布

按理协方差为0,并不代表x和m没有关系

例如下图

如果点的分布对称的分布,会得到协方差为0,但是其实他们是有关系的。

把每个相关的概率累加,得到联合概率

P(x1=m1,x2=m2) = n!P1 m1/m1!P2 m2/m2!

T(n) = (n-1)!

T(x)用一条曲线逼近n!,进而可以求得非整数的阶乘

由二项式分布推出

P = T(a+b)x (a-1)(1-x) (b-1)/(T(a)T(b))

则正态分布

y为0时,不考虑y‘。y为1时,y'越接近1,越小,越靠近0,越大

把D最小化,迫使y'逼近y

对于一个句子,有若干单词组成。例如

C1: The dog laughs

C2: He laughs

那么计算P(C1) = P(The, Dog, laughs)的概率和P(C2) = P(He, laughs)的概率。

根据历史文本的统计学习。

可以得到P(C1)<<P(C2)

P('I love the game') = P('I')P('love')P('the')P('game')

其中P(<work>) = 频率/总单词数

计算一篇文章是积极的还是消极的。

P(y|x) = sigmod(wx)

x是文章内每个单词的频率

y表示积极和消极情感

其中P(xk|x1, x2,xk-1) = frequence(x1, x2 ,, xk)/frequence(x1, x2xk-1)

2-gram模型例子

把多个gram的模型进行线性整合

P(y|x1, x2, xn) = P(y)P(x1, x2, xn|y) / P(x1, x2, xn)

y代表是否是垃圾邮件

x代表单词

广州市长寿路 -》 广州市长|寿路

广州市长寿路 -》 广州市|长寿路

匹配词袋:广州市,广州市长,长寿路

使用最大匹配发,第二个分词更优

通过统计P(A|B),得出各个option的概率,取最大的概率,则为最后的分词

word => [0, 0 , 1, 0]

word => [0, 1, 0, 1, 0, ]

可以解决词相似性问题

计算附近词的频率

word => [0, 3, 0, 1, 0, ]

w是附近词的one-hot encoding

score是词的one-hot encoding

最后一层通过softmax,取拟合文本

最终中间层则为词向量

输入为词one-hot encoding

输出为附近此的one-hot encoding

最后通过softmax预测附近词

最后中间层则为结果词向量

混合模型是一种统计模型,问题中包含若干个子问题,每个子问题是一个概率分布,那么总问题就是若干个子问题的组合,也就是若干个子分部的组合,这样就形成了混合模型。

有红黑两种硬币,把它们放在盒子里,从盒子里随机抽取一个硬币并投币,抽到红色的概率是p,红色硬币正面的概率是q,黑色硬币正面的概率是m,假设我们没办法看到抽取出的硬币的颜色,只能看到最终是正面或者反面的结果,例如HTTHTTTTHHH (H:正面 T: 反面)。需要估计p,q,m三个参数。

此时可以计算出

通过EM算法迭代如下:

随机p q m

迭代以下过程:

计算上面table

p = (aC(正)+cC(反))/total

q = aC(正)/(aC正+cC正)

m = bC(正)/(bC正 + dC正)

假设有上述数据,需要用混合模型来逼近,通过分析,红色和蓝色数据分别为高斯正态分布,N(u, v)

此时可以得到如下表

p = pN红x/(pN红x+(1-p)N蓝x)

u = pN红x/n

v = pN红(x-u)^2/n

词性转换概率

词性到单词的转换概率

通过EM递归算法,训练以上参数,得到隐马尔可夫模型

PLSA主题模型

只统计词的频率,不计算词的相对位置

计算文档和单词频率的矩阵

进行奇异矩阵分解

得到A矩阵的压缩U,U中的k则为k个主题

通过分析,LSA得到的主题是跟现实无法关联,它只是一个量,而没有明显的意义。

PLSA为了解决此问题,引入概率模型,先确定主题个数

然后通过构建Doc->topic的概率table,和topic->word的概率table。

然后通过EM模型,得到这两个table的所有概率值。

进而得到文档的主题表示

PLSA的缺陷是,对于预测未知的doc,无法计算此文档的相关概率。随着doc数量的增加,PLSA模型的参数会线性增加,从而会造成过拟合。

LDA通过引入先验概率来克服PLSA的问题。

类似于编译原理的上下文无法句法分析,一颗语法树

通过对CFG引入概率参数

有了概率,可以计算每颗语法树的极大似然概率,并取最大概率的树为最终输出

上一个状态中间层的输出作为下一隐层的输入

类似于HMM的2-gram模型。t状态受到t-1时刻输出的影响,受t-k的输出的k越大,影响越小

由于RNN几乎只受到上一时刻的影响,而忽略了久远信息的影响。从而造成了一定的局限性。

LSTM通过引入长短记忆方法,来维持长记忆的信息。

通过训练核内的sigmod函数,使得LSTM可以根据不同的句子,有条件的保留和过滤历史信息,从而达到长记忆的功能。

GRU是LSTM的简化版,它只需要处理两个sigmod函数的训练,而LSTM需要三个sigmod函数的训练,减少了训练的参数,加快了训练的速度,但也损失了一部分模型的复杂,在处理较复杂问题时,没有LSTM那么好。

auto-encoder-decoder的特点是输出的单元数是固定的。对于一般自然语言处理,例如机器翻译,输入的单元个数跟输出单元的个数并不是一一对应的,此时就需要动态的生成输出单元。Seq2Seq通过动态的输出结束符,代表是否输出完成,达到可以动态的根据输入输出不同的单元个数。

seq2seq的缺点是,所有的输入序列都转化为单一的单元c,导致很多信息都将消失,对于不同的输出yi,它可能依赖的输入xj有可能不一样,此时通过加入注意力模型,通过对xi进行softmax处理,并加入到y权重的训练中,可以让不同的y,有不同的x对它进行影响

softmax的输入为输入单元x,和上一个输出单元y,联合产生softmax的权重,进而对不同的序列,对于同一个x,会有不同的注意力到输出

q = Wq(x)

k = Wk(x)

v = Wv(x)

x为词向量

通过训练,得到权重w,从而学习到这一层的softmax注意力参数

R是前一次encoder的输出

通过增加w的数量,产生多个z,并进行堆叠,通过前馈网络,最后产生z

在使用self attention处理句子时,是没有考虑单词在句子中的位置信息的。为了让模型可以加入考虑单词的位置信息,加入了位置编码的向量

计算如下:

pos为单词在句子中的位置

i为词向量的位置

d为句子的长度

位置编码加上词向量形成tranformer的输入

加入了归一化和残差网络

最终通过softmax,输出每个单词的概率,并最终输出单词

什么是自然语言处理(NLP)的未来前景?这件事让王印明白,培养孩子不见得只在理论课上下功夫,教育也不仅仅是老师在讲台上灌输,还应该跳出来思考如何培养学生的品质和能力,激发他们的探索欲,为未来埋下一颗种子。孩子们周末不回家,跑去看他做手工。王印决定带着他们“开干”。他们曾一起看过一部名为《武士刀传奇》的纪录片,片子里讲,一把武士刀会经过反复锻打,最后的成品有5000多层纹理截面。这个细节打动了一位小男孩,他说,老师,我也想做一把武士刀。

一、一般处理流程

语料获取 -> 文本预处理 -> 特征工程 -> 特征选择

1、语料获取

即需要处理的数据及用于模型训练的语料。

数据源可能来自网上爬取、资料积累、语料转换、OCR转换等,格式可能比较混乱。需要将url、时间、符号等无意义内容去除,留下质量相对较高的非结构化数据。

2、文本预处理

将含杂质、无序、不标准的自然语言文本转化为规则、易处理、标准的结构化文本。

①处理标点符号

可通过正则判定、现有工具(zhon包)等方式筛选清理标点符号。

②分词

将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列的过程。

一般看来英文较容易可通过空格符号分词,中文相对复杂,参考结巴分词、盘古分词、Ansj等工具。

常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。

③词性标注

为自然语言文本中的每个词汇赋予一个词性的过程,如名词、动词、副词等。可以把每个单词(和它周围的一些额外的单词用于上下文)输入预先训练的词性分类模型。

常用隐马尔科夫模型、N 元模型、决策树

④stop word

英文中含大量 a、the、and,中文含大量 的、是、了、啊,这些语气词、助词没有明显的实际意义,反而容易造成识别偏差,可适当进行过滤。

⑤词形还原

偏向于英文中,单数/复数,主动/被动,现在进行时/过去时/将来时等,还原为原型。

⑥统计词频

因为一些频率过高/过低的词是无效的,对模型帮助很小,还会被当做噪声,做个词频统计用于停用词表。

⑦给单词赋予id

给每一个单词一个id,用于构建词典,并将原来的句子替换成id的表现形式

⑧依存句法分析

通过分析句子中词与词之间的依存关系,从而捕捉到词语的句法结构信息(如主谓、动宾、定中等结构关系),并使用树状结构来表示句子的句法结构信息(如主谓宾、定状补等)。

3、特征工程

做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。

如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是数学中的向量。有两种常用的表示模型分别是词袋模型和词向量。

①词向量

词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。

②词袋模型

即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。统计词频这只是最基本的方式,TF-IDF 是词袋模型的一个经典用法。

常用的表示模型有:词袋模型(Bag of Word, BOW),比如:TF-IDF 算法;词向量,比如 one-hot 算法、word2vec 算法等。

4、特征选择

在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。

举个自然语言处理中的例子来说,我们想衡量like这个词的极性(正向情感还是负向情感)。我们可以预先挑选一些正向情感的词,比如good。然后我们算like跟good的PMI,用到点互信息PMI这个指标来衡量两个事物之间的相关性。

特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。

5、模型训练

在特征向量选择好了以后,接下来要做的事情是根据应用需求来训练模型,我们使用不同的模型,传统的有监督和无监督等机器学习模型,如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在分类、聚类、神经序列、情感分析等应用中都会用到。

当选择好模型后,则进行模型训练,其中包括了模型微调等。在模型训练的过程中要注意由于在训练集上表现很好,但在测试集上表现很差的过拟合问题以及模型不能很好地拟合数据的欠拟合问题。同时,也要防止出现梯度消失和梯度爆炸问题。

6、模型评估

在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。模型的评价指标主要有:错误率、精准度、准确率、召回率、F1 值、ROC 曲线、AUC 曲线等。

7、投产上线

模型的投产上线方式主要有两种:一种是线下训练模型,然后将模型进行线上部署提供服务;另一种是在线训练模型,在线训练完成后将模型 pickle 持久化,提供对外服务。

三、NLP应用方向

1、命名实体识别

指识别自然语言文本中具有特定意义的实体,主要包括人名、地名、机构名、时间日期等。

传统机器学习算法主要有HMM和CRF,深度学习常用QRNN、LSTM,当前主流的是基于bert的NER。

2、情感分析

文本情感分析和观点挖掘(Sentiment Analysis),又称意见挖掘(Opinion Mining)是自然语言处理领域的一个重要研究方向。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。

情感分析技术可以分为两类,一类是基于机器学习的方法,通过大量有标注、无标注的主观语料,使用统计机器学习算法,通过提取特征,进行文本情感分析。另一类是基于情感词典的方法,根据情感词典所提供的词的情感极性(正向、负向),从而进行不同粒度的(词语、短语、属性、句子、篇章)下的文本情感分析。

3、文章标签

文章标签是利用机器学习算法,对文章进行文字和语义的分析后,提取出若干个重要的词或者短语(关键短语)。关键短语是NLP基础的算法模块,有了关键短语,能为后续的搜索、推荐等更高级的应用提供有力的抓手。

适用场景:1、个性化推荐:通过对文章的标签计算,结合用户画像,精准的对用户进行个性化推荐;2、话题聚合:根据文章计算的标签,聚合相同标签的文章,便于用户对同一话题的文章进行全方位的信息阅读;3、搜索:使用中心词可以对query进行相似度计算、聚类、改写等,可以用于搜索相关性计算。

4、案件串并

①信息抽取

运用实体抽取、关系抽取,从案情中抽取关键信息,如从警情中可以抽取报警人项目、报警人电话、案发地址等信息

②实体对齐

相同的实体在不同的案情中会有不同的表述,会给串并带来困难。可针对地址、人名、组织名进行对齐处理。

③文本聚类

对于关键片段类信息,无法像实体那样对齐,需要借助文本聚类技术进行关联。

④构建图谱

将信息抽取结果存入图谱。每个警情id对应一个节点,实体、属性、关键片段作为节点,对齐的实体、同一类的文本存为同一个节点。

除了来自于从警情中抽取的信息,还可以将其他警务系统中存在的结构化数据导入(如来自户籍信息的人物关系),从而丰富图谱。

⑤图谱检索

完成以上工作,即完成了案件串并的必要基础建设,接下来通过图谱的查询功能自动完成案件的串并。首先需要设定串并的条件,案件串并的条件在警务实战中已有很多的积累,如“具有相似的作案手段”,又如“相似作案手段,嫌疑人有共同联系人”,只需要将这些条件用图谱查询语言表达出来。

关于NLP

NLP即神经语言程序学,它从诞生之日起就是研究我们的大脑如何运作,进而帮助我们可以配合和提升它的能力,达致人生能够更加成功快乐。

NLP的更高层次是心态的改变,“要改变别人,先改变自己。要使事情变得更好,先让自己变得更好”。NLP几乎涵盖了所有心智活动的范畴,包括你的心态、思维以及感觉,它发现了思维和情绪的规律,知道如何让你的理性与感性协调一致、身心合一,它让你“对自己头脑中所发生的事故做一些控制”,达到以弹性反应面对问题的境界。也就是说,先求个人的协调,再到专业的卓越,进而与周遭互动,终至精神的圆满与升华,用NLP来处理各种困局,如情感、生活、工作以及亲子关系等,就如利斧断木,效果惊人。

NLP的起源

美国加州大学Richard Bandler和John Grinder是NLP的创始人。20世纪70年代,他们曾共同研究一个课题:临床心理学为什么有极为卓越的治疗师?他们是如何成就卓越的?两人深入地研究了美国心理治疗领域的三位宗师:完形治疗法的Fritz Perls(伏伦兹•波尔斯),家庭治疗界的Virginia Satir(维珍尼亚·萨提亚),催眠治疗界的Milton Ericson伏伦兹•波尔斯。两人将三位宗师的语言、行为及思想模式进行分析和解码,并由此编辑成一套又一套可操作的技巧,并且定名为Neuro Linguistic Programming,NLP自此诞生。它用于改变人类经验行为的显著效果,对个人身心提升大有益处。

NLP能够在很短的时间里使一个人发生巨大的改变

1.在精神上:明白自己对这个世界能够产生的影响,了解活着的意思,掌握如何与身边的人、事物更好地配合。

2 在心态上:内心充满自信和平静,与其它人相处得更好,认识自己拥有的庞大能力,同时更能给别人空间。

3 在行为上:更懂得选择该选择的事去做,做的过程中有更多的乐趣和效果,每天所做的更能引领自己达到成功快乐的人生目标。

主要心理咨询技巧

1.知位置平衡法

2.一分为二法

3.面对的技巧

4.接受批评法

5.自我整合法

6.接受自己法(内在小孩)

7.催眠技巧

8.处理情绪的技巧

9混合法

10生理平衡法

11海灵格法

12现场抽离法

13重抽离法

14逐步抽离法

15增减经验元素

16扰乱经验元素法

17压力太大和推动力不足

18防弹衣法

19代入法

20重拾优良状态法

21借未来成功经验法

22三步借力法

23受历代父母力量法

24天地人法

25去除负能量法

26改变对死亡及失败的态度

27处理哀伤法(家人及重要人事物逝去的哀伤)

28接受父母法

29信念种入法

30情感关系的结束与放下

31化解情感痴缠法

32处理情感关系中投射的问题

33重塑印记法(时间线法)

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/3942504.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-19
下一篇2023-08-19

发表评论

登录后才能评论

评论列表(0条)

    保存