主要讲述了人工智能和自然语言处理任务的分类及其应用。首先,人工智能主要分为三大类:语音、图像和自然语言处理,它们之间相互关联。其次,NLP的任务主要分为两大类:自然语言理解和自然语言生成。还介绍了NLP中的一些重要概念和技术,如词向量、循环神经网络、长短期记忆网络和注意力机制等,它们可以提高机器对人类语言的处理能力。最后,提到了多模态在NLP领域的应用,即利用多种媒介来提高机器对人类语言的处理能力。本文详细介绍了人工智能和NLP领域的任务分类和技术应用,帮助读者更好地了解这些领域的基本概念和技术发展趋势。

上篇文章在介绍三个主要人物之后,我们开始探讨下面的内容。实际上,我们要讲解一下 NLP 的任务分类。NLP,即自然语言处理,指的是计算机能够理解并处理人类语言,甚至与人类进行交互等一系列的能力。那么,NLP 的任务是如何分类的呢?我们先从宏观层面来看,先了解一下 AI 的分类。一般而言,人工智能可分为三类:语音、图像和 NLP,就如同这三张图片所展示的。

不过,需要说明的是,将人工智能简单划分为这三类,其实是一种不太严谨的解释。为什么这么说呢?因为在许多领域都存在各自的人工智能应用。例如,在石油领域、煤炭领域,以及前段时间非常热门的利用深度神经网络预测蛋白质结构,这显然属于生物领域。我在此提及的这三大分类,主要是基于我们日常生活常见的范畴。可以认为语音、图像和 NLP 这三大领域紧密相连。首先,语音与 NLP,语音和语言自然是息息相关的;语音与图像也相互关联,以视频为例,它同时包含声音和图像;图像与 NLP 在技术上也存在联系,比如处理连续图像的方式可能与处理连续语言序列(NLP)有相似之处。
这里顺便说一个题外话,尽管我在此将任务分类划分为这三大类,但如今越来越多的人认为,在识别事物或执行任务时,采用多模态方式更为合适。那么,多模态是什么意思呢?举个例子,假设给你一段小视频,视频中有人在炒西红柿炒鸡蛋。从单一任务的角度看,因为视频可以按帧切分为一连串图片,所以可能会将其归为图像处理范畴,通过图像处理来判断视频中有个人在炒什么。然而,这段视频中不仅有图像,还包含语音。炒菜时会发出声音,比如油的滋滋声,这与正常说话声音不同,并且视频中可能还存在其他语音信息,这些都有助于判断视频内容是炒菜。因此,在对这样的视频进行判别时,如果仅依靠单一媒介,结果可能不太稳定、可靠;而若综合运用所有相关媒介,才更有可能得出稳定且理想的效果,这就是多模态。多模态技术正日益受到关注,可能会引领未来的发展热潮。当然,我们在此只是介绍人工智能任务的分类。在介绍完人工智能任务的宏观分类后,接下来我们必然要介绍 NLP(自然语言处理)自身的任务分类。

在网络上,有众多关于 NLP 任务分类的观点。就我个人而言,通常将其分为两大类:自然语言理解(National Language Understand)和自然语言生成(Generator)。自然语言理解又可细分为三类任务。第一类是分类任务,简单来说,就是对文本进行分类。比如给定一篇文章,判断其所属类别;或者给定一个影评,判断其好坏等级,大致如此。这是基于整篇文章或整个文本的分类,其中也包括情感分析。第二类任务是序列标注,它是对词或字进行分类,涵盖分词(POST AG)、词性分割、命名实体识别(NER)以及语义标注。需要注意的是,分类任务是针对整个文档的分类,而序列标注是针对词的分类。例如,对于 “文本分类” 这四个字,进行分词后,“文” 和 “本” 分别有各自的标签,组合成 “文本” 后又有新标签,“分类” 同理,将 “文本分类” 拆分成 “文本” 和 “分类” 两个词,这就是一个序列标注任务,是对每个字或词进行分类。第三类是句子关系判断,其中最常见的就是文本匹配,即判断两个句子是否表达相同的意思,此外还包括推理任务或问答(QA)任务。句子关系判断在智能客服领域应用较为广泛。<font color=blue>比如,当你询问 “我的外卖为什么还没有到”,智能客服的数据库中可能有许多相似问句及对应答案,它会从数据库中找出与你问句最相近的问题,并给出答案,让你感觉智能客服非常智能,能直接给出你想要的答案,这就是句子关系判断的应用。</font>
而自然语言生成类的自然语言处理任务,主要包括机器翻译、文档生成、对话回复等。这就是我对 NLP 任务的分类方式。当然,我们刚才提到的这些任务都属于基础任务,当这些基础任务组合在一起时,就可以构成综合任务。例如,分类、序列标注、文本匹配、文本生成等基础任务组合起来,可以形成智能对话、智能问答检索系统、推荐系统等综合任务。每个综合任务可能都会用到这些基础任务,但综合任务并非仅仅依赖这些单纯的 NLP 基础任务。以对话为例,可能还需要考虑对话的前后状态、对话场景、用户数据以及一些规则等因素来构建综合任务,不过这些基础任务无疑是综合任务的基本要素。

