本发明涉及文档识别,尤其涉及一种识别文档中代码段的方法及装置。
背景技术:
1、随着计算机技术的快速发展,各种各样的文档运用而生。一些文档中通常会包含一部分代码段,例如介绍计算机语言的文档,又如用于网络攻击而携带有恶意代码的文档。
2、基于自动调整文档中代码段格式或者避免文档中恶意代码进行网络攻击等需求,如何自动识别文档中的代码段,是目前亟待解决的问题。
技术实现思路
1、针对现有技术存在的问题,本发明实施例提供一种识别文档中代码段的方法及装置。
2、本发明提供一种识别文档中代码段的方法,包括:
3、确定目标文档中的待识别区域,所述待识别区域包含相连的至少一个文本行;
4、对各所述文本行进行文本行关联检测,得到所述待识别区域是否具有连续性特征的检测结果,所述连续性特征表征所述文本行之间的特征连续;
5、对各所述文本行中文本对象的字体进行识别,确定所述待识别区域是否具有字体特征的第一识别结果;
6、对各所述文本行中文本对象的固定宽度属性和统一码进行识别,确定所述待识别区域是否具有代码特征的第二识别结果;
7、根据所述检测结果、所述第一识别结果和所述第二识别结果,确定所述目标文档中的所述待识别区域是否为代码段。
8、根据本发明提供的一种识别文档中代码段的方法,所述对各所述文本行中文本对象的固定宽度属性和统一码进行识别,确定所述待识别区域是否具有代码特征的第二识别结果,包括:
9、识别每个所述文本行中各文本对象对应的固定宽度属性和统一码;
10、判断各所述文本行是否均符合代码特征条件,所述代码特征条件为所述文本行中各文本对象对应的所述固定宽度属性均为具有固定宽度,且所述文本行中各文本对象对应的各所述统一码均属于设定区间段;
11、若是,确定所述第二识别结果为所述待识别区域具有所述代码特征;
12、若否,确定所述第二识别结果为所述待识别区域不具有所述代码特征。
13、根据本发明提供的一种识别文档中代码段的方法,所述字体特征包括字体大小特征和字体簇特征,所述第一识别结果包括字体大小识别结果和字体簇识别结果;
14、相应地,所述对各所述文本行中文本对象的字体进行识别,确定所述待识别区域是否具有字体特征的第一识别结果,包括:
15、针对每个文本行,识别所述文本行中各文本对象的字体大小,并根据各所述字体大小,确定所述文本行对应的第一平均字体大小;根据各所述第一平均字体大小,确定所述待识别区域是否具有所述字体大小特征的所述字体大小识别结果;
16、识别各所述文本行中第一个所述文本对象的字体簇;根据各所述字体簇,确定所述待识别区域是否具有所述字体簇特征的所述字体簇识别结果。
17、根据本发明提供的一种识别文档中代码段的方法,所述根据各所述第一平均字体大小,确定所述待识别区域是否具有所述字体大小特征的所述字体大小识别结果,包括:
18、确定各所述第一平均字体大小中最大平均字体大小和最小平均字体大小的比值;
19、在所述比值小于或等于设定值的情况下,确定所述字体大小识别结果为所述待识别区域具有所述字体大小特征;
20、在所述比值大于所述设定值的情况下,确定所述字体大小识别结果为所述待识别区域不具有所述字体大小特征。
21、根据本发明提供的一种识别文档中代码段的方法,所述文本行关联检测包括内容类型检测和文本行类型检测,所述连续性特征包括内容类型特征和文本行类型特征,所述检测结果包括内容类型检测结果和文本行类型检测结果;
22、相应地,所述对各所述文本行进行文本行关联检测,得到所述待识别区域是否具有连续性特征的检测结果,包括:
23、对各所述文本行进行内容类型检测,得到所述待识别区域是否具有所述内容类型特征的所述内容类型检测结果;
24、对各所述文本行进行文本行类型检测,得到所述待识别区域是否具有所述文本行类型特征的所述文本行类型检测结果。
25、根据本发明提供的一种识别文档中代码段的方法,所述内容类型检测包括空行检测和图片行检测,所述内容类型特征包括空行特征和图片行特征,所述内容类型检测结果包括空行检测结果和图片行检测结果;
26、相应地,所述对各所述文本行进行内容类型检测,得到所述待识别区域是否具有所述内容类型特征的所述内容类型检测结果,包括:
27、对各所述文本行进行空行检测,确定各所述文本行是否为不存在正文内容的空行;在各所述文本行中存在空行的情况下,确定所述空行检测结果为所述待识别区域具有所述空行特征;在各所述文本行中不存在空行的情况下,确定所述空行检测结果为所述待识别区域不具有所述空行特征;
28、对各所述文本行进行图片行检测,确定各所述文本行是否为图片行;在各所述文本行中存在图片行的情况下,确定所述图片行检测结果为所述待识别区域具有所述图片行特征;在各所述文本行中不存在图片行的情况下,确定所述图片行检测结果为所述待识别区域不具有所述图片行特征。
29、根据本发明提供的一种识别文档中代码段的方法,所述文本行类型检测包括书写方向检测、行交集检测、字体样式检测和行距检测,所述文本行类型特征包括书写方向特征、行交集特征、字体样式特征和行距特征,所述文本行类型检测结果包括书写方向检测结果、行交集检测结果、字体样式检测结果和行距检测结果;
30、相应地,所述对各所述文本行进行文本行类型检测,得到所述待识别区域是否具有所述文本行类型特征的所述文本行类型检测结果,包括:
31、对各所述文本行进行书写方向检测,确定各所述文本行的书写方向;在各所述书写方向均相同的情况下,确定所述书写方向检测结果为所述待识别区域具有所述书写方向特征;在各所述书写方向存在不同书写方向的情况下,确定所述书写方向检测结果为所述待识别区域不具有书写方向特征;
32、对各文本行对进行行交集检测,判断各所述文本行对中的所述文本行在行方向上的投影是否存在交集,所述文本行对为各所述文本行中相连的两个文本行;若否,确定所述行交集检测结果为所述待识别区域不具有所述行交集特征;
33、对各所述文本行对进行字体样式检测,判断各所述文本行对是否均符合字体样式特征条件,所述字体样式特征条件为所述文本行对中所述文本行之间的字体粗细范围存在交集,且所述文本行之间的斜体属性相同;若是,确定所述字体样式检测结果为所述待识别区域具有所述字体样式特征;若否,确定所述字体样式检测结果所述待识别区域不具有所述字体样式特征;
34、对各所述文本行对进行行距检测,确定各所述文本行对中所述文本行之间的行距;根据各所述行距,确定所述待识别区域是否具有所述行距特征的所述行距检测结果。
35、根据本发明提供的一种识别文档中代码段的方法,所述根据各所述行距,确定所述待识别区域是否具有所述行距特征的所述行距检测结果,包括:
36、确定各所述行距的平均行距,并统计各所述文本行中所有文本对象的第二平均字体大小;
37、判断各所述行距是否均为目标行距,所述目标行距小于或等于所述第二平均字体大小的第一设定倍数,且所述目标行距与所述平均行距的绝对差小于或等于所述第二平均字体大小的第二设定倍数,所述第一设定倍数大于所述第二设定倍数;
38、若是,确定所述行距检测结果为所述待识别区域具有所述行距特征;
39、若否,确定所述行距检测结果为所述待识别区域不具有所述行距特征。
40、根据本发明提供的一种识别文档中代码段的方法,所述对各文本行对进行行交集检测,判断各所述文本行对中的所述文本行在行方向上的投影是否存在交集之后,还包括:
41、若是,判断各所述交集中是否存在目标交集,所述目标交集的长度大于或等于目标文本行的投影长度的第三设定倍数,所述目标文本行为所述目标交集对应的任一文本行;
42、若存在,确定所述行交集检测结果为所述待识别区域具有所述行交集特征;
43、若不存在,确定所述行交集检测结果为所述待识别区域不具有所述行交集特征。
44、根据本发明提供的一种识别文档中代码段的方法,所述根据所述检测结果、所述第一识别结果和所述第二识别结果,确定所述目标文档中的所述待识别区域是否为代码段,包括:
45、将所述检测结果、所述第一识别结果和所述第二识别结果分别与设定代码识别条件进行比较;
46、在比较结果为均符合的情况下,确定所述目标文档中的所述待识别区域为代码段。
47、根据本发明提供的一种识别文档中代码段的方法,所述将所述检测结果、所述第一识别结果和所述第二识别结果分别与设定代码识别条件进行比较之后,还包括:
48、在比较结果为存在不符合的情况下,确定所述目标文档中的所述待识别区域不为代码段,并获取所述待识别区域包含文本行的行数;
49、在所述行数不为第一预设值的情况下,令所述行数减去第二预设值,得到更新后的行数;
50、确定所述待识别区域中的各目标子区域,所述目标子区域包含有更新后的所述行数且相连的文本行;
51、将所述各目标子区域分别作为更新后的待识别区域,继续执行所述对各所述文本行进行文本行关联检测,得到所述待识别区域是否具有连续性特征的检测结果的步骤。
52、本发明还提供一种识别文档中代码段的装置,包括:
53、第一确定模块,被配置为确定目标文档中的待识别区域,所述待识别区域包含相连的至少一个文本行;
54、检测模块,被配置为对各所述文本行进行文本行关联检测,得到所述待识别区域是否具有连续性特征的检测结果,所述连续性特征表征所述文本行之间的特征连续;
55、第一识别模块,被配置为对各所述文本行中文本对象的字体进行识别,确定所述待识别区域是否具有字体特征的第一识别结果;
56、第二识别模块,被配置为对各所述文本行中文本对象的固定宽度属性和统一码进行识别,确定所述待识别区域是否具有代码特征的第二识别结果;
57、第二确定模块,被配置为根据所述检测结果、所述第一识别结果和所述第二识别结果,确定所述目标文档中的所述待识别区域是否为代码段。
58、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述识别文档中代码段的方法。
59、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述识别文档中代码段的方法。
60、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述识别文档中代码段的方法。
61、本发明提供的识别文档中代码段的方法及装置,通过确定目标文档中的待识别区域,所述待识别区域包含相连的至少一个文本行;对各所述文本行进行文本行关联检测,得到所述待识别区域是否具有连续性特征的检测结果,所述连续性特征表征所述文本行之间的特征连续;对各所述文本行中文本对象的字体进行识别,确定所述待识别区域是否具有字体特征的第一识别结果;对各所述文本行中文本对象的固定宽度属性和统一码进行识别,确定所述待识别区域是否具有代码特征的第二识别结果;根据所述检测结果、所述第一识别结果和所述第二识别结果,确定所述目标文档中的所述待识别区域是否为代码段,能够快速准确地识别出文档的每一页中存在的若干个代码段,避免将相连的两个代码段识别为一个代码段,提高了代码段识别的准确率。