一种基于机器学习的中文商业文本预处理方法与流程

文档序号:19156128发布日期:2019-11-16 00:48阅读:177来源:国知局
一种基于机器学习的中文商业文本预处理方法与流程

本发明属于自然语言处理领域,具体涉及一种基于机器学习的中文商业文本预处理方法。



背景技术:

商业发展和人工智能的结合受到越来越广泛的关注,语音识别技术是人机交互的基础。现阶段的自然语言处理通常采用以下两种方法,一种是基于规则的自然语言处理方法,国内外利用这种方法进行多年的实验后,效果依然十分不理想,原因是它从该语言的语法句法等方面出发,按照语言的规则来分析和处理,因为规则太多,没有固定的方法,同时通过人们的生产生活,不断地增添新的规则,所以实现起来十分困难。另一种方法是基于统计的自然语言处理方法,这种方法基于收集大量的语料数据,通过统计学习的方式来理解语言,这在当代越来越受重视而且已经成为趋势。目前,计算机功能和数据存储的快速增长,使访问大量的语言数据成为可能。中文数据与其他语言存在巨大差异,如中文是连续书写的,没有语态和时态的变化以及存在多音字等,使得中文更加的灵活,许多国外成熟的技术无法用于处理中文文本。本发明提出一种基于机器学习的中文商业文本预处理方法。



技术实现要素:

针对上述问题,本发明提出一种基于机器学习的中文商业文本预处理方法。

实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

一种基于机器学习的中文商业文本预处理方法,其特征在于:对输入的中文商业文本采用以下步骤进行处理:

(1)对中文商业文本进行分句和分词;

(2)利用决策树对分好的词语进行词性标注;

(3)基于贝叶斯分类器利用条件概率进行词义消歧;

(4)利用one-hot编码与skip-gram模型结合的混合模型表示词向量;

(5)利用tf-idf调整词语权重,确定多义词在当前语境下对应的词义;

(6)输出基于机器学习预处理后的中文商业文本。

作为本发明的进一步改进,所述的步骤(1)中利用句号作为识别符对文本进行分句,基于概率统计模型对文本进行分词,具体为:

输入由c=[c1,c2,…,cn]t表示的字符串,输出由s=[w1,w2,…,wm]t表示的分词串,其中m≤n,之后利用如下公式进行分词:

比较不同分割方案出现概率的大小,概率最大的方案即为确定的分割方案s;

其中,p(s|c)为当输入字符串为c时,输出分词串为s的条件概率;

p(c|s)为当输出分词串为s时,输入字符串为c的条件概率;

p(s)为分词串s出现的概率;

p(c)为输入字符串c出现的概率,是一个用于标准化的固定值。

作为本发明的进一步改进,步骤(2)通过使用词语特征划分数据集,其中特征a是根据信息增益,增益比和基尼指数三个决策树指标确定的。

作为本发明的进一步改进,所述的信息增益,用于衡量分类前后信息的变化,公式如下:

g(d,a)=h(d)-h(d|a)

其中,h(d)为所述数据集d的熵,h(d|a)为所述数据集d和所述特征a之间的互信息,g(d,a)为所述数据集d分类前后的信息变化。

作为本发明的进一步改进,所述的增益比公式如下:

其中,g(d,a)为所述信息增益,ha(d)表示通过使用特征a作为样本集d的随机变量而获得的经验熵,gr(d,a)为所述增益比;

分类时在候选特征中找到所述信息增益高于平均值的特征,然后选择具有最高增益比的特征。

作为本发明的进一步改进,所述基尼指数,公式如下:

其中,d为所述数据集,di为根据第i个所述特征a所划分的数据集d的子集,n为所述特征a的总个数,gini(d,a)为基于所述特征a划分所述样本集d时的基尼指数。

作为本发明的进一步改进,包括采用以词语的结构或偏旁部首作为所述的特征a。

作为本发明的进一步改进,步骤(3)用于确定在上下文语境t条件下,确定具有多义词v的语义k,

其中,p(k|t)为当上下文语境为t时,所述多义词v的语义为k的条件概率;p(t|k)为当所述多义词v的语义为k时,上下文语境为t的条件概率;p(k)为所述多义词v的语义为k的概率;p(t)是一个固定值,为上下文语境t出现的概率;

当p(k|t)取得最大值时为对应确定的语义k。

作为本发明的进一步改进,所述的步骤(4)用于建立利于机器理解的语句,首先采用one-hot编码将词语转化成随机离散的向量,之后通过skip-gram模型利用欧式距离表示向量间的关系,降低向量维度,增加每个向量所包含的信息量,生成最终的词向量。

作为本发明的进一步改进,所述的步骤(5)中的词向量加权是利用tf-idf技术调整词语权重,公式如下:

其中,wij表示为某词w赋予的权重,mi表示某词w在文档中出现的次数,m为文档总词数,n为语料库中的总文档数,ni表示包含某词w的文档数。

本发明的有益效果:本发明所提出的基于机器学习的中文商业文本预处理方法,能够有效的解决中文商业问答系统由于文本预处理不足导致系统答非所问,应答情景有限的问题,大大提高了计算机理解文本的准确性,同时使得机器翻译、智能问答等延伸工作具有可实施性。

附图说明

图1是本发明技术方案中提供的一种基于机器学习的中文商业文本预处理方法的流程示意图;

图2是本发明技术方案中决策树结构示意图。

图3是本发明技术方案中skip-gram模型结构示意图;

图4是本发明一种实施例中skip-gram模型结构示意图;

图5是本发明一种实施例中输出结果示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图对本发明的应用原理作详细的描述。

本发明使用python语言在windows平台上进行实现,如图1-3所示,将输入平台中的中文商业文本采用以下的步骤中的方案进行处理:

(1)对中文商业文本进行分句和分词

分句利用句号作为识别符进行划分,所述分词基于统计概率模型进行划分。所述的分词具体过程为将输入的字符串由c=[c1,c2,…,cn]t表示,输出的分词串由s=[w1,w2,…,wm]t表示,其中m≤n,所述分词就是在所述分割方案s中利用统计方法找到统计概率最大的方案,具体公式如下:

其中,p(s|c)为当输入字符串为c时,输出分词串为s的条件概率;p(c|s)为当输出分词串为s时,输入字符串为c的条件概率;p(s)为分词串s出现的概率;p(c)为字符串c出现的概率,是一个用于标准化的固定值。

(2)利用决策树对分好的词语进行词性标注

决策树中的分类有三个衡量指标:信息增益,增益比和基尼指数。

通过使用特征a来划分数据集d,特征a包括名词、动词、形容词、叹词等,如图2所示。所述信息增益,公式如下:

g(d,a)=h(d)-h(d|a)

其中,h(d)为所述数据集d的熵,h(d|a)为所述数据集d和所述特征a之间的互信息,g(d,a)为所述数据集d分类前后的信息变化,即为所述信息增益。分类前后信息变化越多,分类越好。

所述增益比,公式如下:

其中,g(d,a)为所述信息增益,ha(d)表示通过使用特征a作为样本集d的随机变量而获得的经验熵。gr(d,a)为所述增益比。分类时在候选特征中找到所述信息增益高于平均值的特征,然后选择具有最高增益比的特征。

所述基尼指数,公式如下:

其中,d为所述数据集,di为根据第i个所述特征a所划分的数据集d的子集,n为所述特征a的总个数,gini(d,a)为基于所述特征a划分所述样本集d时的基尼指数,基尼指数越小分类特征越恰当。

(3)基于贝叶斯分类器利用条件概率进行词义消歧

将多义词v的语义由k表示,上下文语境由t表示。

其中,p(k|t)为当上下文语境为t时,所述多义词v的语义为k的条件概率;p(t|k)为当所述多义词v的语义为k时,上下文语境为t的条件概率;p(k)为所述多义词v的语义为k的概率;p(t)为上下文语境t出现的概率,是一个固定值。选择当前上下文语境t下,所述多义词v最有可能的语义k时p(k|t)取最大值,此时的语义k为该语境t时的语义。

