CN111475146A - 布局元素属性的识别方法及装置 - Google Patents

布局元素属性的识别方法及装置 Download PDF

Info

Publication number
CN111475146A
CN111475146A CN201910067543.8A CN201910067543A CN111475146A CN 111475146 A CN111475146 A CN 111475146A CN 201910067543 A CN201910067543 A CN 201910067543A CN 111475146 A CN111475146 A CN 111475146A
Authority
CN
China
Prior art keywords
decision tree
attribute
training
layout
training data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910067543.8A
Other languages
English (en)
Other versions
CN111475146B (zh
Inventor
张旋辰
冯海芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Health Information Technology Ltd
Original Assignee
Alibaba Health Information Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Health Information Technology Ltd filed Critical Alibaba Health Information Technology Ltd
Priority to CN201910067543.8A priority Critical patent/CN111475146B/zh
Publication of CN111475146A publication Critical patent/CN111475146A/zh
Application granted granted Critical
Publication of CN111475146B publication Critical patent/CN111475146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Character Input (AREA)

Abstract

本申请公开了一种布局元素属性的识别方法及装置,该方法包括:解析初始代码的代码结构,得到解析结果,所述初始代码用于生成布局文件;按照预设的代码结构与特征数据的对应关系,从所述解析结果中查找与所述特征数据对应的代码字段,提取所述特征数据,所述特征数据包括布局元素属性特征和特征值;将所述特征数据输入决策树进行决策,得到布局元素属性识别结果。本申请可以提高识别布局元素属性的准确度。

Description

布局元素属性的识别方法及装置
技术领域
本说明书实施例方案属于计算机页面布局的技术领域,尤其涉及一种布局元素属性的识别方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本说明书实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,Sketch布局自动生成工具在生成布局元素属性时,通常使用if else判断方式来识别布局元素的属性。但是,由于if else判断方式的判断条件根据人为经验设置,而人为经验能够覆盖的情况较为有限,因此,这种布局元素属性的识别方法的准确度较低。
发明内容
本说明书实施例目的在于提供一种布局元素属性的识别方法及装置,可以提高识别布局元素属性的准确度。
第一方面,本说明书实施例提供一种布局元素属性的识别方法,该方法包括:
解析初始代码的代码结构,得到解析结果,所述初始代码用于生成布局文件;按照预设的代码结构与特征数据的对应关系,从所述解析结果中查找与所述特征数据对应的代码字段,提取所述特征数据,所述特征数据包括布局元素属性特征和特征值;将所述特征数据输入决策树进行决策,得到布局元素属性识别结果。
第二方面,本说明书实施例提供一种布局元素属性的识别装置,该装置包括:
解析模块,用于解析初始代码的代码结构,得到解析结果,所述初始代码用于生成布局文件;提取模块,用于按照预设的代码结构与特征数据的对应关系,从所述解析模块解析得到的所述解析结果中查找与所述特征数据对应的代码字段,提取所述特征数据,所述特征数据包括布局元素属性特征和特征值;决策模块,用于将所述提取模块提取的所述特征数据输入决策树进行决策,得到布局元素属性识别结果。
第三方面,本说明书实施例提供一种计算机设备,该计算机设备包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的布局元素属性的识别方法。
第四方面,本说明书实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有执行第一方面所述的布局元素属性的识别方法的计算机程序。
本申请提供的布局元素属性的识别方法及装置,从生成布局文件的初始代码中提取特征数据,将特征数据输入决策树进行决策,得到布局属性识别结果,与现有技术中根据人为经验识别布局元素属性的方法相比,本申请利用机器学习来识别布局元素属性的方法更加客观与全面,提高了布局元素属性识别的准确度。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种布局元素属性的识别装置的结构图;
图2是本申请实施例提供的一种布局元素属性的识别装置执行布局元素属性识别方法的交互流程图;
图3是本申请实施例提供的一种决策模块的结构图;
图4是本申请实施例提供的一种布局元素属性的识别方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行。
下面首先介绍本申请的技术背景或技术手段进行简要说明。
1、机器学习
机器学习(Machine Learning,ML)涉及概率论、统计学、逼近论、凸分析和算法复杂度理论等多个领域,是一门多领域交叉学科。机器学习专门用于研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,并且通过归纳与综合,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。
2、决策树算法
决策树算法通过对已知数据进行分类,从而达到对未知数据进行预测的目的。该决策树算法先根据训练数据集形成决策树,再对输入决策树的未知数据进行分类。如果该决策树不能对所有对象给出正确的分类,那么可以选择一些例外加入到训练数据集中,重复训练过程直到得到正确的决策集。其中,决策树是用来表示决策集的树形结构。
决策树由决策结点、分支和叶子组成。决策树最上面的结点为根结点,每个分支是一个新的决策结点或树的叶子。每个决策结点代表一个问题或决策,通常对应于待分类对象的属性。每一个叶子结点代表一种可能的分类结果。在沿决策树从上到下遍历的过程中,在每个结点都会遇到一个测试,对每个结点上问题的不同测试输出导致不同的分支,最后会达到一个叶子结点,这个过程就是利用决策树进行分类的过程,利用若干个变量来判断待分类对象的类别。
3、ID3算法
ID3算法最早是由罗斯昆(J.Ross Quinlan)于1975年在悉尼大学提出,该算法是一种分类预测算法,核心是“信息熵”。ID3算法通过计算每个属性的信息增益,认为信息增益高的属性是好属性,每次分类时选取信息增益最高的属性作为划分标准,重复该过程,直至生成一个能完美分类训练样例的决策树。
基于现有技术中使用if else判断方式识别布局元素属性时存在准确度较低的问题,本申请实施例提供了一种布局元素属性的识别装置,其提取初始代码中与布局元素属性相关的特征数据,之后将特征数据输入经过训练得到的决策树中进行决策,最终得到布局元素属性识别结果,达到对布局元素属性精准识别的目的。
下面将介绍本申请的具体技术方案。图1示出了本申请实施例提供的布局元素属性的识别装置的一种可能的结构,如图1所示,该布局元素属性的识别装置100包括解析模块101、提取模块102和决策模块103,图2示出了上述三个模块实现的布局元素属性的识别结果的方法流程图。参阅图1和图2,在本申请实施例中:
步骤201、解析模块解析初始代码的代码结构,得到解析结果。
其中,初始代码用于生成布局文件。
布局文件是软件工程中使用的一种描述页面组件的排列位置的文件。
布局元素属性用于表示页面组件的排列位置,其总类别可分为横向布局(LinearLayout)、相对布局(RelativeLayout)、文本框(TextView)、按钮图像视图(ButtonImageView)等。每个总类别中还包括多个子类别的布局元素属性。示例性的,RelativeLayout中子控件的常用布局元素属性及对应的代码如下所示:
1、子控件的位置相对于父控件
①、子控件的顶部与父控件的顶部对齐,其代码可以为android:layout_alignParentTop;
②、子控件的底部与父控件的底部对齐,其代码可以为android:layout_alignParentBottom;
③、子控件的左部与父控件的左部对齐,其代码可以为android:layout_alignParentLeft;
④、控件的右部与父控件的右部对齐,其代码可以为android:layout_alignParentRight。
2、子控件的位置相对给定ID控件
①、子控件的底部置于给定ID的控件之上,其代码可以为android:layout_above;
②、子控件的底部置于给定ID的控件之下,其代码可以为android:layout_below;
③、子控件的右边缘与给定ID的控件左边缘对齐,其代码可以为android:layout_toLeftOf;
④、子控件的左边缘与给定ID的控件右边缘对齐,其代码可以为android:layout_toRightOf;
⑤、子控件的基线(baseline)与给定ID的baseline对齐,其代码可以为android:layout_alignBaseline;
⑥、子控件的顶部边缘与给定ID的顶部边缘对齐,其代码可以为android:layout_alignTop;
⑦、子控件的底部边缘与给定ID的底部边缘对齐,其代码可以为android:layout_alignBottom;
⑧、子控件的左边缘与给定ID的左边缘对齐,其代码可以为android:layout_alignLeft;
⑨、子控件的右边缘与给定ID的右边缘对齐,其代码可以为android:layout_alignRight。
3、子控件的位置居中
①、子控件水平居中,其代码可以为android:layout_centerHorizontal;
②、子控件垂直居中,其代码可以为android:layout_centerVertical;
③、子控件处于父控件的中央,其代码可以为android:layout_centerInParent。
在初始代码中设置了布局元素属性,那么根据初始代码生成的页面中,相应布局元素就会呈现在相应位置上。示例性的,根据初始代码解析出的布局元素属性对应的初始代码的代码结构可以为:
Figure BDA0001956208410000051
步骤202、提取模块按照预设的代码结构与特征数据的对应关系,从解析结果中查找与特征数据对应的代码字段,提取特征数据。
其中,特征数据包括布局元素属性特征和特征值。
在编写初始代码时,会对初始代码中的每条语句进行定义,即确定代码结构与特征数据之间的对应关系。示例性的,步骤201中给出的初始代码的代码结构与特征数据的对应关系如下所示:
“控件类型”对应“RelativeLayout”;
控件属性:
“宽”对应“android:layout_width="match_parent"”;
“高”对应“android:layout_height="80dp"”;
内部控件的控件属性:
“控件类型”对应“TextView”
“宽”对应“android:layout_width="wrap_content"”;
“高”对应“android:layout_height="wrap_content"”;
“相对于父控件底对齐”对应“android:layout_alignParentBottom="true"”;
“相对于父控件右对齐”对应“android:layout_alignParentRight="true"”。
其中,该“TextView”类型的控件为“RelativeLayout”类型控件的内部控件,也就是说,“RelativeLayout”类型控件的内部控件控件个数为1。
布局元素属性特征会影响控件在页面中的呈现位置。具体的,布局元素属性特征包括布局的类型,如该布局是横向布局还是相对布局;还包括布局内部控件信息,如布局内部控件的数量;还包括布局中控件属性,如控件的宽度、高度、左对齐、右对齐、距离父控件的距离等。
步骤203、决策模块将特征数据输入决策树进行决策,得到布局元素属性识别结果。
在将布局元素属性特征输入决策树进行决策之前,决策模块还需要构建决策树。具体的,参阅图3,决策模块中的确定子模块1031可以根据已生成的布局文件,确定影响布局元素属性识别结果的属性;提取子模块1032从影响布局元素属性识别结果的属性中提取训练数据;训练子模块1033将训练数据输入决策树算法进行训练,得到决策树。
本申请实施例中,在构建决策树之前,先采集大量的布局文件,以得到足够数量的样本数据,这样根据样本数据训练得到的决策树能够覆盖多种布局元素属性的情况,利用训练好的决策树确定的布局元素属性识别结果也更加准确。
其中,影响布局元素属性识别结果的属性包括布局内部控件信息、布局中控件属性等。
影响布局元素属性识别结果的属性的选取很关键,直接影响到根据决策树得到的决策结果的好坏。影响布局元素属性识别结果的属性可以依据经验值或现有的一些算法,如ID3算法或C45算法等来实现,在此不再赘述。
示例性的,下面提供了四个属性:
@attribute parentHasWeight{yes,no,N/A}
@attribute parentLayoutType{N/A,LinearLayout,RelativeLayout}
@attribute thisIsRoot{yes,no}
@attribute originWidth{match_parent,wrap_content,0.5,other,0}
其中,上述四个属性对应的属性分别为“parentHasWeight”、“parentLayoutType”、“thisIsRoot”与“originWidth”,上述四个属性均会对布局元素属性识别结果产生影响。设定parentHasWeight的离散数据点为{yes,no,N/A},parentLayoutType的离散数据点为{N/A,LinearLayout,RelativeLayout},thisIsRoot的离散数据点为{yes,no},originWidth的离散数据点为{match_parent,wrap_content,0.5,other,0}。
示例性的,根据这些离散数据点进行数据采样,会得到如下训练数据:
LIKE_LINEARLAYOUT_H,N/A,yes,N/A,match_parent,largerThan360,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,TextView,between10and36,IconFont,between10and36,3,AllTextView,match_parent
或者如下所示:
TextView,RelativeLayout,no,largerThan360,wrap_content,between10and90,no,N/A,N/A,yes,TextView,between36and375,between10and36,between36and375,N/A,N/A,N/A,N/A,N/A,N/A,N/A,wrap_content
在训练数据准备完成之后,可以使用属性关系文件格式(Attribute-RelationFile Format,ARFF)存储训练数据。
在本申请实施例中,训练数据中包括影响布局元素属性识别结果的属性的取值范围。在这些取值范围中,以数字限定的取值范围需要进行离散化处理,那么在根据影响布局元素属性识别结果的属性提取训练数据之后,决策模块中包括的离散化处理子模块1034可以对影响布局元素属性识别结果的属性的取值范围中,以数字限定的取值范围进行离散化处理。之后训练子模块1033将经过离散化处理的训练数据输入决策树算法进行训练,得到决策树。示例性的,固定数的宽为100dp,高为100dp,填充(Padding)为20dp,这些数据就需要进行离散化处理,其进行离散化处理时选择的离散化范围可以为5dp。
在本申请实施例中,步骤201中提取的特征值属于取值范围。例如,从初始代码中提取出的特征值为yes,其可以属于取值范围“yes,no,N/A”。
在提取出训练数据之后,训练子模块1033可以利用ID3算法或C45算法等决策树算法来构建决策树。在利用决策树算法对训练数据进行训练的过程中,训练子模块1033可以先计算训练数据对应的信息熵增益,之后根据不同训练数据对应的信息熵增益的大小关系,确定决策树的结点顺序。在本申请实施例中,将最大信息熵增益对应的布局元素属性作为根结点,将越大的信息熵增益对应的属性作为越靠近根结点的结点,这样就确定了决策树中的结点顺序。
需要说明的是,信息熵增益可以依据现有技术中的算法进行计算,在此不做赘述。
在本申请实施例中,训练子模块1033在确定决策树中结点顺序之后,可以根据结点顺序,生成决策树的数据结构,其中,数据结构用于对训练数据进行分类和分层。利用数据结构,训练子模块1033对训练数据进行训练,形成决策树。
在本申请实施例中,训练子模块1033利用信息熵确定结点顺序构建决策树,信息熵能够判断出不同条件下不同属性对于布局元素属性识别结果的影响程度,这样根据影响程度由大到小的顺序确定结点顺序,生成的决策树,就能够优先判断影响程度更大的属性,相比于现有技术中人为经验设置的逻辑判断,为布局元素属性的确定提供更准确的判断依据。
此外,由于页面包括多种类型,如弹框页面、列表页面等,不同页面类型的页面所对应的布局类型不同,为了使决策树更加具有针对性,在本申请实施例中,训练子模块1033可以根据训练数据中包括的页面类型对训练数据进行分类,将相同页面类型的训练数据输入决策树算法进行训练,得到与页面类型对应的决策树。这样,在后续利用决策树进行布局属性识别时,即可将不同页面类型的特征数据输入相应决策树进行决策,提高了决策树决策结果的准确度。
此外,用于生成决策树的布局文件所包括的影响布局元素属性识别结果的属性有限,也就会导致生成的决策树可能不能将所有布局元素属性特征进行正确的分类。因此,如果布局元素属性识别结果错误,接收模块可以接收用户输入的布局元素的属性;之后,训练子模块1033将用户输入的布局元素的属性以及布局元素属性特征作为训练数据输入决策树进行训练,得到更新的决策树。这样不断的更新决策树,能够得到更加完善的决策树,根据该更加完善的决策树得到的布局元素属性识别结果的准确度也会越来越高。
本申请提供的布局元素属性的识别装置,从生成布局文件的初始代码中提取特征数据,将特征数据输入决策树进行决策,得到布局属性识别结果,与现有技术中根据人为经验识别布局元素属性的方法相比,本申请利用机器学习来识别布局元素属性的方法更加客观与全面,提高了布局元素属性识别的准确度。
本申请实施例还提供一种布局元素属性的识别方法,如图4所示,该方法包括步骤401至步骤403:
步骤401、解析初始代码的代码结构,得到解析结果。
其中,初始代码用于生成布局文件。
布局文件是软件工程中使用的一种描述页面组件的排列位置的文件。
布局元素属性用于表示页面组件的排列位置,其总类别可分为横向布局(LinearLayout)、相对布局(RelativeLayout)、文本框(TextView)、按钮图像视图(ButtonImageView)等。每个总类别中还包括多个子类别的布局元素属性。示例性的,RelativeLayout中子控件的常用布局元素属性及对应的代码如下所示:
1、子控件的位置相对于父控件
①、子控件的顶部与父控件的顶部对齐,其代码可以为android:layout_alignParentTop;
②、子控件的底部与父控件的底部对齐,其代码可以为android:layout_alignParentBottom;
③、子控件的左部与父控件的左部对齐,其代码可以为android:layout_alignParentLeft;
④、控件的右部与父控件的右部对齐,其代码可以为android:layout_alignParentRight。
2、子控件的位置相对给定ID控件
①、子控件的底部置于给定ID的控件之上,其代码可以为android:layout_above;
②、子控件的底部置于给定ID的控件之下,其代码可以为android:layout_below;
③、子控件的右边缘与给定ID的控件左边缘对齐,其代码可以为android:layout_toLeftOf;
④、子控件的左边缘与给定ID的控件右边缘对齐,其代码可以为android:layout_toRightOf;
⑤、子控件的基线(baseline)与给定ID的baseline对齐,其代码可以为android:layout_alignBaseline;
⑥、子控件的顶部边缘与给定ID的顶部边缘对齐,其代码可以为android:layout_alignTop;
⑦、子控件的底部边缘与给定ID的底部边缘对齐,其代码可以为android:layout_alignBottom;
⑧、子控件的左边缘与给定ID的左边缘对齐,其代码可以为android:layout_alignLeft;
⑨、子控件的右边缘与给定ID的右边缘对齐,其代码可以为android:layout_alignRight。
3、子控件的位置居中
①、子控件水平居中,其代码可以为android:layout_centerHorizontal;
②、子控件垂直居中,其代码可以为android:layout_centerVertical;
③、子控件处于父控件的中央,其代码可以为android:layout_centerInParent。
在初始代码中设置了布局元素属性,那么根据初始代码生成的页面中,相应布局元素就会呈现在相应位置上。示例性的,根据初始代码解析出的布局元素属性对应的初始代码的代码结构可以为:
Figure BDA0001956208410000091
步骤402、按照预设的代码结构与特征数据的对应关系,从解析结果中查找与特征数据对应的代码字段,提取特征数据。
其中,特征数据包括布局元素属性特征和特征值。
在编写初始代码时,会对初始代码中的每条语句进行定义,即确定代码结构与特征数据之间的对应关系。示例性的,步骤401中给出的初始代码的代码结构与特征数据的对应关系如下所示:
“控件类型”对应“RelativeLayout”;
控件属性:
“宽”对应“android:layout_width="match_parent"”;
“高”对应“android:layout_height="80dp"”;
内部控件的控件属性:
“控件类型”对应“TextView”
“宽”对应“android:layout_width="wrap_content"”;
“高”对应“android:layout_height="wrap_content"”;
“相对于父控件底对齐”对应“android:layout_alignParentBottom="true"”;
“相对于父控件右对齐”对应“android:layout_alignParentRight="true"”。
其中,该“TextView”类型的控件为“RelativeLayout”类型控件的内部控件,也就是说,“RelativeLayout”类型控件的内部控件控件个数为1。
布局元素属性特征会影响控件在页面中的呈现位置。具体的,布局元素属性特征包括布局的类型,如该布局是横向布局还是相对布局;还包括布局内部控件信息,如布局内部控件的数量;还包括布局中控件属性,如控件的宽度、高度、左对齐、右对齐、距离父控件的距离等。
步骤403、将特征数据输入决策树进行决策,得到布局元素属性识别结果。
在将布局元素属性特征输入决策树进行决策之前,还需要构建决策树。具体的,可以根据已生成的布局文件,确定影响布局元素属性识别结果的属性;从影响布局元素属性识别结果的属性中提取训练数据;将训练数据输入决策树算法进行训练,得到决策树。
本申请实施例中,在构建决策树之前,先采集大量的布局文件,以得到足够数量的样本数据,这样根据样本数据训练得到的决策树能够覆盖多种布局元素属性的情况,利用训练好的决策树确定的布局元素属性识别结果也更加准确。
其中,影响布局元素属性识别结果的属性包括布局内部控件信息、布局中控件属性等。
影响布局元素属性识别结果的属性的选取很关键,直接影响到根据决策树得到的决策结果的好坏。影响布局元素属性识别结果的属性可以依据经验值或现有的一些算法,如ID3算法或C45算法等来实现,在此不再赘述。
示例性的,下面提供了四个属性:
@attribute parentHasWeight{yes,no,N/A}
@attribute parentLayoutType{N/A,LinearLayout,RelativeLayout}
@attribute thisIsRoot{yes,no}
@attribute originWidth{match_parent,wrap_content,0.5,other,0}
其中,上述四个属性对应的属性分别为“parentHasWeight”、“parentLayoutType”、“thisIsRoot”与“originWidth”,上述四个属性均会对布局元素属性识别结果产生影响。设定parentHasWeight的离散数据点为{yes,no,N/A},parentLayoutType的离散数据点为{N/A,LinearLayout,RelativeLayout},thisIsRoot的离散数据点为{yes,no},originWidth的离散数据点为{match_parent,wrap_content,0.5,other,0}。
示例性的,根据这些离散数据点进行数据采样,会得到如下训练数据:
LIKE_LINEARLAYOUT_H,N/A,yes,N/A,match_parent,largerThan360,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,TextView,between10and36,IconFont,between10and36,3,AllTextView,match_parent
或者如下所示:
TextView,RelativeLayout,no,largerThan360,wrap_content,between10and90,no,N/A,N/A,yes,TextView,between36and375,between10and36,between36and375,N/A,N/A,N/A,N/A,N/A,N/A,N/A,wrap_content
在训练数据准备完成之后,可以使用属性关系文件格式(Attribute-RelationFile Format,ARFF)存储训练数据。
在本申请实施例中,训练数据中包括影响布局元素属性识别结果的属性的取值范围。在这些取值范围中,以数字限定的取值范围需要进行离散化处理,那么在根据影响布局元素属性识别结果的属性提取训练数据之后,可以对影响布局元素属性识别结果的属性的取值范围中,以数字限定的取值范围进行离散化处理。之后将经过离散化处理的训练数据输入决策树算法进行训练,得到决策树。示例性的,固定数的宽为100dp,高为100dp,填充(Padding)为20dp,这些数据就需要进行离散化处理,其进行离散化处理时选择的离散化范围可以为5dp。
在本申请实施例中,步骤401中提取的特征值属于取值范围。例如,从初始代码中提取出的特征值为yes,其可以属于取值范围“yes,no,N/A”。
在提取出训练数据之后,可以利用ID3算法或C45算法等决策树算法来构建决策树。在利用决策树算法对训练数据进行训练的过程中,可以先计算训练数据对应的信息熵增益,之后根据不同训练数据对应的信息熵增益的大小关系,确定决策树的结点顺序。在本申请实施例中,将最大信息熵增益对应的布局元素属性作为根结点,将越大的信息熵增益对应的属性作为越靠近根结点的结点,这样就确定了决策树中的结点顺序。
需要说明的是,信息熵增益可以依据现有技术中的算法进行计算,在此不做赘述。
在本申请实施例中,在确定决策树中结点顺序之后,可以根据结点顺序,生成决策树的数据结构,其中,数据结构用于对训练数据进行分类和分层。利用数据结构,对训练数据进行训练,形成决策树。
在本申请实施例中,利用信息熵确定结点顺序构建决策树,信息熵能够判断出不同条件下不同属性对于布局元素属性识别结果的影响程度,这样根据影响程度由大到小的顺序确定结点顺序,生成的决策树,就能够优先判断影响程度更大的属性,相比于现有技术中人为经验设置的逻辑判断,为布局元素属性的确定提供更准确的判断依据。
此外,由于页面包括多种类型,如弹框页面、列表页面等,不同页面类型的页面所对应的布局类型不同,为了使决策树更加具有针对性,在本申请实施例中,可以根据训练数据中包括的页面类型对训练数据进行分类,将相同页面类型的训练数据输入决策树算法进行训练,得到与页面类型对应的决策树。这样,在后续利用决策树进行布局属性识别时,即可将不同页面类型的特征数据输入相应决策树进行决策,提高了决策树决策结果的准确度。
此外,用于生成决策树的布局文件所包括的影响布局元素属性识别结果的属性有限,也就会导致生成的决策树可能不能将所有布局元素属性特征进行正确的分类。因此,如果布局元素属性识别结果错误,可以接收用户输入的布局元素的属性;之后,将用户输入的布局元素的属性以及布局元素属性特征作为训练数据输入决策树进行训练,得到更新的决策树。这样不断的更新决策树,能够得到更加完善的决策树,根据该更加完善的决策树得到的布局元素属性识别结果的准确度也会越来越高。
本申请提供的布局元素属性的识别方法,从生成布局文件的初始代码中提取特征数据,将特征数据输入决策树进行决策,得到布局属性识别结果,与现有技术中根据人为经验识别布局元素属性的方法相比,本申请利用机器学习来识别布局元素属性的方法更加客观与全面,提高了布局元素属性识别的准确度。
本申请实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现布局元素属性的识别方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行布局元素属性的识别方法的计算机程序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (16)

1.一种布局元素属性的识别方法,其特征在于,所述方法包括:
解析初始代码的代码结构,得到解析结果,所述初始代码用于生成布局文件;
按照预设的代码结构与特征数据的对应关系,从所述解析结果中查找与所述特征数据对应的代码字段,提取所述特征数据,所述特征数据包括布局元素属性特征和特征值;
将所述特征数据输入决策树进行决策,得到布局元素属性识别结果。
2.根据权利要求1所述的方法,其特征在于,所述决策树根据以下方法生成:
根据已生成的布局文件,确定影响布局元素属性识别结果的属性;
根据所述影响布局元素属性识别结果的属性提取训练数据;
将所述训练数据输入决策树算法进行训练,得到所述决策树。
3.根据权利要求2所述的方法,其特征在于,所述训练数据包括页面类型;
将所述训练数据输入决策树算法进行训练,得到所述决策树,包括:
按照页面类型对训练数据进行分类,将相同页面类型的训练数据输入决策树算法进行训练,得到与页面类型对应的决策树。
4.根据权利要求2所述的方法,其特征在于,所述训练数据中包括所述影响布局元素属性识别结果的属性的取值范围;
在根据所述影响布局元素属性识别结果的属性提取训练数据之后,所述方法还包括:对所述影响布局元素属性识别结果的属性的取值范围中,以数字限定的取值范围进行离散化处理;
将所述训练数据输入决策树算法进行训练,得到所述决策树,包括:将经过离散化处理的训练数据输入决策树算法进行训练,得到所述决策树。
5.根据权利要求2所述的方法,其特征在于,将所述训练数据输入决策树算法进行训练,得到所述决策树,包括:
分别计算不同训练数据对应的信息熵增益,其中,不同训练数据从不同影响布局元素属性识别结果的属性中提取;
根据不同训练数据对应的信息熵增益的大小关系,确定决策树的结点顺序;
根据所述结点顺序和训练数据,构建决策树。
6.根据权利要求5所述的方法,其特征在于,所述根据所述结点顺序和训练数据,构建决策树,包括:
根据所述结点顺序,生成决策树的数据结构,所述数据结构用于对训练数据进行分类和分层;
利用所述数据结构,对所述训练数据进行训练,形成决策树。
7.根据权利要求1所述的方法,其特征在于,在所述得到所述布局元素属性特征对应的布局元素属性识别结果之后,所述方法还包括:
如果所述布局元素属性识别结果错误,则接收用户输入的布局元素的属性;
将所述用户输入的布局元素的属性以及布局元素属性对应的特征数据作为训练数据输入所述决策树进行训练,得到更新的决策树。
8.一种布局元素属性的识别装置,其特征在于,所述装置包括:
解析模块,用于解析初始代码的代码结构,得到解析结果,所述初始代码用于生成布局文件;
提取模块,用于按照预设的代码结构与特征数据的对应关系,从所述解析模块解析得到的所述解析结果中查找与所述特征数据对应的代码字段,提取所述特征数据,所述特征数据包括布局元素属性特征和特征值;
决策模块,用于将所述提取模块提取的所述特征数据输入决策树进行决策,得到布局元素属性识别结果。
9.根据权利要求8所述的装置,其特征在于,所述决策模块,包括:
确定子模块,用于根据已生成的布局文件,确定影响布局元素属性识别结果的属性;
提取子模块,用于根据所述确定子模块确定的所述影响布局元素属性识别结果的属性提取训练数据;
训练子模块,用于将所述提取子模块提取的所述训练数据输入决策树算法进行训练,得到所述决策树。
10.根据权利要求9所述的装置,其特征在于,所述训练数据包括页面类型;
所述训练子模块,用于:
按照页面类型对训练数据进行分类,将相同页面类型的训练数据输入决策树算法进行训练,得到与页面类型对应的决策树。
11.根据权利要求9所述的装置,其特征在于,所述训练数据中包括所述影响布局元素属性识别结果的属性的取值范围;
所述决策模块,还包括:离散化处理子模块,用于对所述提取子模块提取的所述影响布局元素属性识别结果的属性的取值范围中,以数字限定的取值范围进行离散化处理;
所述训练子模块,用于:将经过所述离散化处理子模块进行离散化处理的训练数据输入决策树算法进行训练,得到所述决策树。
12.根据权利要求9所述的装置,其特征在于,所述训练子模块,用于:
分别计算不同训练数据对应的信息熵增益,其中,不同训练数据从不同影响布局元素属性识别结果的属性中提取;
根据不同训练数据对应的信息熵增益的大小关系,确定决策树的结点顺序;
根据所述结点顺序和训练数据,构建决策树。
13.根据权利要求12所述的装置,其特征在于,所述训练子模块,用于:
根据所述结点顺序,生成决策树的数据结构,所述数据结构用于对训练数据进行分类和分层;
利用所述数据结构,对所述训练数据进行训练,形成决策树。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于当所述决策模块决策的所述布局元素属性识别结果错误时,接收用户输入的布局元素的属性;
所述训练子模块,还用于将所述接收模块接收的所述用户输入的布局元素的属性以及所述提取模块提取的布局元素属性对应的特征数据作为训练数据输入所述决策树进行训练,得到更新的决策树。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述方法的计算机程序。
CN201910067543.8A 2019-01-24 2019-01-24 布局元素属性的识别方法及装置 Active CN111475146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910067543.8A CN111475146B (zh) 2019-01-24 2019-01-24 布局元素属性的识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910067543.8A CN111475146B (zh) 2019-01-24 2019-01-24 布局元素属性的识别方法及装置

Publications (2)

Publication Number Publication Date
CN111475146A true CN111475146A (zh) 2020-07-31
CN111475146B CN111475146B (zh) 2023-07-07

Family

ID=71743894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910067543.8A Active CN111475146B (zh) 2019-01-24 2019-01-24 布局元素属性的识别方法及装置

Country Status (1)

Country Link
CN (1) CN111475146B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860075A (en) * 1993-06-30 1999-01-12 Matsushita Electric Industrial Co., Ltd. Document data filing apparatus for generating visual attribute values of document data to be filed
CN102693007A (zh) * 2011-03-04 2012-09-26 微软公司 姿势检测和识别
US20140122381A1 (en) * 2012-10-25 2014-05-01 Microsoft Corporation Decision tree training in machine learning
CN104462394A (zh) * 2012-06-25 2015-03-25 北京奇虎科技有限公司 一种识别网页正文楼层的系统和方法
CN104794116A (zh) * 2014-01-16 2015-07-22 阿里巴巴集团控股有限公司 一种页面中元素的布局方法和装置
CN104966031A (zh) * 2015-07-01 2015-10-07 复旦大学 安卓应用程序中非权限相关隐私数据的识别方法
CN106383456A (zh) * 2011-06-28 2017-02-08 洛克威尔自动控制技术股份有限公司 方法和人机接口
CN106951269A (zh) * 2017-03-31 2017-07-14 武汉斗鱼网络科技有限公司 一种提升安卓应用的布局文件编写效率的方法及系统
CN107133519A (zh) * 2017-05-15 2017-09-05 华中科技大学 一种安卓应用网络通信中隐私泄漏检测方法及系统
CN108989075A (zh) * 2017-06-05 2018-12-11 中国移动通信集团广东有限公司 一种网络故障定位方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860075A (en) * 1993-06-30 1999-01-12 Matsushita Electric Industrial Co., Ltd. Document data filing apparatus for generating visual attribute values of document data to be filed
CN102693007A (zh) * 2011-03-04 2012-09-26 微软公司 姿势检测和识别
CN106383456A (zh) * 2011-06-28 2017-02-08 洛克威尔自动控制技术股份有限公司 方法和人机接口
CN104462394A (zh) * 2012-06-25 2015-03-25 北京奇虎科技有限公司 一种识别网页正文楼层的系统和方法
US20140122381A1 (en) * 2012-10-25 2014-05-01 Microsoft Corporation Decision tree training in machine learning
CN104794116A (zh) * 2014-01-16 2015-07-22 阿里巴巴集团控股有限公司 一种页面中元素的布局方法和装置
CN104966031A (zh) * 2015-07-01 2015-10-07 复旦大学 安卓应用程序中非权限相关隐私数据的识别方法
CN106951269A (zh) * 2017-03-31 2017-07-14 武汉斗鱼网络科技有限公司 一种提升安卓应用的布局文件编写效率的方法及系统
CN107133519A (zh) * 2017-05-15 2017-09-05 华中科技大学 一种安卓应用网络通信中隐私泄漏检测方法及系统
CN108989075A (zh) * 2017-06-05 2018-12-11 中国移动通信集团广东有限公司 一种网络故障定位方法及系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
WENQIAN SHANG等: "Sensitive Information Acquisition Based on Machine Learning", 《2012 INTERNATIONAL CONFERENCE ON INDUSTRIAL CONTROL AND ELECTRONICS ENGINEERING》 *
WENQIAN SHANG等: "Sensitive Information Acquisition Based on Machine Learning", 《2012 INTERNATIONAL CONFERENCE ON INDUSTRIAL CONTROL AND ELECTRONICS ENGINEERING》, 25 August 2012 (2012-08-25), pages 1 - 3 *
卢天增: "基于Android的智能机器人交互技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
卢天增: "基于Android的智能机器人交互技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 07, 15 July 2016 (2016-07-15), pages 136 - 119 *
牟晓伟: "Deep Web数据源发现与分类技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
牟晓伟: "Deep Web数据源发现与分类技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 12, 15 December 2015 (2015-12-15), pages 138 - 381 *

Also Published As

Publication number Publication date
CN111475146B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
US11681925B2 (en) Techniques for creating, analyzing, and modifying neural networks
Charte et al. Working with Multilabel Datasets in R: The mldr Package.
Ciaburro MATLAB for machine learning
US11640539B2 (en) Techniques for visualizing the operation of neural networks using samples of training data
CN107729925B (zh) 对程序竞赛型源代码按照解题方法做自动分类与评分的方法
KR102103511B1 (ko) 코드 생성 장치 및 방법
WO2021007259A1 (en) Techniques for modifying neural network definitions
CN109685104B (zh) 一种识别模型的确定方法和装置
US20230252325A1 (en) Artificial intelligence system providing interactive model interpretation and enhancement tools
Mishra et al. Reliable local explanations for machine listening
US11615321B2 (en) Techniques for modifying the operation of neural networks
CN107832271B (zh) 函数图像绘制方法、装置、设备及计算机存储介质
CN112597239A (zh) 可视化建模方法、装置和电子设备
Zhu et al. Discovering boundary values of feature-based machine learning classifiers through exploratory datamorphic testing
Bulut et al. Educational data mining: A tutorial for the rattle package in R
CN111475146A (zh) 布局元素属性的识别方法及装置
Las Johansen et al. Predicting academic performance of information technology students using c4. 5 classification algorithm: a model development
CN112580781A (zh) 深度学习模型的处理方法、装置、设备和存储介质
Bäuerle et al. Training de-confusion: an interactive, network-supported visual analysis system for resolving errors in image classification training data
Ogihara et al. Student retention pattern prediction employing linguistic features extracted from admission application essays
CN117648635B (zh) 敏感信息分类分级方法及系统、电子设备
Rico et al. Chord progressions selection based on song audio features
Dold et al. Evaluating the feasibility of interpretable machine learning for globular cluster detection
Choudhury Automated Identification of Painters Over WikiArt Image Data Using Machine Learning Algorithms
CN114339859B (zh) 识别全屋无线网络WiFi潜在用户的方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant