一种文本模式生成方法、装置和计算设备技术领域
本发明涉及计算机与互联网技术领域,尤其涉及一种文本模式生成方法、装置和
计算设备。
背景技术
随着互联网技术的蓬勃发展,计算机已经成为人们日常办公或交流必不可少的工
具。用户在使用计算设备时,网络设备会生成log、url和trace等各种文本数据,这些文本数
据中记载着日期、时间、使用者及动作等相关操作的描述。通过分析这些文本数据,运维人
员可以实时监控系统和网络的健康状况,以及用户的使用情况等。
但是这些文本数据通常数量巨大,且较难读懂,因此,对日志数据进行数据挖掘,
并从中提取有用的知识是非常有必要的。其中,可以根据这些文本数据生成文本模式,文本
模式即在一段文本中经常出现的频繁信息或消息序列,在生产系统中,由于很多操作都是
固定、可重复的,导致从这些网络行为中产生的文本数据存在很多规律性的文本结构。
现有技术中,可以从源码中获得文本模式,但一般源码比较难以获得。也可以通过
词频和反向词频(TF-IDF)之类的自然语言特征对日志文本进行聚类。但在在每个类别中,
难以保证只存在确切的一个或两个模式,从而导致生成的文本模式不够精准。
因此,需要提供一种更便捷且精确的文本模式生成方法。
发明内容
鉴于上述问题,本发明提出了一种文本模式生成方法、装置和计算设备,以力图解
决或者至少解决上面存在的问题。
根据本发明的一个方面,提供一种文本模式生成方法,适于在计算设备中执行,该
方法包括:获取包括多条文本数据的文本库,并对其中每行文本数据进行分词处理;对文本
库中的文本数据进行第一次遍历,统计出所有文本数据中每个单词的出现次数,并从中筛
选出出现次数大于第一阈值的单词作为高频词,将高频词与该高频词的出现次数相关联的
存储为高频词词典;分别从文本库中的每行文本数据中筛选出高频词,构成该行文本数据
对应的高频词元组;根据各高频词在文本数据中的出现次数,计算任意两个高频词之间的
依赖度;对文本库中的文本数据进行第二次遍历,根据文本数据对应的高频词元组,生成每
行文本数据的预选文本模式;根据高频词之间的依赖度,对文本数据的预选文本模式进行
修正,得到文本数据的修正文本模式;以及对文本数据的修正文本模式进行相似度合并,得
到文本模式库。
可选地,在根据本发明的方法中,在对每行文本数据进行分词处理前,还包括步
骤:将每行文本数据中的预定类型的关键词替换为预定词,其中预定类型的关键词包括时
间、日期、ip地址和数字中的至少一个。
可选地,在根据本发明的方法中,任意两个高频词wi和wj之间的依赖度包括wi出现
时wj出现的第一条件概率p(wj|wi),以及wj出现时wi出现的第二条件概率p(wi|wj),统计任
意两个高频词之间的依赖度的步骤包括:统计任意两个高频词wi和wj在同一行文本数据中
出现的次数n(wi,wj);根据p(wj|wi)=n(wi,wj)/n(wi)计算第一条件概率,以及根据p(wi|wj)
=n(wi,wj)/n(wj)计算的第二条件概率;其中,n(wi)和n(wj)分别是高频词wi和wj在所有文
本数据中出现的次数。
可选地,在根据本发明的方法中,对文本库中的文本数据进行第二次遍历,根据文
本数据对应的高频词元组,生成每行文本数据的预选文本模式的步骤包括:根据文本数据
对应的高频词元组,统计每行文本数据中相邻两个高频词wi和wi+1之间的非高频词的数目m
(wi,wi+1);如果m(wi,wi+1)≠0,则将统计到的数目m(wi,wi+1)以第一通配符的形式插入到高
频词元组中的高频词wi和wi+1之间,从而得到该行文本数据的预选文本模式。
可选地,在根据本发明的方法中,在对文本数据的预选文本模式进行修正之前,还
包括:如果有多行文本数据的对应高频词元组相同,则将这多行文本数据的所对应的多个
预选文本模式按照如下方式进行合并:对该多个预选文本模式进行一次遍历,确定其中每
个预选文本模式中任意两个相邻的高频词wi和wi+1之间的非高频词数目m(wi,wi+1),并从中
选出最小值mmin(wi,wi+1)和最大值mmax(wi,wi+1);以及对于其中任意一个预选文本模式,将该
预选文本模式中任意两个相邻的高频词wi和wi+1之间的内容修改为用最小值mmin(wi,wi+1)和
最大值mmax(wi,wi+1)表示的第二通配符。
可选地,在根据本发明的方法中,第一通配符的表示方法为:*{m(wi,wi+1),m(wi,
wi+1)},代表某行文本数据中相邻的两个高频词wi和wi+1之间有m(wi,wi+1)个非高频词;第二
通配符的表示方法为:*{mmin(wi,wi+1),mmax(wi,wi+1)},代表在多行文本数据中相邻的两个高
频词wi和wi+1之间的非高频词数目,最少有mmin(wi,wi+1)个,最多有mmax(wi,wi+1)个。
可选地,在根据本发明的方法中,根据高频词之间的依赖度,对文本数据的预选文
本模式进行修正的步骤包括:计算预选文本模式中任意一个高频词wi与同行的其他高频词
的加权依赖度p(wi)=[p(wi|w1)+p(wi|w2)+…+p(wi|wn))]/(n-1),其中n代表该行文本的高
频词数目,且n≠i;如果该加权依赖度小于第二阈值,则将该高频词wi作为高频词wi-1和wi+1
之间的一个非高频词而删除,并相应的修改wi-1和wi+1之间的通配符;其中,wi-1和wi+1分别是
该预选文本模式中高频词wi前后相邻的两个高频词。
可选地,在根据本发明的方法中,对文本数据的修正文本模式进行相似度合并的
步骤包括:对于任意两个修正文本模式,分别计算其序列总长度l1和l2,并从中选出最大值
max(l1,l2),其中,修正文本模式的序列长度为其所包括的高频词的数目;确定这两个修正
文本模式之间的最长公共子串,并计算该最长公共子序列的长度l3;以及计算最长公共子
序列的长度l3与序列长度的最大值的比值;如果该比值不小于第三阈值,则将这两个修正
文本模式进行合并。
可选地,在根据本发明的方法中,将两个修正文本模式进行合并的步骤包括:任选
其中一个修正文本模式中,确定该修正文本模式中未计入最长公共子序列中的高频词;将
该高频词作为该修正文本模式中的一个非高频词而删除,并相应地修改其前后相邻的两个
高频词之间的通配符,从而得到相似度合并后的文本模式。
可选地,在根据本发明的方法中,文本库为日志文本库、url文本库或trace文本
库;第一阈值的取值为max(支持度×文本数据行数,第四阈值)
可选地,在根据本发明的方法中,文本数据为半结构化文本数据;将每行文本数据
中的预定类型的关键词替换为预定词的步骤包括:将时间类关键词替换为DATE,日期类关
键词替换为TIME,数字类关键词替换为NUM,以及将ip地址类关键词替换为IP。
可选地,在根据本发明的方法中,支持度为0.05‰-0.15‰,第二阈值为0.3-0.5,
第三阈值为0.6-0.9,第四阈值为4-6。
根据本发明的另一个方面,提供一种文本模式生成装置,适于在计算设备中执行,
该装置包括:分词单元,适于获取包括多条文本数据的文本库,并对其中每行文本数据进行
分词处理;词典生成单元,适于对文本库中的文本数据进行第一次遍历,统计出所有文本数
据中每个单词的出现次数,并从中筛选出出现次数大于第一阈值的单词作为高频词,将高
频词与该高频词的出现次数相关联的存储为高频词词典;元组生成单元,适于分别从文本
库中的每行文本数据中筛选出高频词,构成该行文本数据对应的高频词元组;依赖度计算
单元,适于根据各高频词在文本数据中的出现次数,计算任意两个高频词之间的依赖度;预
模式生成单元,适于对文本库中的文本数据进行第二次遍历,根据文本数据对应的高频词
元组,生成每行文本数据的预选文本模式;预模式修正单元,适于根据高频词之间的依赖
度,对文本数据的预选文本模式进行修正,得到文本数据的修正文本模式;以及模式库生成
单元,适于对文本数据的修正文本模式进行相似度合并,得到文本模式库。
根据本发明的又一方面,提供一种计算设备,包括如上所述的文本模式生成装置。
根据本发明的技术方案,通过对文本库中的文本数据进行遍历,得到其中每个单
词的出现次数,并从中筛选出其中的高频词。之后,再进一步筛选出每行文本数据中的高频
词,构成该行文本数据的高频词元组。根据各高频词在文本数据中的出现次数,计算任意两
个高频词之间的依赖度。根据文本数据对应的高频词元组,生成该行文本数据的预选文本
模式。根据计算得到的高频词的依赖度,对预选文本模式进行修正,从而进一步文本模式的
精度。最后,根据最长公共子序列的算法,将比较相似的修正文本模式进行合并,从而得到
最终的文本模式库。通过这种方法生成的文本模式的匹配度很高,能最大限度的覆盖大多
数的文本数据。
另外,本发明还可以将其中的时间、日期、数字、IP等预定类型的词正则替换为其
他预定词,这样可以将其作为普通词进行处理,进一步精简了文本模式的数据量,也提高了
其对文本数据的覆盖度。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方
面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面
旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述
以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的
部件或元素。
图1示出了根据本发明一个实施例的计算设备100的结构框图;
图2示出了根据本发明一个实施例的文本模式生成方法200的流程图;
图3a和3b分别示出了根据本发明一个实施例的日志文本的部分数据,以及由该日
志文本的完整数据所生成的文本模式;
图4a和4b分别示出了根据本发明另一个实施例的url文本的部分数据,以及由该
url文本的完整数据所生成的文本模式;
图5示出了根据本发明又一个实施例的由trace文本数据生成的文本模式;
图6示出了根据本发明一个实施例的文本模式生成装置300的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开
的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
图1为布置为实现根据本发明的文本模式生成装置300的示例计算设备100的结构
框图。如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者
多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器
(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如
一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心
114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、
数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器
104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易
失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储
器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,
应用122可以布置为在操作系统上利用程序数据124进行操作。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口
144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例
的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由
一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外
设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于
经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸
输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设
备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一
个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波
或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可
以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多
个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以
包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外
(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存
储介质和通信介质二者。
计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分。计算设备100
还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算
设备100被配置为执行根据本发明的文本模式生成方法200,其中应用122包括根据本发明
的文本模式生成装置300。
图2示出了根据本发明一个实施例的文本模式生成方法200,适于在计算设备100
中执行,如图2所示,该方法始于步骤S210。
在步骤S210中,获取包括多条文本数据的文本库,并对其中每行文本数据进行分
词处理。其中,文本库为日志文本库、url文本库或trace文本库;文本数据为非结构化文本
或半结构化文本。其中,非结构化文本和普通纯文本相比,其具有一定的结构性,但和具有
严格理论模型的关系数据库的数据相比,其结构性又稍微弱一些。
具体地,分词方法可以采用自定义的分词规则进行处理,如w1w2w3是一行文本,则
可以将其分词为[w1][w2][w3]。当然,也可以采用其他现有的分词方法,本发明对此不作限
制。
根据一个实施例,在步骤S210之前,还可以包括步骤:将每行文本数据中的预定类
型的关键词替换为预定词。其中,预定类型的关键词可以为时间、日期、ip地址或数字类等
关键词。具体地,可以将将时间类关键词替换为DATE,日期类关键词替换为TIME,数字类关
键词替换为NUM,以及将ip地址类关键词替换为IP。这些替换后的字符在后续处理中当作普
通词来处理。当然,也可以替换为其他特定词,本发明对替换词的形式不做限制。其中,对预
定类型的关键词判断可以采用正则匹配方法。
随后,在步骤S220中,对文本库中的文本数据进行第一次遍历,统计出每个单词的
出现次数,并从中筛选出出现次数大于第一阈值的单词作为高频词,将高频词与该高频词
的出现次数相关联的存储为高频词词典,如存储为为词典D。
根据一个实施例,第一阈值的取值为max(支持度×文本数据行数,第四阈值),其
中,支持度可以为0.05‰-0.15‰,具体可以为0.01%;第四阈值可以取值为4-6,具体可以
为5。
随后,在步骤S230中,从文本库的每行文本数据中筛选出高频词,构成该行文本数
据对应的高频词元组。也就是,每行文本数据对应一个高频词元组。
随后,在步骤S240中,根据各高频词在文本数据中的出现次数,计算任意两个高频
词之间的依赖度。其中,任意两个高频词wi和wj之间的依赖度包括wi出现时wj出现的第一条
件概率p(wj|wi),以及wj出现时wi出现的第二条件概率p(wi|wj)。
具体地,计算任意两个高频词之间的依赖度可以首先统计任意两个高频词wi和wj
在同一行文本数据中出现的次数n(wi,wj)。例如,如果w1和w2这两个单词在第1行、第2-3行,
第5-10行都出现了,则n(w1,w2)=9;如果对w1和w3这两个单词在第1行、第3行,第4-8行都出
现了,则其计数为7。之后,再根据p(wj|wi)=n(wi,wj)/n(wi)计算第一条件概率,以及根据p
(wi|wj)=n(wi,wj)/n(wj)计算的第二条件概率。其中,n(wi)和n(wj)分别是高频词wi和wj在
所有文本数据中出现的次数。
随后,在步骤S250中,对文本库中的文本数据进行第二次遍历,根据文本数据对应
的高频词元组,生成每行文本数据的预选文本模式。
具体地,可以根据文本数据对应的高频词元组,统计每行文本数据中相邻两个高
频词wi和wi+1之间的非高频词的数目m(wi,wi+1)。如果m(wi,wi+1)≠0,则将统计到的数目m
(wi,wi+1)以第一通配符的形式插入到高频词元组中的高频词wi和wi+1之间,从而得到该行文
本数据的预选文本模式。其中,第一通配符的表示方法可以为:*{m(wi,wi+1),m(wi,wi+1)},代
表某行文本数据中相邻的两个高频词wi和wi+1之间有m(wi,wi+1)个非高频词。当然这只是一
个示例性的说明,也可以用其他方式进行表示,本发明对此不作限制。
例如,若某行文本数据为:w1 A B C w2 D E w3 F w4,其中,用大写表示的为非高
频词,则该行文本对应的高频词元组为w1 w2 w3和w4,且相邻两个高频词之间的非高频词数
目分别为3、2、1,则该行文本数据的预选文本模式为:w1*{3,3} w2*{2,2} w3*{1,1} w4,记为
预模式一。
之后,以类似的方法对其他行的文本数据进行处理,若某行文本数据为:w1 F G
w2H I F w3 J K w4,则其生成的预选文本模式为w1*{2,2} w2*{3,3} w3{2,2} w4,记为预模
式二。
可以看到,预模式一和预模式二中的高频词元组是相同的,只是两个高频词之间
的通配符不同,即文本数据中两个高频词之间的非高频词数目不同,这两个预模式实际上
可以作为一种模式进行记录,以进一步浓缩文本库中的文本数据。
因此,根据本发明的一个实施例,如果有多行文本数据的对应高频词元组相同,则
可以将这多行文本数据的所对应的多个预选文本模式按照如下方式进行合并:对多个预选
文本模式进行一次遍历,确定其中每个预选文本模式中任意两个相邻的高频词wi和wi+1之
间的非高频词数目m(wi,wi+1),并从中选出最小值mmin(wi,wi+1)和最大值mmax(wi,wi+1);以及
对于其中任意一个预选文本模式,将该预选文本模式中任意两个相邻的高频词wi和wi+1之
间的内容修改为用最小值mmin(wi,wi+1)和最大值mmax(wi,wi+1)表示的第二通配符,从而得到
合并后的预选文本模式。
具体地,第二通配符的表示方法可以为:*{mmin(wi,wi+1),mmax(wi,wi+1)},代表在多
行文本数据中相邻的两个高频词wi和wi+1之间的非高频词数目,最少有mmin(wi,wi+1)个,最多
有mmax(wi,wi+1)个。当然这只是一个示例性的说明,也可以用其他方式进行表示,本发明对
此不作限制。
按照上述例子将预模式一和预模式二进行合并,w1和w2之间的的高频词,最少为2
个,最多为3个;w2和w3之间的高频词,也是最少为2个,最多为3个;w3和w4之间则分别是1个
和2个。因此,将这两个预模式为w1*{2,3}w2*{2,3} w3*{1,2} w4。
这里,若有k行文本数据都满足预定结构格式,并将其进行合并为预模式三,则认
为与预模式三匹对的文本数据共有k行。
随后,在步骤S260中,根据高频词之间的依赖度,对文本数据的预选文本模式进行
修正,得到文本数据的修正文本模式。
具体地,对预选文本模式进行修正步骤可以包括:计算预选文本模式中任意一个
高频词wi与同行的其他高频词的加权依赖度p(wi)=[p(wi|w1)+p(wi|w2)+…+p(wi|wn))]/
(n-1),其中n代表该行文本的高频词数目,且n≠i。如果该加权依赖度小于第二阈值,则将
该高频词wi作为高频词wi-1和wi+1之间的一个非高频词从该预选文本模式中删除,并相应的
修改wi-1和wi+1之间的通配符。其中,wi-1和wi+1分别是该预选文本模式中高频词wi前后相邻
的两个高频词,第二阈值可以取0.3-0.5,具体可以取0.4。
另外,对于预选文本模式中同行的高频词w1、w2…wn,如果i=1,则最后在修改通配
符时,需要修改的是w2左侧的通配符;如果i=n,则最后需要修改的是wn-1右侧的通配符。
例如,对于将预模式一和预模式二合并后的预模式三w1*{2,3}w2*{2,3}w3*{1,2}
w4,对于其中的高频词w2,因为已在步骤S240中计算得到w2出现时w1出现的条件概率p(w2|
w1),w3出现时w1出现的条件概率p(w3|w1),以及w4出现时w1出现的条件概率p(w4|w1),因此该
预选文本模式中w1与同行的其他高频词的加权依赖度p(w1)=[p(w1|w2)+p(w1|w3)+p(w1|
w4))]/3。如果其值为0.2,小于0.4,则可以认为w1不应该是该行的常用词,将其作为非高频
词进行处理,即将其在预选文本模式中删掉。相应地,也要修改w2左侧的通配符,将该通配
符的最小值和最大值都加1,得到修正文本模式*{3,4} w2*{2,3} w3*{1,2} w4,记为预模式
四。
当然,如果是w2与同行的其他高频词的加权依赖较低,则将w2删掉后需要相应修改
w1和w3之间的通配符,得到的修正文本模式为w1*{5,7} w3*{1,2} w4。
这里,在对文本模式进行修订时,同时考虑到了wi对wj的依赖度,以及wj对wi的依
赖度,两个依赖度都比较高时,才将其保留在文本模式的同一行中,而不是只要有一个高就
可以都保留,这样做可避免因单方面依赖度过低而影响整个文本模式的确定,以及生成的
文本模式匹配度低的问题。
应当理解,对预选文本模式的修正,可以对合并后的预选文本模式的进行加权依
赖度计算,并根据计算结果对该合并后的预选文本模式进行修正。当然,也可以对合并前的
预选文本模式的进行加权依赖度计算计算,根据计算结果对预选文本模式进行更新后再进
行合并的操作。而且,将预模式三修正为预模式四的过程中,其所匹对的文本数据并未改
变,因此与预模式四匹对的文本行数依然为有k行。
随后,在步骤S270中,对文本数据的修正文本模式进行相似度合并,得到文本模式
库。
具体地,对于任意两个修正文本模式,分别计算其序列长度l1和l2,并从中选出最
大值max(l1,l2),其中,修正文本模式的序列长度为其所包括的高频词的数目,也就是通配
符不计算到序列长度中。之后,确定这两个修正文本模式之间的最长公共子序列,并计算该
最长公共子序列的长度l3。其中,最长公共子序列(Longest Common Subsequence,LCS),是
指若一个序列S分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,
则S称为已知序列的最长公共子序列。之后,计算该最长公共子序列的长度l3与序列长度的
最大值的比值。如果该比值不小于第三阈值,则将这两个修正文本模式进行合并。其中,第
三阈值可以取0.6-0.9,具体可以取0.8。
进一步地,将两个修正文本模式进行合并的步骤包括:任选其中一个修正文本模
式,确定该修正文本模式中未计入最长公共子序列中的高频词wi;将该高频词wj作为该修正
文本模式中的一个非高频词而删除,并相应地修改其前后相邻的两个高频词wj-1和wj+1之间
的通配符,从而得到相似度合并后的文本模式。其中,高频词wj-1和wj+1是最长公共子序列中
与wj最相近的两个高频词。例如,若w2和w3都未计入到最长公共子序列中,而w1和w4计入其
中,则需要将w2和w3作为w1和w4之间的非高频词,并相应地修改w1和w4之间的通配符。另外,
对于修正文本模式中同行的高频词w1、w2…wn,若j=1,则最后修改通配符时,需要相应地修
改w2左侧的通配符;若j=n,则相应地修改wn-1右侧的通配符。
这里,在统计最长公共子序列时,需要在考虑高频词出现顺序的前提下计算任意
两个修正文本模式的相似文本长度。相似度合并后得到的文本模式,从结构上看是保留了
构成最长公共子序列的高频词部分,并将保留的高频词中任两个高频词之间的内容都作为
非高频词进行处理。通过统计保留后的任两个高频词之间非高频词数目的最小值和最大
值,来相应地修改这两个高频词之间的通配符。
若有预模式五:w1{1,3} w2 {4,4} w3 {1,1} w4 {2,2} w5和
预模式六:w1{2,3} w2 {2,2} w6 {1,1} w4 {1,3} w5;
在两个预模式中,其序列长度均为5;w1、w2、w4和w5的单词和顺序相同,这两个预模
式的最长公共子序列为4,而4/5=0.8,因此可以进行合并。统计得到w1和w2之间的非高频词
数目,最小值为1,最大值为3。将w3和w6都作为非高频词,统计得到w2和w4之间的非高频词数
目,最小值为4,最大值为6。而w4和w5之间的两个值分别是1和3。因此,最后合并后得到的文
本模式为:w1{1,3} w2 {4,6} w4 {1,3} w5。
这里,若与预模式五匹对的文本数据共有k1行,与预模式六匹对的文本数据共有k2
行,则将这两个预模式合并后的文本模式所匹对的文本数据共有有k1+k2行。
图3a和3b分别示出了根据本发明一个实施例的日志文本的部分数据,以及由该完
整的日志文本数据所生成的文本模式。在该日志文本中共有1997条日志数据,将这些日志
数据进行分析统计后,生成的文本模式只有两个,图3b中的第一个文本模式匹对的文本数
据有1373条,第一个文本模式匹对的文本数据有624条,这两个文本模式的匹配度与覆盖率
非常高。
图4a和4b分别示出了根据本发明一个实施例的url文本数据,以及由该url文本数
据生成的文本模式。其中,该url文本中共有63034条url数据,其生成的文本模式只有十几
种,这些文本模式可以覆盖到99.9%的文本数据。
图5示出了根据本发明一个实施例的由trace文本数据生成的文本模式。这里,共
有14298条trace数据,其生成的文本模式只有7种,基本覆盖了97.3%的文本数据。
可见,用本发明中的方法所生成的文本模式,能够精准又广泛的覆盖大部分文本
数据,极大地方便了后续的数据处理与分析过程,如故障定位、文本关联分析等。
图6示出了根据本发明一个实施例的文本模式生成装置300的结构框图。如图6所
示,该应用包括:分词单元310、词典生成单元320、元组生成单元330、依赖度计算单元340、
预模式生成单元350、预模式修正单元360和模式库生成单元370。
分词单元310适于获取包括多条文本数据的文本库,并对其中每行文本数据进行
分词处理。其中,文本库包括日志文本库、url文本库或trace文本库;文本数据为半结构化
文本数据或非结构化文本数据。
词典生成单元320适于对文本库中的文本数据进行第一次遍历,统计出所有文本
数据中每个单词的出现次数,并从中筛选出出现次数大于第一阈值的单词作为高频词,将
高频词与该高频词的出现次数相关联的存储为高频词词典。
元组生成单元330适于分别从文本库中的每行文本数据中筛选出高频词,构成该
行文本数据对应的高频词元组。
依赖度计算单元340适于根据各高频词在文本数据中的出现次数,计算任意两个
高频词之间的依赖度。其计算过程已在方法200中详细说明,在此不再赘述。
预模式生成单元350适于对文本库中的文本数据进行第二次遍历,根据文本数据
对应的高频词元组,生成每行文本数据的预选文本模式。具体地,预模式生成单元350可以
统计每行高频词元组中相邻两个高频词wi和wi+1之间的非高频词的数目m(wi,wi+1)。如果m
(wi,wi+1)≠0,则将统计到的数目m(wi,wi+1)以第一通配符的形式插入到高频词wi和wi+1之
间,从而得到该行文本数据的预选文本模式。
预模式修正单元360适于根据高频词之间的依赖度,对文本数据的预选文本模式
进行修正,得到文本数据的修正文本模式。具体地,预模式修正单元360适于计算预选文本
模式中任意一个高频词wi与同行的其他高频词的加权依赖度p(wi)=[p(wi|w1)+p(wi|w2)
+…+p(wi|wn))]/(n-1),其中n代表该行文本的高频词数目,且n≠i。如果加权依赖度小于第
二阈值,则将该高频词wi设置为高频词wi-1和wi+1之间的一个非高频词,并相应的修改wi-1和
wi+1之间的通配符。
模式库生成单元370适于对文本数据的修正文本模式进行相似度合并,得到文本
模式库。具体地,模式库生成单元370适于对于任意两个修正文本模式,分别计算其字序列
长度l1和l2,并从中选出最大值max(l1,l2);确定这两个修正文本模式之间的最长公共子序
列,并计算该最长公共子序列的长度l3,以及该最长公共子序列的长度l3与序列长度的最大
值的比值。如果该比值不小于第三阈值,则将这两个修正文本模式进行合并。
根据一个实施例,装置300还可以包括文本替换单元(图中未示出),适于在对每行
文本数据进行分词处理前,将每行文本数据中的预定类型的关键词替换为预定词。其中,预
定类型的关键词包括时间、日期、ip、数字和端口中的至少一个。
根据另一个实施例,装置300还可以包括预模式合并单元(图中未示出),适于当有
多行文本数据的对应高频词元组相同时,将这多行文本数据的所对应的多个预选文本模式
按照如下方式进行合并:对多个预选文本模式进行一次遍历,确定其中每行预选文本模式
中任意两个相邻的高频词wi和wi+1之间的非高频词数目m(wi,wi+1),并从中选出最小值mmin
(wi,wi+1)和最大值mmax(wi,wi+1)。对于其中任意一个预选文本模式,将该预选文本模式中任
意两个相邻的高频词wi和wi+1之间的内容修改为用最小值mmin(wi,wi+1)和最大值mmax(wi,
wi+1)表示的第二通配符。
根据本发明的文本模式生成装置300,其具体细节已在基于图1-图5的描述中详细
公开,在此不再赘述。
根据本发明的技术方案,通过统计单词出现次数,得到文本数据中的高频词;根据
每行文本数据的高频词元组中单词之间的依赖度,对生成的预选文本模式进行修正;通过
合并相似度较高的修正文本模式,既能够更好地保留文本模式的语义,也不会过分合并而
消除太多语义。这样生成的文本模式匹配度很高,能最大限度的覆盖大多数的文本数据。另
外,本发明还将文本数据中的的时间、日期、数字、IP等预定类型的词正则替换为其他预定
词,这样。可以将其作为普通词进行处理,进一步精简了文本模式的数据量,也提高了其对
文本数据的覆盖度。
A9、如A1或A8所述的方法,将两个修正文本模式进行合并的步骤包括:任选其中一
个修正文本模式,确定该修正文本模式中未计入最长公共子序列中的高频词;将该高频词
作为该修正文本模式中的一个非高频词而删除,并相应地修改其前后相邻的两个高频词之
间的通配符,从而得到相似度合并后的文本模式。
A10、如A1所述的方法,其中,所述文本库为日志文本库、url文本库或trace文本
库;所述第一阈值的取值为max(支持度×文本数据行数,第四阈值)。
A11、如A1-A10中任一项所述的方法,其中,所述文本数据为半结构化文本数据;所
述将每行文本数据中的预定类型的关键词替换为预定词的步骤包括:将时间类关键词替换
为DATE,日期类关键词替换为TIME,数字类关键词替换为NUM,以及将ip地址类关键词替换
为IP。
A12、如A1-A10中任一项所述的方法,其中,所述支持度为0.05‰-0.15‰,所述第
二阈值为0.3-0.5,所述第三阈值为0.6-0.9,所述第四阈值为4-6。
B14、如B13所述的装置,还包括文本替换单元,适于:在对每行文本数据进行分词
处理前,将每行文本数据中的预定类型的关键词替换为预定词;其中,所述预定类型的关键
词包括时间、日期、ip和数字中的至少一个。
B15、如B13所述的装置,其中,任意两个高频词wi和wj之间的依赖度包括wi出现时
wj出现的第一条件概率p(wj|wi),以及wj出现时wi出现的第二条件概率p(wi|wj),所述依赖
度计算单元适于:统计任意两个高频词wi和wj在同一行文本数据中出现的次数n(wi,wj);根
据p(wj|wi)=n(wi,wj)/n(wi)计算第一条件概率,以及根据p(wi|wj)=n(wi,wj)/n(wj)计算
的第二条件概率;其中,n(wi)和n(wj)分别是高频词wi和wj在所有文本数据中出现的次数。
B16、如B13所述的装置,其中,所述预模式生成单元适于:根据文本数据对应的高
频词元组,统计每行文本数据中相邻两个高频词wi和wi+1之间的非高频词的数目m(wi,wi+1);
如果m(wi,wi+1)≠0,则将统计到的数目m(wi,wi+1)以第一通配符的形式插入到高频词wi和
wi+1之间,从而得到该行文本数据的预选文本模式。
B17、如B16所述的装置,还包括预模式合并单元,适于:当有多行文本数据的对应
高频词元组相同时,则将这多行文本数据的所对应的多个预选文本模式按照如下方式进行
合并:对所述多个预选文本模式进行一次遍历,确定其中每行预选文本模式中任意两个相
邻的高频词wi和wi+1之间的非高频词数目m(wi,wi+1),并从中选出最小值mmin(wi,wi+1)和最大
值mmax(wi,wi+1);以及对于其中任意一个预选文本模式,将该预选文本模式中任意两个相邻
的高频词wi和wi+1之间的内容修改为用最小值mmin(wi,wi+1)和最大值mmax(wi,wi+1)表示的第
二通配符。
B18、如B17所述的装置,其中,所述第一通配符的表示方法为:*{m(wi,wi+1),m(wi,
wi+1)},代表某行文本数据中相邻的两个高频词wi和wi+1之间有m(wi,wi+1)个非高频词;所述
第二通配符的表示方法为:*{mmin(wi,wi+1),mmax(wi,wi+1)},代表在所述多行文本数据中相邻
的两个高频词wi和wi+1之间的非高频词数目,最少有mmin(wi,wi+1)个,最多有mmax(wi,wi+1)个。
B19、如B13-B18中任一项所述的装置,其中,所述预模式修正适于:计算所述预选
文本模式的任意一个高频词wi与同行的其他高频词的加权依赖度p(wi)=[p(wi|w1)+p(wi|
w2)+…+p(wi|wn))]/(n-1),其中n代表该行文本的高频词数目,且n≠i;如果所述加权依赖
度小于第二阈值,则将该高频词wi作为高频词wi-1和wi+1之间的一个非高频词而删除,并相
应的修改wi-1和wi+1之间的通配符;其中,wi-1和wi+1分别是该预选文本模式中高频词wi前后
相邻的两个高频词。
B20、如B13所述的装置,其中,所述模式库生成单元适于:对于任意两个修正文本
模式,分别计算其序列长度l1和l2,并从中选出最大值max(l1,l2),其中,修正文本模式的序
列长度为其所包括的高频词的数目;确定这两个修正文本模式之间的最长公共子序列,并
计算该最长公共子串的长度l3;以及计算所述最长公共子序列的长度l3与序列长度的最大
值的比值;如果该比值不小于第三阈值,则将这两个修正文本模式进行合并。
B21、如B13或B20所述的装置,其中,所述模式库生成单元适于根据以下方法两个
修正文本模式进行合并:任选其中一个修正文本模式,确定该修正文本模式中未计入最长
公共子序列中的高频词;将该高频词作为该修正文本模式中的一个非高频词而删除,并相
应地修改其前后相邻的两个高频词之间的通配符,从而得到相似度合并后的文本模式。
B22、如B13所述的装置,其中,所述文本库为日志文本库、url文本库或trace文本
库;所述第一阈值的取值为max(支持度×文本数据行数,第四阈值)。
B23、如B13-B22中任一项所述的装置,其中,所述文本数据为半结构化文本数据;
所述文本替换单元适于:将时间类关键词替换为DATE,日期类关键词替换为TIME,数字类关
键词替换为NUM,以及将ip地址类关键词替换为IP。
B24、如B13-B22中任一项所述的装置,其中,所述支持度为0.05‰-0.15‰,所述第
二阈值为0.3-0.5,所述第三阈值为0.6-0.9,所述第四阈值为4-6。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施
例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结
构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在
上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施
例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保
护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的
权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵
循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都
作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组
件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备
不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个
子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地
改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例
中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的
范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任
意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行
所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法
元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在
此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行
的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来
描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必
须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域
内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,
本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对本技
术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发
明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。