(4)利用one-hot编码与skip-gram模型结合的混合模型进行词向量表示;

one-hot编码将词语转化成随机离散的向量,skip-gram模型利用欧式距离表示每个词向量之间的关系。one-hot编码与skip-gram模型结合的混合模型进行词向量表示有利于机器理解语句,并且降低了单独使用one-hot编码生成向量矩阵的维度。

(5)利用tf-idf调整词语权重;

词向量加权是利用tf-idf技术调整词语权重。公式如下:

wij表示为某词w赋予的权重,mi表示某词w在文档中出现的次数,m为文档总词数,n为语料库中的总文档数,ni表示包含某词w的文档数。该技术倾向于过滤掉常规词留下当前语境下重要的词。

(6)所述的文本经以上的方法处理后输出基于机器学习预处理后的中文商业文本。

采用以上所述的方案处理如下例句:公司里面积累了一些需求。简单说一下提供我们认识产品吧。你们怎么算账的呢。

(1)首先进行分句

利用句号作为分隔符,分为以下两句话:

句子1:公司里面积累了一些需求

句子2:简单说一下提供我们认识产品吧

句子3:你们怎么算账的呢

之后,对上述分好的句子进行分词

每句话都会对应多种分割方式,以句子1为例,将其由字符串c=[公,司,里,面,积,累,了,一,些,需,求]t表示,这个字符串对应分割方案有以下两种,由s1和s2表示:

s1=[公司,里面,积累,了,一些,需求]t

s2=[公司,里,面积,累,了,一些,需求]t

针对以上两种分割方案分析哪种分割方案最合理:

根据以上公式,比较给定句子c以上两种分割方式出现的条件概率,即比较p(s1|c)和p(s2|c)的大小,采用概率高的分割方案。由于在确定分割方案s1和s2后,只要将分割连起来就可以得到原始给定的句子,所以p(c|s1)=1,p(c|s2)=1。为了简便起见,假设句子中每个词语的出现的概率彼此独立,那么每种分割方案的概率可以通过所包含的每个词语的概率乘积计算得到。可通过下面的公式计算:

p(s1)=p(公司)×p(里面)×p(积累)×p(了)×p(一些)×p(需求)

p(s2)=p(公司)×p(里)×p(面积)×p(累)×p(了)×p(一些)×p(需求)

每个词语出现的概率在语料库足够大的情况下通过词语在语料库中出现的频率表示。

经计算句子1中,分割方式1出现的概率较高,即p(s1|c)>p(s2|c),故采用分割方式1,即s1对应的分割方式。

采用三个句子分词后的结果如下:

分词后的句子1:公司里面积累了一些需求

分词后的句子2:简单说一下提供我们认识产品吧

分词后的句子3:你们怎么算账的呢

(2)对分好的词进行词性标注

首先通过决策树对词性进行分类,例如以词语的结构和偏旁部首初步确定词性。之后通过计算信息增益,增益比和基尼指数三个指标,确定用于分类词性特征。

如判断“扌”与“氵”哪个特征更适合作为特征进行词性标注,即定义a1为“扌”,a2为“氵”,d为需要划分的整个数据集,首先计算信息增益:

g(d,a1)=h(d)-h(d|a1)

g(d,a2)=h(d)-h(d|a2)

由于“扌”所对应词都为动词。而“氵”可以对应动词如“流淌”,名词“海洋”,形容词“浅”。所以“扌”更能消除数据集的不确定性,故h(d|a1)<h(d|a2),所以g(d,a1)>g(d,a2)。

假设数据集d中含有“扌”和“氵”的数据个数相同,即d扌=d氵,得到又因为g(d,a1)>g(d,a2),根据公式计算增益比:

得gr(d,a1)>gr(d,a2)。

因为d扌=d氵,计算基尼指数:

