基于电力词典的文本处理方法与流程

文档序号:13427033阅读:259来源:国知局

本发明涉及一种信息处理方法,尤其设计一种文本处理方法。



背景技术:

近年来,随着我国工业领域,尤其是电力领域中各大型企业信息化水平的逐步提升,建设了各具特色的企业信息系统,不同程度地实现了对企业核心资源和主要经营活动的现代化管理。在信息化建设过程中,以文本形式存在的文档在各个信息化系统中存储量逐年递增,而这些文档在多数平台系统中仍然按业务条线、按系统方式存储、管理,不能被充分利用。尤其是面对诸如办公文档(如word、excel、wps文档)等非结构化数据时,利用效率更为低下。因此,如何有效地利用自然语言处理,分析挖掘信息系统中海量文本数据蕴含的信息及价值,必定会成为未来大数据提升行业生产力的重要课题。

传统的文本处理技术在电力行业的非结构化文档分析中效果不尽如人意,例如电力行业具有其特有的专有名词,在分词过程中会造成这些名词被切分,进而影响下一步的特征选择等过程,此外传统的特征选择方法其结果也并不显著,常用的分词权重算法在电力行业中结果仍有很大提升空间,影响文本相似计算、文档分类、聚类、文本检索等结果。



技术实现要素:

为提高电力行业的文本利用效率,本发明提供了一种基于电力行业的文本处理方法,包括以下步骤:步骤s100,获取电力系统使用的包括文本数据的文件,对该文件进行数据清理,从而获得清理后的文本数据;步骤s200,根据所述电力词典,对所述文本数据进行分词处理,获得多个分词;步骤s300,计算所述多个分词中每个分词的权重;步骤s400,将每个分词及其权重组成所述文件的元数据。

通过使用电力词典进行分词及后续处理,本发明能够获得有效的元数据,从而为文本相似计算、文档分类、聚类、文本检索等提供支撑。

本发明还提供了一种文本检索方法。

附图说明

图1是本发明的方法流程图;

图2是根据本发明的繁体简体变换示意图;

图3是根据本发明的文本清理前后的效果示意图;

图4是根据本发明的部分电力词典的词汇示意图;

图5是根据本发明的停用词示意图;

图6是根据本发明的部分分词结果的词表映射示意图;

图7是根据本发明的检索方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,将结合附图对本发明作进一步地详细描述。这种描述是通过示例而非限制的方式介绍了与本发明的原理相一致的具体实施方式,这些实施方式的描述是足够详细的,以使得本领域技术人员能够实践本发明,在不脱离本发明的范围和精神的情况下可以使用其他实施方式并且可以改变和/或替换各要素的结构。因此,不应当从限制性意义上来理解以下的详细描述。

如图1所示,本发明提供了一种基于电力词典的文本处理方法,包括以下步骤:步骤s100,获取电力系统使用的包括文本数据的多个文件,对每个文件进行数据清理,从而获得清理后的文本数据。显然,文件的数量很多,对文件进行数据清理,其含义是对每一个文件均进行数据清理。

进一步的,步骤s100主要包括以下步骤:

s120,文本获取

电力系统中,文件会根据不同的业务需要,存储在不同的单位或不同的业务系统上。该步骤中,可根据项目实际需要,将各业务系统存储的文件统一集成到同一数据资源池中。集成的方式可以通过爬行器抓取或者采用其他现有技术中提供的技术方式。

对于电力系统通常使用的非结构化文件,将通过文档内容抽取工具将文档内容抽取为txt文本文件。具体的抽取方法可以参照现有技术或开源技术,例如通过抽取工具apachetika中使用的方式。

步骤s120,编码转换

由于非结构化文件在存储时采用了不同的文件编码,导致解析文件时有可能会出错,因此需要将文档进行编码转换,以便于进一步解析。具体的变换方法可以参照现有技术或开源技术,例如linux下转换工具iconv中使用的方法。

根据本发明,将txt文本统一转换为utf-8编码。

s130,繁简体变换

电力系统的文件中有些使用了繁体中文,转换成的txt文件中也必然存在繁体中文,对此需要将繁体中文变换为简体中文。具体的变换方法可以参照现有技术或开源技术,例如转换工具opencc中使用的方法。繁体简体变换的示例性结果可参考图2。

步骤s140,文本清理

文本清理即清除txt文本中可能存在的乱码、无意义符号,文本清理进一步包括:

步骤s142,构造如下正则表达式

