首页 > 编程知识 正文

nlp自然语言处理视频,自然语言处理nlp应用

时间:2023-05-04 16:16:23 阅读:142231 作者:457

一.文本处理流程文本清洗:清除html标签和转义字符、多余空格、必要时邮箱、账号、网址、手机号码、操作信息等信息

预处理:删除停止词、加载自定义词典(实体词典、垂直领域词典)、分词

特征提取:关键词、实词

建模:文本分类、文本聚类、情感分析、标签提取

优化:禁用词典和自定义词典的清洗和丰富、文本标签的清洗、模型的调整

效果评估:满足在线使用要求、准确性和速度

在线部署: api接口部署

二、NLP算法的深度学习在自然语言处理中,除了在分类问题上能够取得较好效果以外,例如单选问题:情感分类、文本分类、正确答案分类问题等,特别是信息抽取的组提取各种评价集大多是人工制作的,人工制作的多为在工业场景下很难达到实用水准,省略了实际生产环节的许多环节。 在评估环节达成的许多state-of-art方法,干净环境下的较为规范的文本,往往只是为了打印排行榜而打印排行榜。 目前,在在真实应用场景下泛化能力很差中,数据大多来自结构化数据,半结构化信息提取次之,非结构化数据提取最少。 半结构化信息提取,即表信息提取是最危险的,如果一个单元出错,很可能所有的数据都是错误的。 在非结构化提取中,知识图谱的构建环节工业场景中的实体识别和实体关系识别难度相当大、标准装备中的命名实体识别实际上是辅助手段,http://www.Sina.com 因此,BILSTM+CRF是特别重要的。 目前,关于工业界还是以领域实体字典匹配为主问题,在严格意义上不属于推理范畴,最多只相当于生产环节中的实体识别工作中,基础性词性的构建和扩展工作,像评价中的知识推理任务一样,是三元组补问题。 目前知识图谱推理还处于初期阶段。 舆情分析仍处于知识补全问题深层次事件演化和对象层次情感分析的初级阶段。 3358www.Sina.com/本质上只是一个编码器,只是舆情分析,并不是什么也做不了,只是编码能力强,向量表达意义丰富,但很多人都很混乱学术界与业界最大的不同在于,学术界以探索前沿为目的,提出新概念,画草图结束,不长眼睛。 结束了这个战斗,就不知道下一战要做什么,下一战要去哪里,什么时候战斗,或者是单枪匹马地改变阵地再战斗。 业内往往面临生存问题,需要考虑实际问题,还是以解决实际问题为主,所以利用以表层计量为主,配以浅层句子级情感分析和主题挖掘技术的分析结构化数据,特别是百科全书类的infobox数据进行收集,Neo4j妈妈基于这样的知识图谱,再制作简单的问答系统,标榜自己是基于知识图谱的智能答疑系统,实际上是很肤浅的。 知识地图不像结构化知识的可视化(不是两点的几条边)那么简单。 那叫知识可视化,不是知识图谱。 知识图谱的核心在于知识的图谱化,特征在于知识的表示方法和图谱存储结构,前者决定知识的抽象表示维度,后者决定知识的可行性、图谱算法(图谱扫描、联系图谱、最短路径)。 基于图像存储结构,进行知识游走,进行知识特征和未知知识的预测。 新奇,大家都能获得的知识,往往价值很低。 知识地图也是如此。 只有建立具有专业性数据障碍的知识地图,才能带来商业价值。 目前,3358www.Sina.com/大部分为人工智能障碍,通用闲谈型问答多为智能障碍,Bert是word2vec的升级版等问题层出不穷直截了当的答疑才是出路,但真正需要注意的事情很少,一般都是demo水平。 大多数微信自然语言处理软件都要看,是浪费时间。 特别是内容分析,多是抓词汇、数词、提取关键词,进行情感分析,绘制条形图、折线图、主题词云,分析方法千篇一律。 必须从根本上进行方法创新,才能营养,从根本上营养。 文本分析应从浅层分析走向深层分析,更好地挖掘文本的语义信息。 目前,百科全书类知识图谱的构建工作很多,具有重复性的工作也不少。

