自然语言处理(NLP)有多种商用用途。
语音识别:在智能语音助手、智能音箱、智能家居控制等场景中,语音识别技术可以帮助用户通过语音与设备进行交互。
语音合成:可以用于语音助手、智能家居、汽车导航系统等场景,帮助用户通过语音控制和了解信息。
自然语言理解:可以用于问答系统、智能客服、搜索引擎、智能家居等场景,帮助用户理解自然语言语境,并自动提取信息。
机器翻译:在移动应用、网站和跨境电商中广泛应用,帮助用户翻译文本和语音,提高多语言交流的效率。
文本分类和情感分析:可用于新闻聚合、社交媒体监测、客户反馈分析等场景,帮助企业了解客户的需求和情绪,改善客户体验。
总之,自然语言处理技术在商业领域有着广泛的应用,包括语音识别、语音合成、自然语言理解、机器翻译、文本分类和情感分析等,能够帮助用户更好地理解和使用自然语言,并帮助企业更好地了解客户需求和情绪,提高客户体验。
一、一般处理流程
语料获取 -> 文本预处理 -> 特征工程 -> 特征选择
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的四大任务如下:
序列标注(Sequence labeling)是我们在解决NLP问题时经常遇到的基本问题之一。在序列标注中,我们想对一个序列的每一个元素标注一个标签。一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。
序列标注一般可以分为两类:
命名实体识别(Named entity recognition, NER)是信息提取问题的一个子任务,需要将元素进行定位和分类,如人名、组织名、地点、时间、质量等。
举个NER和联合标注的例子。一个句子为:Yesterday , George Bush gave a speech 其中包括一个命名实体:George Bush。我们希望将标签“人名”标注到整个短语“George Bush”中,而不是将两个词分别标注。这就是联合标注。
11 BIO标注
解决联合标注问题最简单的方法,就是将其转化为原始标注问题。标准做法就是使用BIO标注。
BIO标注:将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。
比如,我们将 X 表示为名词短语(Noun Phrase, NP),则BIO的三个标记为:
因此可以将一段话划分为如下结果:
我们可以进一步将BIO应用到NER中,来定义所有的命名实体(人名、组织名、地点、时间等),那么我们会有许多 B 和 I 的类别,如 B-PERS、I-PERS、B-ORG、I-ORG等。然后可以得到以下结果:
[上传失败(image-b1cfb3-1609330627120)]
12 序列标注常用模型
选择双向LSTM的原因是:当前词的tag和前后文都有关。
13 序列标注具体任务
(1)分词
(2)词性标注(Part-of-Speech tagging ,POS tagging)
(3)命名实体标注(name entity recognition, NER)
21 分类的具体任务
(1)文本分类、情感分类
31 具体任务
(1)句法分析、蕴含关系判断(entailment)
这类任务一般直接面向普通用户,提供自然语言处理产品服务的系统级任务,会用到多个层面的自然语言处理技术。
41 具体任务
(1)机器翻译(Machine Translation,MT)
Encoder-Decoder的最经典应用,事实上这一结构就是在机器翻译领域最先提出的。
(2)文本摘要、总结(Text summarization/Simplication)
输入是一段文本序列,输出是这段文本序列的摘要序列。
(3)阅读理解(Reading Comprehension)
将输入的文章和问题分别编码,再对其进行解码得到问题的答案。
(4)语音识别
输入是语音信号序列,输出是文字序列。
(5)对话系统(Dialogue Systerm)
输入的是一句话,输出是对这句话的回答。
(6)问答系统(Question-Answering Systerm)
针对用户提出的问题,系统给出相应的答案。
(7)自动文章分级(Automatic Essay Grading)
给定一篇文章,对文章的质量进行打分或分级。
1 词法分析(Lexical Analysis):对自然语言进行词汇层面的分析,是NLP基础性工作
2 句子分析(Sentence Analysis):对自然语言进行句子层面的分析,包括句法分析和其他句子级别的分析任务
3 语义分析(Semantic Analysis):对给定文本进行分析和理解,形成能勾够表达语义的形式化表示或分布式表示
4 信息抽取(Information Extraction):从无结构文本中抽取结构化的信息
5 顶层任务(High-level Tasks):直接面向普通用户,提供自然语言处理产品服务的系统级任务,会用到多个层面的自然语言处理技术
1序列标注中的BIO标注介绍,地址: https://blogcsdnnet/HappyRocking/article/details/79716212
2 http://nlpersblogspotcomau/2006/11/getting-started-in-sequence-labelinghtml
3NLP 四大任务,地址: https://wwwdazhuanlancom/2019/08/21/5d5ca1e2826b9/
4NLP基本任务,地址: https://blogcsdnnet/lz_peter/article/details/81588430
5微信研究员解析深度学习在NLP中的发展和应用,地址: https://educsdnnet/course/play/8673
6从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 - 张俊林的文章 - 知乎 https://zhuanlanzhihucom/p/49271699
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)