故有gini(d,a1)=gini(d,a2)。

选择信息增益,增益比较大且基尼指数较小的特征。根据上述三个指标的结果可得,“扌”比“氵”更适合作为特征进行词性标注。

通过决策树选择每种词性的结构与部首特征如下表:

初步判断后,将已标注词性的数据集通过一个利用已经词性标注的数据训练过的网络再次判断词性,对之前的判断进行调整。如在初步判断中,将暂无分类的词定义为名词,通过该网络将进行进一步判断,使得结果更准确。

所述例句的词性标注结果如下:

(3)进行词义消歧

采用基于贝叶斯分类器利用条件概率进行词义消歧,如句子3中“算账”一词有以下两种常见的词义,由k1,k2表示:

k1:统计计算账目

k2:吃亏后,再次和人争论比较

判断当前语境,由t表示。结合上下文中“公司”,“产品”,“需求”等词判断,当前语境是在询问收费方式,是一种商业交流的语义环境。故多义词“算账”在该语境中选择表达词义可以通过以下公式判断:

通过判断在当前语境条件下多义词每种词义出现的概率,即比较p(k1/t)与p(k2/t)的大小。选择条件概率最大的多义词的词义作为当前语境下该多义词的词义。由于p(k1/t)>p(k2/t),故选择k1对应的词义,消除k2带来的歧义。

(4)词向量表示

利用one-hot编码与skip-gram模型结合表示词向量,将之前处理过后的数据首先进行one-hot编码,将编码好的词语输入到skip-gram模型进行训练,生成词向量,skip-gram模型可以通过当前词来预测上下文,例如图(4)所示,当输入的词语是“产品”时,该词前文可能是词语“公司”、“认识”,后文可能是词语“介绍”、“特点”。

最终映射在向量平面内的结果如图5所示,每个单词的独立id是由one-hot编码生成的离散量。skip-gram模型利用欧式距离表示词向量间的关系,将词义相近的词语映射在向量空间的附近。词语之间的关系通过这种方式得以描述,所以每个词向量不止包含原本的词义信息,也包含和其他词语的关系信息。所以每个词向量所包含的信息量变大。

(5)利用tf-idf调整词语权重

tf-idf技术需要计算tf和idf两个指标,tf指该词语在整个文档中出现的频率,出现频率越高的词可能对文档越重要。idf与在整个文件中该词语出现的文档数有关,包含该词语的文档越少,该词语对于其出现的文档越重要。tf-idf技术过滤掉常用词语并保留当前语境下重要的词语。

如例句中“需求”与“的”两个词,假设当前有1000个文档,即n=1000。其中含有“需求”一词的文档有9个,即n需求=9。“的”一词的文档有99个,即n的=99。某一文档中“需求”一词出现的次数与“的”一词出现的次数相同,即m需求=m的。那么“需求”与“的”两个词的权重可以由以下公式计算得到:

故w需求>w的,说明在本文档中,“需求”一词具有更高的权重,对于本文档来说更为重要。

所述例句的词语权重调整结果如下:

(6)输出基于机器学习预处理后的中文商业文本

经以上步骤处理后,输出的文本结果如图5所示。在分句、分词、词性标注、词义消歧处理操作下,进行准确的词向量表示。one-hot编码与skip-gram模型结合将带有独立编码id的单词映射在向量空间内,在向量空间内的位置越接近说明词义越相似,如“我们”、“你们”均属于人称代词,这两个词被映射到了向量空间附近。“呢”、“吧”均属于语气词,这两个词被映射到了向量空间附近。图中利用映射大小表示权重的调整,分为权重降低、权重持平、权重提高。

本发明输出一种机器通过向量空间和权重调整生成的句子表征。将词语id为1-6的词义联合为句子1所要表达的句子含义。将词语id为7-14的词义联合为句子2的所要表达的句子含义。将词语id为14-19的词义联合为句子3的所要表达的句子含义。以此供给计算机理解,从而进行后续操作。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1