基于开放类百科全书知识图谱的数据获取接口在复旦等地已经被公开,可以在基本概念上应用于实体检索、实体属性检索等,但目前只能进行一次。 基于知识图谱答疑目前的难点是两个方面:1)多度也称为多跳问题,例如,可以回答14个hxdxs的妻子是谁,但不能回答hxdxs的妻子是谁,本质上是实体和属性,以及实体和实体2 )多次答疑。 分成多个圈。 一个是指互补问答。 就像前文问北京的天气一样,后者省略了“的天气”这个词,只说“北京”。 这需要意图判定

并准确加载相应的问答槽。另一种是追问式多轮问答,典型的在天气查询或者酒店预订等垂直性问答任务上。大家要抓住这两个方面去做。关系挖掘是信息抽取的重要里程碑,理解了实体与实体、实体与属性、属性与属性、实体与事件、事件与事件的关系是解决真正语义理解的基础,但目前,这方面,在工业界实际运用中,特定领域中模板的性能要比深度学习多得多,学界大多采用端到端模型进行实验,在这方面还难以超越模版性能。1、TF-IDF

1)原理:词频-逆文档频率;一种用于信息检索与文本挖掘的常用加权技术;一种统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度,字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

2)主要思想:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

3)公式:

          TF=在某一文本中词条w出现的次数/该文本中所有的词条数目

          IDF=log(语料库的文档总数/(包含词条w的文档数+1)),避免分母为0

          TF-IDF=TF*IDF

4)优缺点:实现简单,容易理解,但未考虑词语语义信息,无法处理一词多义与一义多词

5)应用:搜索引擎,关键词提取,文本相似性计算,文本摘要

6)python调参:

提取关键词

keywords = jieba.analyse.extract_tags(sentence, topK=10, withWeight=False, allowPOS=())    # 主要调参指定词性的词

提取特征向量

tfidf = TfidfVectorizer(ngram_range=(1, 2), min_df=1, max_df=0.9, token_pattern=r"(?u)bw+b", stop_words=stopwords, max_features=1000)
'''
    ngram_range=(1, 2) : 词组长度为1和2
    min_df : 忽略出现频率小于1的词
    max_df : 忽略在百分之九十以上的文本中出现过的词
    token_pattern=r"(?u)bw+b" : 包含单字
    stop_words : 停用词表
    max_features=1000: 最大特征向量维度
'''

2、Textrank

1)原理:将每个句子看成一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。通过pagerank算法(两个假设:数量假设,页面A被其他网页链接越多,页面A越重要;质量假设,质量越高的页面链接指向页面A,页面A越重要)计算得到的重要性最高的若干句子可以当作摘要。PageRank主要用于对在线搜索结果中的网页进行排序

PageRank的核心公式是PageRank值的计算公式。公式如下:

其中,PR(Vi)表示结点Vi的rank值,In(Vi)表示结点Vi的前驱结点集合,Out(Vj)表示结点Vj的后继结点集合。
这个公式来自于《统计学习方法》,等号右边的平滑项(通过某种处理,避免一些突变的畸形值,尽可能接近实际情况)不是(1-d),而是(1-d)/n。

是被研究的页面,是链入页面的数量,是链出页面的数量,而N是所有页面的数量。

在文本自动摘要的案例中,TextRank和PageRank的相似之处在于:

用句子代替网页

任意两个句子的相似性等价于网页转换概率

相似性得分存储在一个方形矩阵中,类似于PageRank的矩阵M

不过公式有些小的差别,那就是用句子的相似度类比于网页转移概率,用归一化的句子相似度代替了PageRank中相等的转移概率,这意味着在TextRank中,所有节点的转移概率不会完全相等。

TextRank算法是一种抽取式的无监督的文本摘要方法。让我们看一下我们将遵循的TextRank算法的流程:

3、知识库构建 停用词库语料库自定义分词词库人物库垂直领域词库4、知识图谱 三元组NEO4教程:Neo4j是一个世界领先的开源图形数据库。 它是由Neo技术使用Java语言完全开发的。

CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。

Neo4j CQL:

它是Neo4j图形数据库的查询语言。

它是一种声明性模式匹配语言

它遵循SQL语法。

它的语法是非常简单且人性化、可读的格式。

5、预训练模型

语言模型

预训练模型(Pre-trained Models,PTMs)

深度学习时代,为了充分训练深层模型参数防止过拟合,通常需要更多标注数据喂养。在NLP领域,标注数据更是一个昂贵资源。PTMs从大量无标注数据中进行预训练使许多NLP任务获得显著的性能提升。总的来看,预训练模型PTMs的优势包括:

在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务;为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛;是一种有效的正则化手段,避免在小数据集上过拟合(一个随机初始化的深层模型容易对小数据集过拟合);

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量,这也是分布式表示:向量的每一维度都没有实际意义,而整体代表一个具体概念。

分布式表示相较于传统的独热编码(one-hot)表示具备更强的表示能力,而独热编码存在维度灾难和语义鸿沟(不能进行相似度计算)等问题。传统的分布式表示方法,如矩阵分解(SVD/LSA)、LDA等均是根据全局语料进行训练,是机器学习时代的产物。PTMs也属于分布式表示的范畴。

PTMs两大范式:「浅层词嵌入」和「预训练编码器」。

浅层词嵌入( Non-Contextual Embeddings):即词向量,其主要特点是学习到的是上下文独立的静态词嵌入,其主要代表如下。这一类词嵌入通常采取浅层网络进行训练,而应用于下游任务时,整个模型的其余部分仍需要从头开始学习。因此,对于这一范式的PTMs没有必要采取深层神经网络进行训练,采取浅层网络加速训练也可以产生好的词嵌入。

NNLMword2vec(CBOW、Skip-Gram)Glove

浅层词嵌入的主要缺陷为:

词嵌入与上下文无关,每个单词的嵌入向量始终是相同,因此不能解决一词多义的问题。通常会出现OOV问题(out of vocabulary,未登录词),为了解决这个问题,相关文献提出了字符级表示或sub-word表示,如CharCNN 、FastText和 Byte-Pair Encoding 。

预训练编码器(Contextual Embeddings:主要目的是通过一个预训练的编码器能够输出上下文相关的词向量,解决一词多义的问题。这一类预训练编码器输出的向量称之为「上下文相关的词嵌入」。这一类「预训练编码器」范式的PTMs主要代表有ELMOGPT-1BERTXLNet等。

CNN(序列模型):TEXTCNN,设定窗口,然后对窗口内的若干词进行卷积操作,得到这个窗口内的词的嵌入表示RNN(序列模型):基于LSTM/GRU的,基于单向(从左向右)或者双向的RNN模型,对整个序列进行建模,得到每个词的语境下的嵌入表示全连接自注意力模型(self-attention,非序列化模型):使用全连接图,来建立任意两个词之间的关系,并通过大规模无标注数据,让模型自动学习结构化信息。通常,两个词之间的”连接权重“会被自注意力机制动态计算。典型的代表就是Transformer中的multi-head self-attention网络结构了ELMOBERTGPT

上图中,(a)里面的卷积网络,可以认为窗口为3,例如 h2 由 x1、x2、x3 决定。(b)里面的 h2 由 h1 ,h3  和 x2 决定,具体可以使用LSTM, GRU等网络结构。(c)有点复杂,可以结合Transformer网络结构来理解。

分析:

序列模型:局部性偏见,难于捕捉长距离交互;但是容易训练,并在若干NLP任务上取得了不错的结果;

非序列模型:(代表是Transformer)更强大,使用的参数更多,可以更好的覆盖长距离依赖的问题;但是,需要大规模训练语料(可以是unlabel的!),容易在中小规模数据上过拟合。

当然,Transformer已经是目前几年的研究热点,不单单在NLP领域,在CV领域和speech领域也越来越引起重视,俨然成为了“中流砥柱”!

上图给出了NLP各种编码器间的对比。PTMs中预训练编码器通常采用LSTM和Transformer(Transformer-XL),其中Transformer又依据其attention-mask方式分为Transformer-Encoder和Transformer-Decoder两部分。此外,Transformer也可看作是一种图神经网络GNN。

三、参考文献

实话实说:中文自然语言处理的N个真实情况

NLP中预训练模型的综述I

PTMs:NLP预训练模型的全面总结

2020年3月18日,邱锡鹏老师发表了关于NLP预训练模型的综述《Pre-trained Models for Natural Language Processing: A Survey》,这是一篇全面的综述,系统地对PTMs进行了归纳分类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。