NLP系列——概述
Posted snailt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLP系列——概述相关的知识,希望对你有一定的参考价值。
1、基本原理
- S 表示一连串特定顺序排列的词 , ,…,
- 使用链式法则计算词序列 S 发生的概率
- 由于上述条件概率过于复杂,因此引入马尔科夫假设
- 马尔科夫假设:第 I 个词仅与前面的 k 个词有关
- 取 k=1,将上式简化为
- 计算
- 对大量文本进行阅读,并统计得到
- 在文本中出现的概率
- 词序列 在文本中出现的概率
- 则由贝叶斯公式可得
- 对大量文本进行阅读,并统计得到
2、案例:拼写纠正
- 代码:https://norvig.com/spell-correct.html
- 原理
- 已知用户当前的拼写为 w(假设为 hte)
- 根据拼写 w(hte),猜测出正确的拼写 c(实际应该是 the)
- 此处即求条件概率 最大时,对于的拼写 c
- 根据贝叶斯公式,可得
- 由于对于所有 , 的值是不变的,因此仅需求得 最大值对应的 c 即可
- 是正确单词出现的概率,可通过统计得到
- 是正确单词变成错误单词的概率
- 如何找出 最大的单词 c
- 找出与拼写 编辑距离最近的一系列“正确单词”
- 例
- 找出与 编辑距离为 1 的所有“正确单词”
- 在这些正确单词中,选择统计频率 最高的单词作为纠正后的新单词
- 若编辑距离为 1 的拼写中没有“正确单词”,则增加编辑距离,并重复上述
- 编辑距离
- 指从字符串A到字符串B,中间需要的最少操作次数
- 例:
- the 到 hte 只需要操作一次(交换一次字母)
- they到 hte则需要操作两次(删除一个字母,再交换一次字母)
3、文本分类
- 各种分类算法:https://www.cluebenchmarks.com/classification.html
- 基于文本内容给文本打上标签,本质的问题是判断文本之间的相似性
- 垃圾邮件过滤
- 新闻分类
- 对电商产品的评论进行情感分析
- 对用户阅读内容建立用户画像
- 例
- 使用 tf-id 和 Kmeans 聚类
- tf-id
- 把文本转换成向量
- Kmeans 聚类
- 通过比较向量的相似性,来比较文本的相似性
- 根据相似型进行聚类,形成多个分类
- tf-id
- 使用 tf-id 和 Kmeans 聚类
4、机器翻译
- seq2seq 代码:https://github.com/graykode/nlp-tutorial
- 该模型是基于深度学习的(RNN,LSTM)
5、词向量(Word Embedding)
- 把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中
- 每个单词或词组被映射为实数域上的向量
- 例:
- 常见的性格测试可能主要就是从以下几个方面来打分:
- <openness,conscientiousness,extraversion,agreeableness, neuroticism>
- 大概就是开明、尽责、外向、可亲、神经质的意思
- 每一项的得分从0~1
- 如果一个人的分数是<1,1,1,1,0>,那么估计大家都乐意跟他做朋友
- 这就是使用一个向量来表示一个人
- 同样的,我们可以通过一个向量来描述一个词
- 常见的性格测试可能主要就是从以下几个方面来打分:
6、自然语言生成(NLG)
- 基于 GPT2 的 NLG
- 人工智能定义的 NLG,是以自然语言形式产生有意义的短语和句子的过程
- NLG 可能被视为自然语言理解(NLU)相反的操作
- 在 NLU 中,系统需要消除输入句子的歧义以产生机器表示语言
- NLU 需要处理模棱两可或错误的用户输入
- NLU 通常会尝试对所表达的想法产生单一的,标准化的表示形式
- 在 NLG中,系统需要做出如何将概念变为语言
- 系统要通过 NLG 表达的想法通常是众所周知的
- NLG 需要从许多潜在的表示形式中选择一种特定的,自洽的文本表示形式
- 在 NLU 中,系统需要消除输入句子的歧义以产生机器表示语言
7、人机对话系统
- 基于 GPT2 的问答系统:https://github.com/yangjianxin1/GPT2-chitchat
- 分类
- 不局限话题的聊天
- 任务驱动的多轮对话
- 问答系统
以上是关于NLP系列——概述的主要内容,如果未能解决你的问题,请参考以下文章