基于卷积神经网络的文本语义分析系统
2022-06-01李政翰刘云鹏通信作者吴飞凡李士杰
薛 毅,李政翰,王 斌,刘云鹏(通信作者),孙 东,吴飞凡,李士杰,肖 遥,王 胜
(1 佳木斯大学信息电子技术学院 黑龙江 佳木斯 154007)
(2 广西科技大学电气电子与计算机科学学院 广西 柳州 545006)
0 引言
互联网时代的飞速发展,产生了大量的数据,在新闻、金融、互联网等行业中,大都是单一地使用数学方法来对文本进行分类和语义分析,分类效率比较低,耗费的时间比较长,如何找到分类效率高的方法成了许多学者研究的重要课题。1958年,HP.Luhn首次将频率计算引入语义分析,开创了文本语义分析的先河。与此同时,Maron 和Kuhn开发了第一个自动文本语义分析工具,成了将其分离为独立研究项目的先驱[1]。但HP.Luhn 和Kuhn 只是简单地用数学方法统计每个词出现的概率,分类效率也比较低。1981 年,我国的侯汉清教授首次研究了文本分类的应用,并构想出了许多未来发展的观点。1999 年,邹涛还创造了一些与文本语义相关的重要方法,如相应的模型、提取主干和字典,相比之前的研究更加系统化,但是效率还是不够高[2]。我们基于传统文本语义分析,加入了卷积神经网络,综合各个分类方法的优点,提出了基于卷积神经网络的文本语义分析系统,可以解决海量文本分类效率低的问题。
1 系统研究现状
1.1 机器学习研究现状
探索如何模仿或者学习人类举动是机器学习的一个方向,它能让机器获得全新的知识和技能,并重新梳理知识体系,进一步提高性能[3]。机器学习是人工智能的核心,是实现计算机智能化的根本途径。它被广泛应用于人工智能的各个领域,主要使用归纳、综合而不是解释。
机器学习是互联网AI 探索中比较重要的一个模块。其发展过程可分为4 个阶段:第1 阶段是从1955 年到1965 年,属于飞速发展的蓬勃时期。第2 阶段是从1965年到1975 年,被称为机器学习的平稳时期。第3 阶段是从1975 年到1985 年,这称为机器学习发展稳中向好的回暖时期。
1.2 文本语义分析研究现状
按照自然语言的构成层次——词语、句子和篇章,分析各层语义分析的内涵、现有的研究策略、理论依据及存在的主要方法,并对现存的两类主要研究策略进行对比分析。词的语义分析是指确定词的意思,测定两个词之间意思的类似度和相关度[3]。语义分析研究包括两个方面:语义分析和语义相似度分析。文章的语义分析是识别文章的意义、主题、范畴等相关信息的过程。目前,自然语言语义分析的研究主要有两种策略,一个是基于统计的语义分析,另一个是基于语义学理论的文本语义分析,两种策略都有各自的特点。
1.2.1 基于统计的文本语义分析
当前典型的大范围文本语义分析研究大多数以交叉验证法为根基。该方法是基于数学理论,如线性代数、矩阵理论、统计和概率论,将文本视为由独立单词(即文章是一组单词)组成的单词包,然后基于词的统计信息,将大量文本中词与词或者词与文本之间可能存在的关系进行呈现和分析,在此基础上,分析文本集合中隐藏的主题、词与文本之间的潜在语义结构等语义信息。有代表性的方法包括潜在语义分析(LSA)、概率潜在语义分析(PLSA)和隐式Dirichlet 赋值(LDA)。
1.2.2 基于语义学理论的文本语义分析
目前,文本语义学的语义学理论可用于概念语义学和概念层次语义学,最有代表性的是框架语义学[4]。框架语义学是美国学者在20 世纪70 年代提出的一种经验语言,它提供了一种描述意义和语法结构的方法。该框架指的是符合特定动机背景的结构化处理手段。例如,“网上购物”一词激活了一种行为模式,即购物流程,其中包括产品搜索、下单、支付和物流等连续事件。语义框架表示的是许多参加者、环境条件和其他被称为框架元素的相关角色,与框架概念有一定的相关性。
1.3 系统的整体框架
系统的整体框架见图1。
从图1 可以看出,整个文本语义分析系统被划分成5个模块:预处理模块、特征处理模块、格式转换模块、分类器模块和分类结果模块。每个模块都有各自的处理流程。整体来讲,文本语义分析的大概流程如下。
(1)将训练文本进行分词处理和去停用词处理,在这里设计了两种分词方法,分别针对不同的文本内容来进行。
(2)将文本特征向量输入分类器对文本实行分类,即使用不同的文本模型对文本进行测试,从而得到最终的分类成果。
(3)将分类结果进行全面的分析,最终得到想要的答案。
2 文本分类器的训练
2.1 文本训练方法
文本训练过程是构建分类器的过程,是文本语义分析系统的核心。系统原型主要针对本项目设计的支持向量机和简单Bayes 分类器,因此分别建立支持向量机和简单Bayes 分类器是必要的[4]。对此,需要将IT 域中的矢量化训练集文本输入支持向量机分类器,分类后得到各类别的分类结果。学习特定的文本模型是分类操作的重要步骤,是完成文本分类的首要手段。根据学习的模型对尚未明确的文本实施分类后,分类器可以获得相应的分类结果,结束整个分类过程。以下是两种文本训练方法,包括基于统计学习理论的支持向量机和贝叶斯分类。
基于统计学习理论的支持向量机避开了旧分类算法中样本数量不可控制的问题。它具有较好的泛化性能和明显的准确率优势。支持向量机(SVM)算法基于VC 维理论和统计学习理论的结构风险最小化原理。它将原始数据集压缩为一组支持向量,而后应用该子集来学习新内容。同时给出这些支持向量所明确的规则,可以获得学习误差概率的上限。它的主要思想是寻找最优超平面[5],用以满足分类问题和分类要求,如果一个分类问题中有k 类,k 类中的任意两个类都可以被划分。
贝叶斯分类是一种基于贝叶斯定理的统计分类方法。它可以得出各个分类的概率分布情况,并给出文本属于特定类别的概率。在分类时,可以根据预测结果将文本划分为概率最高的类别。朴素贝叶斯假设在包含多个特征的情况下,整体的单个特征对模型的影响独立于其他特征,即模型的特征互不相关。这是为了减少计算开销而引入的模型条件独立性假设[6]。
2.2 文本模型训练
文本模型训练时使用了卷积神经网络算法,需要提供一个Training,而评价该文本模型好坏需要提供一个Test。因此,在调用训练算法之前,必须将整个数据分成Training/Test 对,Training 和Test 之间没有相同的部分。划分数据集时,要确认文本模型信息以符合预期的比例呈现,以便整体模型的先验概率不受影响。但是仅仅使用一个Training/Test 对来完成文本模型的学习和评价是远远不够的,因为Training 和Test 在一定概率下,数量达不到要求,并且噪声、离散点等异常数值可能对文本分类模型产生影响,另外模型在一定程度上取决于不确定性的因素[7-8]。因此在有必要的时候,我们需要分别在K 个不同的Training 和Test 对上训练和评估模型的整体性能,K 的取值通常为10 或30。我们采用了TensorFlow 作为工具,实现对于文本分类模型的训练,之后再分别对K 个不同的数据集进行评价和效果改进。TensorFlow 最大的特点是支持不同机型设备的分散计算,在各平台上可以自动运行模型。
在TensorFlow 中,节点的权重和偏差值作为变量存储tf.Variable 对象。当数据流映射调用run()函数时,这些值不会被修改。在这种情况下,需要计算两个误差,调节并最小化诸如权重的参数。一般计算误差的方法很多,这里为了处理分类问题,使用交叉熵误差。在TensorFlow中,可以调用tf.nn.softmax_cross_entropy_with_logits()函数来计算交叉熵误差,其中我们的激活函数选择Softmax,因此softmax-误差函数出现了,获得误差后,下一个任务是如何最小化误差。这里我们选择的方法是最常用的随机梯度下降方法,其直观原理图见图2。
类似地,计算梯度下降的方法也很多,但是这里采用Adaptive MomentEstimation(Adam)优化方法,即自适应矩估计的优化方法,具体来说,TensorFolow中的主要函数是tf.train.AdamOptimizer(learning_rate).minimize(loss)函数[7]。在这里,需要传达learning_rate 参数来计算梯度时间的步长。非常方便的是,AdamOptimzer()函数封装了梯度计算和实时更新两个功能,即通过调用该函数,不仅可以计算梯度值,而且可以将计算结果更新到所有tf。在Variables 对象中,可大幅降低编程的复杂性。
在进行实际模型训练之前,需要计算一次数据的batch,即处理数据的量,batch 定义在最前面。tf.placeholders 的优点是可以用placeholders 定义的“None”参数指定次元可变batch[8]。也就是说,batch的具体大小可以在以后使用时决定。这里,在模型训练阶段传达的batch 较大,在测试阶段可以进行一些变更,所以需要使用可变batch。之后,通过训练get.batches()函数获得处理的实际文本数据。
由于针对不同的文本数据,不同的模型进行分类得出的结果有可能不同,为了使得文本分类更加有效,我们将实现多种模型的同时分类,然后将每种模型的分类结果进行统计,当所有模型中大部分数据都指向同一个类别时,我们认为这个文本的分类结果应当为该类。基于这种情况的考虑,我们将需要花一定的时间进行分类器的训练,从而达到良好的分类效果[9]。
3 系统主要功能
(1)词性分析:分析过程对所有涉及的单词词性进行分类,并以不同的颜色展示分类的效果。
(2)词性构成比例:词性比例构成对已标注的词性进行汇总,统计了各个词性在文本中所占比例。
(3)实体识别:实体识别用来识别文章当中出现具有特殊意义的实体名词,包含人名、地名、机构名、专有名词等。
(4)语义联想:语义联想是对从文本中提取出来的实体进行逻辑关联,并从全网获取该实体的相关信息构建整体关系。
(5)词云:信息提取是对所有信息进行聚合频次分类处理,并整合提取的信息。最终以词云的形式显示,根据各个词语的显示大小反映其重要性。
4 市场发展趋势预测
文本整体分析技术仍然有很大的创新和增长空间,无论是对于新进入者还是现有参与者。以下是对市场发展趋势的预测:(1)语言的多元化是主流:文本语义分析仍然以英语为主,但机器学习和机器翻译技术的发展可以帮助我们扩展到多语言分析并使其成为常态[10]。(2)文本分析受到重视:文本分析是客户体验、市场研究、用户调查、数据分析和媒体测量的重要解决方案,该领域供应商竞争激烈,整体趋势为“量化定性”,面向企业的解决方案将越来越多[10]。(3)机器学习、统计与语言工程并存:虽然未来属于深度学习,即回归神经网络等技术,但现在主流的是具有悠久历史的语言工程方法,如语法分析、词条网络、语法规则系统等。目前,传统与创新并存,百花齐放。我们不仅应该接受机器学习,还应该把传统和创新结合起来作为卖点。(4)机器翻译更加成熟:人们想拥有星际迷路般的宇宙万能翻译机,而1950 年研究人员宣布机器翻译要在3 至5 年内完成,但是过了半个世纪,机器翻译依然不可靠。在大数据和机器学习技术的突进下,在今后的1 至2 年里,机器翻译将适应很多场景和任务的需要。
5 结语
目前,文本分析越来越受到各行各业的重视,在互联网、金融、音乐等行业应用广泛。卷积神经网络是一种方法,一种理论,更是一个桥梁,连接文本分析和行业发展。互联网人工智能时代,文字、语义、社交分析就像各个行业的“天眼”一样,可以听到来自个人、媒体、公司的声音。公司可以从大量的网上数据和公司存储的音乐、文本、视频等结构化和非结构化数据中提取有助于提高决策质量的信息。