我们还可以从单纯的技术角度,或者从公司开展相关业务的角度,来审视 NLP 的任务类别。首先是数据层,进行 NLP 任务时,数据来源多种多样,可以从网页获取,也可以来自公司自身积累的查询数据,还可以从新闻等众多媒介中获取。有了这些基础数据后,还需要构建知识层。知识层包括网络热点词、词资源、领域词等,这些是通过自行收集和整理制作而成的。针对知识层的内容,需要进行词的质量评估、词的分类、词的特征提取、纠错等一系列符合公司业务需求的技术处理,这些可视为公司的技术储备。在完成知识层的构建和数据处理后,就进入计算层。计算层主要执行一些基础的计算任务,例如文本分类、文本匹配、命名实体识别(NER)、文本相似度计算等。这些基础计算任务会支撑上层的应用,如搜索应用、推荐应用、问答应用、对话应用等。即便公司目前的某些基础应用可能暂时用不到某些技术,比如文本相似度计算、文本匹配等,但公司仍可能会对这些技术进行探索和储备,因为无法预知未来的顶层应用是否会用到这些技术。这就是 NLP 的任务分类情况。从这个角度来看,NLP 的分类并非十分困难,只是从技术站的角度出发,会觉得内容繁多且复杂,但实际上其架构是比较清晰的。
文本分类
情感分析
通过对文本情感倾向的判断,分析出其中蕴含的积极、消极或中性情感。以社交媒体评论分析为例,在实际应用中,某知名电商平台积累了海量用户商品评价。借助 NLP 情感分析技术,平台发现某品牌手机在用户评价里,关于电池续航的负面情感占比高达 30%。基于此洞察,手机品牌迅速调整电池研发策略,推出高续航新款手机,新品上市后好评率提升了 20%。在影视领域,某电影上映初期,通过社交媒体影评的情感分析,片方捕捉到观众对剧情拖沓的集中负面反馈,随即调整宣传策略,重点突出影片视觉特效等亮点,成功吸引了更多观众,有效提升了影片票房表现。
主题分类
主要用于判定文本所属的主题领域,如新闻文章常见的经济、娱乐等主题。在新闻资讯行业,知名新闻 APP 每日要处理数万条新闻,通过主题分类技术,能够快速筛选分类。在某重大会议期间,该 APP 借助主题分类精准推送类新闻,相关新闻阅读量较平日增长了 50%。学术数据库同样依赖主题分类,每年面对新增的海量论文,研究人工智能领域的学者通过主题分类,能迅速定位到最新相关研究论文,检索效率提升了 70%,极大便利了学术研究工作。
序列标注
词性标注
为文本中的每个单词标注其词性,像名词、动词、形容词等。以智能写作辅助软件为例,当用户输入 “我喜欢跑步,它能让我快乐”,软件通过词性标注,精准识别出 “喜欢” 为动词,“跑步” 为名词。基于此,软件可为用户提供更精准的语法检查与词汇替换建议,比如将 “喜欢” 替换为 “喜爱”,提升写作质量。在机器翻译场景下,对于句子 “She runs fast”,词性标注帮助翻译系统确定 “runs” 是动词第三人称单数形式,从而准确翻译为 “她跑得快”,有效提升翻译准确率 15%。
命名实体识别
主要用于识别文本中的人名、地名、组织机构名等实体信息。在大型企业知识图谱构建过程中,利用命名实体识别技术,从企业内部海量文档里抽取关键实体。比如从一份项目报告中,能够识别出项目负责人姓名、合作公司名以及项目涉及的地名,进而构建完整的项目知识网络,有力推动企业项目资源的高效管理。金融机构在审查贷款合同文本时,通过命名实体识别,可精准提取人名、公司名、金额等关键信息。例如在一份贷款合同中,准确识别借款公司名称、借款金额及还款期限等,用于风险评估,有效降低了 30% 的信贷风险。
语义角色标注
主要确定句子中每个谓词的语义角色,如施事者、受事者等,深入理解句子语义。在智能语音助手应用中,当用户发出指令 “帮我订一张明天从北京到上海的机票”,语义角色标注能够明确 “我” 是施事者,“机票” 是受事者,“北京” 和 “上海” 分别为出发地和目的地。基于此,语音助手可准确执行订票操作,用户满意度提升了 25%。在法律文本分析领域,对于条款 “甲方应向乙方支付违约金”,语义角色标注清晰界定 “甲方” 为施事者,“乙方” 为受事者,“违约金” 为交易对象,助力法律从业者准确理解条款含义,提升合同审查效率 35%。
NLP 任务分类流程通常包括<font color=blure>数据收集、数据预处理、特征工程、模型选择与训练、模型评估和模型应用</font>等主要步骤,以下是具体介绍:
以下以常见的文本分类任务(垃圾邮件分类)为例,展示如何使用 Python 和一些常用的库(如scikit-learn)进行 NLP 任务分类,具体步骤如下:
1.数据准备:这里我们使用sklearn自带的 20 Newsgroups 数据集的一个子集(模拟垃圾邮件和正常邮件数据)来演示。实际应用中,你可以从文件、数据库或网络获取真实的邮件数据。
from sklearn.datasets import fetch_20newsgroups
# 加载部分数据,这里选择两类数据来模拟垃圾邮件和正常邮件分类
categories = ['alt.atheism', 'comp.windows.x']
news_train = fetch_20newsgroups(subset='train', categories=categories, shuffle=True, random_state=42)
news_test = fetch_20newsgroups(subset='test', categories=categories, shuffle=True, random_state=42)
X_train = news_train.data
y_train = news_train.target
X_test = news_test.data
y_test = news_test.target2.数据预处理:包括文本清洗、分词、去除停用词等操作,这里使用nltk库进行简单的预处理(需要先安装nltk并下载相关语料库)。
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
import string
nltk.download('punkt')
nltk.download('stopwords')
def preprocess_text(text):
text = text.lower() # 转换为小写
text = ''.join([c for c in text if c not in string.punctuation]) # 去除标点符号
tokens = word_tokenize(text) # 分词
stop_words = set(stopwords.words('english'))
tokens = [token for token in tokens if token not in stop_words] # 去除停用词
return " ".join(tokens)
X_train_preprocessed = [preprocess_text(text) for text in X_train]
X_test_preprocessed = [preprocess_text(text) for text in X_test]3.特征提取:使用 TF-IDF(词频 - 逆文档频率)方法将文本转换为特征向量。
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
X_train_features = vectorizer.fit_transform(X_train_preprocessed)
X_test_features = vectorizer.transform(X_test_preprocessed)4.模型选择与训练:这里选择朴素贝叶斯分类器进行训练。
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.fit(X_train_features, y_train)5.模型评估:使用测试集评估模型的性能,这里计算准确率。
from sklearn.metrics import accuracy_score
y_pred = clf.predict(X_test_features)
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy}")6.模型应用:对新的文本进行分类预测。
new_text = ["This is a sample text about computer software."]
new_text_preprocessed = [preprocess_text(text) for text in new_text]
new_text_features = vectorizer.transform(new_text_preprocessed)
predicted_category = clf.predict(new_text_features)
print(f"预测类别: {news_train.target_names[predicted_category[0]]}")上述代码通过一系列步骤完成了一个简单的 NLP 文本分类任务(垃圾邮件分类模拟),从数据准备、预处理、特征提取到模型训练、评估和应用,展示了使用 Python 进行 NLP 任务分类的基本流程。
<font color=blue>以下是一些 NLP 任务分类的最新研究进展:</font>
文本分类
情感分析
文本匹配
此外,提示工程在 NLP 任务分类中也有重要进展。提示工程通过编写自然语言指令从大型语言模型(LLM)中提取知识,能显著提升 LLM 在各种 NLP 任务上的表现,如链式思维提示、自我一致性、自动链式思维等技术在数学问题解决、常识推理、多跳推理等任务中都取得了不错的效果。
下一章节内容 框架了解
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。