[\u4e00-\u9fa5a-za-z0-9,,。\.??!!、:;\(\)()、\-\n\t]

其中,‘\u4e00-\u9fa5’为中文,a-za-z为英文,0-9为数字,,,。.??!!、:;()()-均为能够支持的全角/半角标点符号,\n为换行符,\t为制表符。

步骤s142,扫描txt文本中的每个字符,如果不匹配正则表达式,则在文本中清除。文本清理的示例性结果可参考图3。

步骤s200,根据通用词典和所述电力词典,对所述文本数据进行分词处理,获得分词向量。

现有技术中,分词是人工智能对中文语言处理过程中常用的手段,英语语系中,由于空格的存在,英语单词具有天然的分隔性质,不需要分词。但是,汉语的句子除了标点符号作为分隔外,每个汉字之间都是相邻的,如果不能够正确的分词,将计算机处理带来了困难。例如“江南六怪听着暗暗心惊”(该示例可参考cn103942190a),正确的分词是“江南六怪/听着/暗暗/心惊”,如果分词为“江南/六/怪听着/暗暗/心惊”那么后续的处理则会产生较大的偏差。

现有技术中,jieba分词为经常使用的一种分词方式,jieba分词支持三种分词模式:

(a)精确模式,试图将句子最精确地切开,适合文本分析;

(b)全模式,把句子中所有的可以成词的词语都扫描出来,速度快,但不消除歧义;

(c)搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率。

现有技术中,国家电网公司在cn104408162a中公开了在正向最大分词和逆向最大分词的基础上,通过概率消除歧义的方法进行分词。

现有技术中,科大讯飞公司在cn103942190a共公开了在通用词典的分词基础上,通过绑定词典对分词结果进行修正,从而获得最终的分词结果。

此外,现有技术中还提供了其他较多的分词方法,在此不逐一介绍。

本发明可以使用现有技术中的任何方式对所述文本数据进行分词处理(例如jieba分词中的精确模式进行分词)以实现本发明的处理方法。

但是,为获得更为准确和高效的分词结果,本发明仍然利用电力词典,对现有技术中的分词(尤其是科大讯飞公司在cn103942190a中公开的分词方式)进行改进,以更好的对所述文本数据进行处理。

根据本发明,分词过程中使用通用词典和电力词典。通用词典为现有技术中通常使用的词典,通用词典一般即包括人工确定的词汇,也包括通过机器学习所确定的词汇。通用词典可以是静态词典,但多数情况下是可以动态更新的词典,更新的词汇可以是人工确定的词汇,但多数情况下是通过机器学习获得的词汇(例如学习互联网网页上新出现词汇)。通用词典一般情况下不是一部词典,而是包括多个领域或多个分类的多部词典,这些领域ict领域分词典、体育领域分词典、娱乐领域分词典、甚至电力领域分词典。电力词典为收录电力系统专用词汇的词典,与通用词典中的电力领域分词典相比,其收录的词汇通过人工校正,更为专业且理论上100%准确。显然,电力词典的词汇可能和通用词典的词汇有部分重合,但重合的词汇量不会很多。电力词典的部分词汇示意如图4所示。

由于有了非常准确的电力词典,因此对所述文本数据进行分词处理及后续的方法也发生了相应的变化。具体的,步骤s200进一步包括:

步骤s210,根据标点符号,将文本数据划分为长句。

步骤s220,判断长句中是否存在电力词典中的电力词汇,如存在,则从长句中提取电力词汇,形成电力词汇分词向量,并根据电力词汇将长句划分为短句。显然,本领域技术人员知晓,如果不存在,则将长句作为短句。

步骤s230,根据通用词典,对短句进行分词,去除停用词,形成通用词汇分词向量。

其中,停用词是文本数据中包含的没有实际含义的功能词,比如'的'、'我'、'在'、'是'、'和'等。

进一步的,电力词汇分词向量ew和通用词汇分词向量uw分别为:

ew={(ew1,p1),(ew2,p2),……(ewi,pi),……(ewn,pn)}

uw={(uw1,q1),(uw2,q2),……(qwj,qj),……(qwn,qm)}

其中,ewi为文本数据中的第i个电力词汇分词,pi为第i个电力词汇分词的权重,n为文本数据中电力词汇分词的数量,显然i的取值范围为1..n;uwi为文本数据中的第j个通用词汇分词,qj为第j个通用词汇分词的权重,m为文本数据中通用词汇分词的数量,显然j的取值范围为1..m。

