现代nlp算法是基于(现代nlp算法是基于什么算法)
大家好!今天让创意岭的小编来大家介绍下关于现代nlp算法是基于的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、cv和nlp是算法吗
cv和nlp是算法。cv是计算机视觉,而nlp是自然语言处理,两者都是计算机发展的重要算法分支,支撑计算机智能化发展的基石,所以cv和nlp是算法。
二、自然语言处理基础 - NLP
什么是自然语言处理
自然语言处理 (英语:natural language processing,缩写作 NLP) 是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。
自然语言处理有四大类常见的任务
什么是命名实体识别
命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。
什么是词性标注
词性标注 (pos tagging) 是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。
什么是文本分类
该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。
GLUE benchmark
General Language Understanding Evaluation benchmark,通用语言理解评估基准,用于测试模型在广泛自然语言理解任务中的鲁棒性。
LM:Language Model
语言模型,一串词序列的概率分布,通过概率模型来表示文本语义。
语言模型有什么作用?通过语言模型,可以量化地衡量一段文本存在的可能性。对于一段长度为n的文本,文本里每个单词都有上文预测该单词的过程,所有单词的概率乘积便可以用来评估文本。在实践中,如果文本很长,P(wi|context(wi))的估算会很困难,因此有了简化版:N元模型。在N元模型中,通过对当前词的前N个词进行计算来估算该词的条件概率。
重要文献与资料
https://segmentfault.com/a/1190000015460828
https://segmentfault.com/a/1190000015284996
https://segmentfault.com/a/1190000015285996
我们介绍词的向量表征,也称为 word embedding 。词向量是自然语言处理中常见的一个操作,是搜索引擎、广告系统、推荐系统等互联网服务背后常见的基础技术。
在这些互联网服务里,我们经常要比较两个词或者两段文本之间的相关性。为了做这样的比较,我们往往先要把词表示成计算机适合处理的方式。最自然的方式恐怕莫过于向量空间模型(vector space model)。 在这种方式里,每个词被表示成一个实数向量(one-hot vector),其长度为字典大小,每个维度对应一个字典里的每个词,除了这个词对应维度上的值是1,其他元素都是0。
One-hot vector虽然自然,但是用处有限。比如,在互联网广告系统里,如果用户输入的query是“母亲节”,而有一个广告的关键词是“康乃馨”。虽然按照常理,我们知道这两个词之间是有联系的——母亲节通常应该送给母亲一束康乃馨;但是这两个词对应的one-hot vectors之间的距离度量,无论是欧氏距离还是余弦相似度(cosine similarity),由于其向量正交,都认为这两个词毫无相关性。 得出这种与我们相悖的结论的根本原因是:每个词本身的信息量都太小。所以,仅仅给定两个词,不足以让我们准确判别它们是否相关。要想精确计算相关性,我们还需要更多的信息——从大量数据里通过机器学习方法归纳出来的知识。
在机器学习领域里,各种“知识”被各种模型表示,词向量模型(word embedding model)就是其中的一类。通过词向量模型可将一个 one-hot vector映射到一个维度更低的实数向量(embedding vector),如embedding(母亲节)=[0.3,4.2,−1.5,...],embedding(康乃馨)=[0.2,5.6,−2.3,...]。在这个映射到的实数向量表示中,希望两个语义(或用法)上相似的词对应的词向量“更像”,这样如“母亲节”和“康乃馨”的对应词向量的余弦相似度就不再为零了。
词向量模型可以是概率模型、共生矩阵(co-occurrence matrix)模型或神经元网络模型。在用神经网络求词向量之前,传统做法是统计一个词语的共生矩阵X。
X是一个|V|×|V| 大小的矩阵,Xij表示在所有语料中,词汇表V(vocabulary)中第i个词和第j个词同时出现的词数,|V|为词汇表的大小。对X做矩阵分解(如奇异值分解),得到的U即视为所有词的词向量:
但这样的传统做法有很多问题:
基于神经网络的模型不需要计算和存储一个在全语料上统计产生的大表,而是通过学习语义信息得到词向量,因此能很好地解决以上问题。
神经网络
当词向量训练好后,我们可以用数据可视化算法t-SNE[ 4 ]画出词语特征在二维上的投影(如下图所示)。从图中可以看出,语义相关的词语(如a, the, these; big, huge)在投影上距离很近,语意无关的词(如say, business; decision, japan)在投影上的距离很远。
另一方面,我们知道两个向量的余弦值在[−1,1]的区间内:两个完全相同的向量余弦值为1, 两个相互垂直的向量之间余弦值为0,两个方向完全相反的向量余弦值为-1,即相关性和余弦值大小成正比。因此我们还可以计算两个词向量的余弦相似度。
模型概览
语言模型
在介绍词向量模型之前,我们先来引入一个概念:语言模型。 语言模型旨在为语句的联合概率函数P(w1,...,wT)建模, 其中wi表示句子中的第i个词。语言模型的目标是,希望模型对有意义的句子赋予大概率,对没意义的句子赋予小概率。 这样的模型可以应用于很多领域,如机器翻译、语音识别、信息检索、词性标注、手写识别等,它们都希望能得到一个连续序列的概率。 以信息检索为例,当你在搜索“how long is a football bame”时(bame是一个医学名词),搜索引擎会提示你是否希望搜索"how long is a football game", 这是因为根据语言模型计算出“how long is a football bame”的概率很低,而与bame近似的,可能引起错误的词中,game会使该句生成的概率最大。
对语言模型的目标概率P(w1,...,wT),如果假设文本中每个词都是相互独立的,则整句话的联合概率可以表示为其中所有词语条件概率的乘积,即:
然而我们知道语句中的每个词出现的概率都与其前面的词紧密相关, 所以实际上通常用条件概率表示语言模型:
N-gram neural model
在计算语言学中,n-gram是一种重要的文本表示方法,表示一个文本中连续的n个项。基于具体的应用场景,每一项可以是一个字母、单词或者音节。 n-gram模型也是统计语言模型中的一种重要方法,用n-gram训练语言模型时,一般用每个n-gram的历史n-1个词语组成的内容来预测第n个词。
Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Language Models [ 1 ] 中介绍如何学习一个神经元网络表示的词向量模型。文中的神经概率语言模型(Neural Network Language Model,NNLM)通过一个线性映射和一个非线性隐层连接,同时学习了语言模型和词向量,即通过学习大量语料得到词语的向量表达,通过这些向量得到整个句子的概率。因所有的词语都用一个低维向量来表示,用这种方法学习语言模型可以克服维度灾难(curse of dimensionality)。注意:由于“神经概率语言模型”说法较为泛泛,我们在这里不用其NNLM的本名,考虑到其具体做法,本文中称该模型为N-gram neural model。
在上文中已经讲到用条件概率建模语言模型,即一句话中第t个词的概率和该句话的前t−1个词相关。可实际上越远的词语其实对该词的影响越小,那么如果考虑一个n-gram, 每个词都只受其前面n-1个词的影响,则有:
给定一些真实语料,这些语料中都是有意义的句子,N-gram模型的优化目标则是最大化目标函数:
其中f(wt,wt−1,...,wt−n+1)表示根据历史n-1个词得到当前词wt的条件概率,R(θ)表示参数正则项。
Continuous Bag-of-Words model(CBOW)
CBOW模型通过一个词的上下文(各N个词)预测当前词。当N=2时,模型如下图所示:
具体来说,不考虑上下文的词语输入顺序,CBOW是用上下文词语的词向量的均值来预测当前词。
其中xt为第t个词的词向量,分类分数(score)向量 z=U∗context,最终的分类y采用softmax,损失函数采用多类分类交叉熵。
Skip-gram model
CBOW的好处是对上下文词语的分布在词向量上进行了平滑,去掉了噪声,因此在小数据集上很有效。而Skip-gram的方法中,用一个词预测其上下文,得到了当前词上下文的很多样本,因此可用于更大的数据集。
如上图所示,Skip-gram模型的具体做法是,将一个词的词向量映射到2n个词的词向量(2n表示当前输入词的前后各n个词),然后分别通过softmax得到这2n个词的分类损失值之和。
我们介绍了词向量、语言模型和词向量的关系、以及如何通过训练神经网络模型获得词向量。在信息检索中,我们可以根据向量间的余弦夹角,来判断query和文档关键词这二者间的相关性。在句法分析和语义分析中,训练好的词向量可以用来初始化模型,以得到更好的效果。在文档分类中,有了词向量之后,可以用聚类的方法将文档中同义词进行分组,也可以用 N-gram 来预测下一个词。希望大家在本章后能够自行运用词向量进行相关领域的研究。
参考: https://www.paddlepaddle.org.cn/documentation/docs/zh/user_guides/simple_case/word2vec/README.cn.html
三、文本挖掘与自然语言处理
文本数据挖掘 是一种利用计算机处理技术从文本数据中抽取有价值的信息和知识的应用驱动型学科。(文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程)
文本数据挖掘处理的数据类型是文本数据, 属于数据挖据的一个分支 ,与机器学习、自然语言处理、数理统计等学科具有紧密联系。
文本挖掘在很多应用中都扮演重要角色,例如智能商务(例如客户关系管理)、信息检索(例如互联网搜索)等。
文本数据挖掘需要从三个层面进行理解:
自然语言处理(NLP) 关注的是人类的自然语言与计算机设备之间的相互关系。NLP是计算机语言学的重要方面之一,它同样也属于计算机科学和人工智能领域。而 文本挖掘 和 NLP 的存在领域类似,它关注的是识别文本数据中有趣并且重要的模式。
但是,这二者仍有不同。首先,这两个概念并没有明确的界定(就像“数据挖掘”和“数据科学”一样),并且在不同程度上二者相互交叉。
如果原始文本是数据,那么 文本挖掘就是信息 , NLP就是知识 ,也就是语法和语义的关系。
文本挖掘利用智能算法,如神经网络、基于案例的推理、可能性推理等,并结合文字处理技术,分析大量的非结构化文本源(如文档、电子表格、客户电子邮件、问题查询、网页等),抽取或标记关键字概念、文字间的关系,并按照内容对文档进行分类,获取有用的知识和信息。
文本挖掘是一个多学科混杂的领域,涵盖了多种技术,
信息检索 是指文献等信息资源的整理和搜索,其主要目的可以概括为:按照用户的具体需要,采用一些检索方法,把所有相关的文献都检索出来,同时摒弃掉那些看似相关实则不符合要求的文档。
我们能否为文本数据的处理制作一个高效并且通用的框架呢?我们发现,处理文本和处理其他非文本的任务很相似
以下就是处理文本任务的几大主要步骤:
1. 数据收集
获取或创建语料库,来源可以是邮箱、英文维基百科文章或者公司财报,甚至是莎士比亚的作品等等任何资料。
2. 数据预处理
在原始文本语料上进行预处理,为文本挖掘或NLP任务做准备
数据预处理分为好几步,其中有些步骤可能适用于给定的任务,也可能不适用。但通常都是标记化、归一化和替代的其中一种。
文本挖掘预处理 :文本挖掘是从数据挖掘发展而来,但并不意味着简单地将数据挖掘技术运用到大量文本的集合上就可以实现文本挖掘,还需要做很多准备工作。
文本挖掘的准备工作 由 文本收集 、 文本分析 和 特征修剪 三个步骤组成
文本分析 是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。文本(text)与 讯息(message)的意义大致相同,指的是由一定的符号或符码组成的信息 结构体 ,这种结构体可采用不同的表现形态,如语言的、文字的、影像的等等。文本是由特定的人制作的,文本的语义不可避免地会反映人的特定立场、观点、价值和利益。因此,由文本内容分析,可以推断文本提供者的 意图 和目的。
特征选择
将它们从一个无结构的原始文本转化为结构化的计算机可以识别处理的信息,即对文本进行科学的抽象,建立它的数学模型,用以描述和代替文本。使计算机能够通过对这种模型的计算和操作来实现对文本的识别。由于文本是非结构化的数据,要想从大量的文本中挖掘有用的信息就必须首先将文本转化为可处理的结构化形式。目前人们通常采用向量空间模型来描述文本向量,但是如果直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,那么这个向量的维度将是非常的大。这种未经处理的文本矢量不仅给后续工作带来巨大的计算开销,使整个处理过程的效率非常低下,而且会损害分类、聚类算法的精确性,从而使所得到的结果很难令人满意。因此,必须对文本向量做进一步净化处理,在保证原文含义的基础上,找出对文本特征类别最具代表性的文本特征。为了解决这个问题,最有效的办法就是通过特征选择来降维。
目前有关文本表示的研究主要集中于文本表示模型的选择和特征词选择算法的选取上。用于表示文本的基本单位通常称为 文本的特征或特征项 。特征项必须具备一定的特性:
在中文文本中可以采用 字、词或短语 作为表示文本的特征项。相比较而言,词比字具有更强的表达能力,而词和短语相比,词的切分难度比短语的切分难度小得多。因此,目前大多数中文文本分类系统都采用词作为特征项,称作特征词。这些特征词作为文档的中间表示形式,用来实现文档与文档、文档与用户目标之间的相似度计算 。如果把所有的词都作为特征项,那么特征向量的维数将过于巨大,从而导致计算量太大,在这样的情况下,要完成文本分类几乎是不可能的。
特征抽取的主要功能是在不损伤文本核心信息的情况下尽量减少要处理的单词数,以此来降低向量空间维数,从而简化计算,提高文本处理的速度和效率。文本特征选择对文本内容的过滤和分类、聚类处理、自动摘要以及用户兴趣模式发现、知识发现等有关方面的研究都有非常重要的影响。通常根据某个特征评估函数计算各个特征的评分值,然后按评分值对这些特征进行排序,选取若干个评分值最高的作为特征词,这就是 特征选择(Feature Selection) 。
特征选取方式
常见的有4种:
随着网络知识组织、人工智能等学科的发展,文本特征提取将向着数字化、智能化、语义化的方向深入发展,在社会知识管理方面发挥更大的作用。
努力消除歧义 是文本预处理很重要的一个方面,我们希望保留原本的含义,同时消除噪音。为此,我们需要了解:
3.数据挖掘和可视化
无论我们的数据类型是什么,挖掘和可视化是探寻规律的重要步骤
常见任务可能包括可视化字数和分布,生成wordclouds并进行距离测量
4.模型搭建
这是文本挖掘和NLP任务进行的主要部分,包括训练和测试。在适当的时候还会进行特征选择和工程设计
语言模型 :有限状态机、马尔可夫模型、词义的向量空间建模
机器学习分类器 :朴素贝叶斯、逻辑回归、决策树、支持向量机、神经网络
序列模型 :隐藏马尔可夫模型、循环神经网络(RNN)、长短期记忆神经网络(LSTMs)
5. 模型评估
评价模型是否达到预期?其度量标准将随文本挖掘或NLP任务的类型而变化。
四、nlp实习面试算法题不会能过嘛
不能过
nlp算法
人工智能算法大体上来说可以分类两类:基于统计的机器学习算法(MachineLearning)和深度学习算法(DeepLearning)
总的来说,在sklearn中机器学习
算法大概的分类如下:
1.纯算法类
(1).回归算法
(2).分类算法
(3).聚类算法
(4)降维算法
(5)概率图模型算法
(6)文本挖掘算法
(7)优化算法
(8)深度学习算法
2.建模方面
(1).模型优化
(2).数据预处理觉得有用点个赞吧
以上就是关于现代nlp算法是基于相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
现代信息技术的核心是(现代信息技术的核心是什么多媒体技术和网络技术)
视频号电脑直播需要什么条件(视频号电脑直播需要什么条件才能开播)