System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理领域,尤其涉及一种标识符类型确定方法、装置、电子设备、介质和程序产品。
技术介绍
1、javascript作为一门动态编程语言,因其灵活性,广泛地在浏览器端、服务器端得到了应用。javascript最大的灵活性之一就在于标识符不用定义类型,具体类型在动态运行时决定。这一特性使得在编码时类型推断、自动补全、错误检查等无法应用,大型软件的维护变得十分复杂。
2、为了解决软件维护困难的问题,设置typescript,typescript是javascript的超集。typescript支持标识符类型的确定,并提供了诸如接口、类、泛型等丰富的特性。标识符类型确定,无疑降低了软件开发复杂度。但是使用这一特性,需要对标识符类型做出显式声明。显式声明很重要的前提是确定类型,也就是对标识符做类型推断。推断它是string、number等原生类,还是用户自定义类等复杂类型。
3、示例性技术中,将代码输入至模型中,得到模型输出的标识符所属的类型。当模型输出的标识符的类型是一种概率结果,概率结果会存在误判的情况,导致标识符类型的确定准确性偏低。
技术实现思路
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、所述处理器用于执行所述存储器存储的计算机执行指令本文档来自技高网...
【技术保护点】
1.一种标识符类型确定方法,其特征在于,包括:
2.根据权利要求1所述的标识符类型确定方法,其特征在于,所述基于识别模型对各个所述第二标识符的类型进行识别,包括:
3.根据权利要求2所述的标识符类型确定方法,其特征在于,所述确定所述第四标识符的频次,包括:
4.根据权利要求1所述的标识符类型确定方法,其特征在于,所述在目标代码中确定多个第一标识符以及对应的标识符上下文,包括:
5.根据权利要求4所述的标识符类型确定方法,其特征在于,所述根据所述第一标识符在所述抽象语法树中对应的语句,构建所述第一标识符的标识符上下文,包括:
6.根据权利要求5所述的标识符类型确定方法,其特征在于,所述获取位于所述第一标识符左侧的字符之后,还包括:
7.根据权利要求4所述的标识符类型确定方法,其特征在于,所述根据所述第一标识符在所述抽象语法树中对应的表达式,构建所述第一标识符的标识符上下文,包括:
8.根据权利要求1所述的标识符类型确定方法,其特征在于,所述根据所述标识符上下文,确定所述第一标识符所属的第一类型,包括
9.根据权利要求1所述的标识符类型确定方法,其特征在于,所述根据所述标识符上下文,确定所述第一标识符所属的第一类型,包括:
10.根据权利要求9所述的标识符类型确定方法,其特征在于,所述根据所述赋值对象所属的类型,确定所述第一标识符所属的第一类型,包括:
11.根据权利要求1-10中任一项所述的标识符类型确定方法,其特征在于,所述基于识别模型对各个所述第二标识符的类型进行识别之前,还包括:
12.一种标识符类型确定装置,其特征在于,包括:
13.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器与通信接口;
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如权利要求1-11任一项所述的标识符类型确定方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-11任一项所述的标识符类型确定方法。
...【技术特征摘要】
1.一种标识符类型确定方法,其特征在于,包括:
2.根据权利要求1所述的标识符类型确定方法,其特征在于,所述基于识别模型对各个所述第二标识符的类型进行识别,包括:
3.根据权利要求2所述的标识符类型确定方法,其特征在于,所述确定所述第四标识符的频次,包括:
4.根据权利要求1所述的标识符类型确定方法,其特征在于,所述在目标代码中确定多个第一标识符以及对应的标识符上下文,包括:
5.根据权利要求4所述的标识符类型确定方法,其特征在于,所述根据所述第一标识符在所述抽象语法树中对应的语句,构建所述第一标识符的标识符上下文,包括:
6.根据权利要求5所述的标识符类型确定方法,其特征在于,所述获取位于所述第一标识符左侧的字符之后,还包括:
7.根据权利要求4所述的标识符类型确定方法,其特征在于,所述根据所述第一标识符在所述抽象语法树中对应的表达式,构建所述第一标识符的标识符上下文,包括:
8.根据权利要求1所述的标识符类型确定方法,其特征在于,所述根据所述标识符上下文,确定所述第一...
【专利技术属性】
技术研发人员:翟振兴,何发亮,徐勇兵,郭文超,石华北,
申请(专利权)人:中国银联股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。