进一步的,pi优选为(当前处理的)文本数据中ewi出现的次数。

进一步的,qj=qtfj*qidfj;qidfj=lg(tn/nj)。

其中,qtfj为(当前处理的)文本数据中uwj出现的次数,tn为所有文本数据的数量,nj为所有文本数据中含有uwj的文本数据的数量。

本发明的分词具有以下技术效果:

第一、由于采用了远比cn103942190a中的绑定词典准确的电力词典,因此本发明放弃了cn103942190a中先采用通用词典进行分词,再采用绑定词典进行修正的方案。先采用电力词典进行分词,再采用通用词典进行分词。电力词典将文本数据中的长句变成了短句,而短句进行分词的效率和准确度都远远高于长句,因此本发明的分词效果得到较大提升。

第二、本发明对于电力词汇分词和通用词汇分词采用了不同的权重计算方式。电力词汇词典中的词相对精炼,因此只是采用电力词汇出现的次数作为权重,即能够满足后续处理的需要,简洁高效。通用词汇分词则采用了传统的tf-idf方式,为后续处理保留的兼容性,即当某些后续文本处理过程中所采用的方法完全是现有技术的方法时,完全可以仅使用通用词汇分词,就能够实现这些方法,而不需要额外的开发工作。

步骤s290,词表映射。可选的,为了计算效率提升,将分词获得的字或词映射为id,在统计词频,以及计算idf时会提高计算速度。词:id的词表映射关系如图6所示。本领域技术人员知晓,该步骤为可选步骤,在另一个实施例中,可以直接使用分词获得的字或词计算词频和idf。

步骤s300,根据电力词汇分词向量和通用词汇分词向量,计算电力文本标志ef,形成文本元数据。电力文本标志ef体现了所述文本数据中电力词汇的权重,电力文本标志ef的值越高,说明文本数据中电力词汇的权重越大,文本数据就越可能是电力系统专用的文本数据(例如一次设备的使用说明);反之,电力文本标志ef的值越低,说明文本数据中电力词汇的权重越小,文本数据就越可能是电力系统使用的通用文本数据(例如office软件的培训教程)。

根据本发明的一个方面,其中,m和n的定义如上,分别为文本数据中电力词汇分词和通用词汇分词的数量。这种方式直接采用分词数量作为ef的计算依据,方式简单,但是结果并不精确。

但是,优选的,根据本发明的另一个方面,其中pi和qj的定义如上,pi为第i个电力词汇分词的权重,qj为第j个通用词汇分词的权重。根据这种方式,充分考虑到各个分词权重对于文本数据的影响,结果相对前一种方式精确。该优选方式中,由于pi和qj的计算方式不同,因此使用了arctg()函数进行了处理,一方面能够统一计算方式,另一方也弱化超高频词所带来的高权重噪声,保证ef计算的宽适用性。

如图7所示,本发明还提供了一种文本检索方法,应用于文本检索引擎,文本检索引擎存储有多个文本数据,多个文本数据中的每一个均包括文本内容和第二元数据。根据本发明,文本内容可以为根据现有技术中的搜索引擎爬行技术对电力系统内的文档进行抓取而获得内容,第二元数据为根据本发明的步骤s100-s300所介绍的文本处理方法对文本内容进行处理而获得的文本元数据。

根据本发明,该文本检索方法包括以下步骤:

步骤s500,获得待检索文件,根据本发明的步骤s100-s300的文本处理方法对待检索文件进行处理,获得第一元数据;第一元数据为待检索文件的文本元数据,第一元数据包括第一电力词汇分词向量ew1、第一通用词汇分词向量uw1和第一电力文本标志ef1。

根据本发明,待检索文件可以是txt、word、pdf等格式的文档,也可以是从文档中拷贝出的一段文字或多段文字,从而实现较为复杂的语义检索。显然,本领域技术人员知晓,在能够完成大段文字检索的文本检索引擎中,必然也能够支持包含个别检索词的一般性检索功能。因此,利用本发明的检索方法的针对个别检索词的检索方式也将落入本发明的保护范围。

步骤s600,提取第二文本数据中的第二元数据;第二元数据包括第二电力词汇分词向量ew2、第二通用词汇分词向量uw2和第二电力文本标志ef2。

步骤s700,计算第一元数据和第二元数据的相关度sim,如果sim大于特定阈值d,则将第二元数据对应的文本数据作为检索结果。

步骤s800,在文本检索引擎中,根据相关度sim排序显示检索结果。

根据本发明,步骤s700中相关度sim的计算包括:

步骤s710,如果ef1>=d1,那么

步骤s720,如果ef1<d2,那么

步骤s730,如果d1>ef1>=d2,那么sim=λ1*esim+λ2*usim,其中λ1+λ2=1。

其中,esim为第一电力词汇分词向量ew1和第二电力词汇分词向量ew2的相似度,usim为第一通用词汇向量uw1和第二通用词汇分词想想uw2的相似度;n为ew1和ew2中相同分词的分词数量,m为uw1和uw2中相同分词的分词数量;p1k、p2k分别为ew1、ew2中第k个相同分词的权重,q1k、q2k分别为uw1、uw2中第k个相同分词的权重。

可见,在步骤s700中,如果ef1>=d1,那么说明待检索文件中包括较多的电力词汇,属于典型的电力系统专用的文本数据,因此根据电力词汇分词向量计算相似度,能够获得良好的文本检索结果;如果ef1<d2,那么说明待检索文件中包括较少的电力词汇,属于典型的通用文本数据,因此主动忽略其中包含的电力词汇,而根据通用词汇分词向量计算相似度,能够获得良好的文本检索结果;如果d1>ef1>=d2,那么说明待检索文件中即包括一些电力词汇,又包括一些通用词汇,需要同时根据电力词汇和通用词汇的分词向量计算相似度,另外考虑到电力词典的准确性非常高,因此对于电力词汇相似度的权重优先于通用词汇,从而能够获得检索用户更为满意的检索结果。

此外,相比于现有技术中的将所有分词统一计算相似度的方法,本发明步骤s710和步骤s720中使用的方式只需要计算分词的部分数据,就能够获得理想的检索结果,减少了计算量,提高了检索效率,而步骤s730中的方式的计算量也和现有技术中的计算量相似。因此,从整体上看,对检索效率有明显提高。进一步的,调查显示超过50%的电力系统的需求都是针对电力系统的业务文档进行检索,即较大概率是通过步骤s710进行的,因此,检索效率的提升会更加明显。

万级文本数据的小规模测试显示:本发明中d1的取值范围应为0.55-0.7较为合适,优选0.6;d2的取值范围为不超过0.1较为合适,优选0.05。λ1的取值不小于0.7较为合适,优选为0.8;λ2的取值不超过0.3较为合适,优选0.2。

根据本发明的一个方面,可以动态确定λ1和λ2的取值,判断方法如下:

步骤s910,获取第三文本数据。第三文本数据是最近的时间周期t内,文本搜索引擎中新增的文本数据,t的取值可以是固定的(例如1个月内);t的取值也可以是动态的,定义为新增第三文本数据占全部文本数据3%、4%或5%所需要的时间。

步骤s920,从第三文本数据中采样获得多篇文本数据(例如5000-10000篇),作为采样文本数据。

步骤s930,获取当前正在使用的λ1和λ2的取值,例如前述优选的λ1=0.8,λ2=0.2。

步骤s940,分别使用λ1和λ2,λ1+δλ和λ2-δλ,λ1-δλ和λ2+δλ三组参数作为esim和usim的参数,使用预先设置的标准文本数据在采样文本数据中进行检索。其中δλ的取值例如为0.02。

步骤s950,如果三组参数的检索结果中相似度sim最高的前x篇文献(例如前20篇或前50篇)的差别率均低于特定阈值d3(例如10%-20%),那么确定当前的λ1和λ2为esim和usim的参数。否则,将λ1和λ2分别修改为λ1+2*δλ和λ2-2δλ,或者将λ1和λ2分别修改为λ1-2*δλ和λ2+2δλ,然后执行步骤s940,直至收敛(即差别率低于特定阈值d3)。

根据本发明,在步骤s950中,λ1和λ2的调整边界为[0,1]。当λ1和λ2中某一个大于1或小于0时,如果仍然不能够收敛,那么增加特定阈值d3的取值,然后再次执行步骤s930。

通过以上方法,根据新增的文本数据动态确定λ1和λ2的取值,使得λ1和λ2的取值能够最大限度的满足步骤s730中所涉及的文本数据的动态变化,从而提高步骤s730的召回率和准确度。

此外,根据公开的本发明的说明书,本发明的其他实现对于本领域的技术人员是明显的。实施方式和/或实施方式的各个方面可以单独或者以任何组合用于本发明的系统和方法中。说明书和其中的示例应该是仅仅看作示例性,本发明的实际范围和精神由所附权利要求书表示。

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