CN111813443A - 一种用JavaFX进行代码样例自动填充的方法和工具 - Google Patents

一种用JavaFX进行代码样例自动填充的方法和工具 Download PDF

Info

Publication number
CN111813443A
CN111813443A CN202010738427.7A CN202010738427A CN111813443A CN 111813443 A CN111813443 A CN 111813443A CN 202010738427 A CN202010738427 A CN 202010738427A CN 111813443 A CN111813443 A CN 111813443A
Authority
CN
China
Prior art keywords
question
code
answer
data
document
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
CN202010738427.7A
Other languages
English (en)
Other versions
CN111813443B (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202010738427.7A priority Critical patent/CN111813443B/zh
Publication of CN111813443A publication Critical patent/CN111813443A/zh
Application granted granted Critical
Publication of CN111813443B publication Critical patent/CN111813443B/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/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • 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
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于代码技术领域,具体涉及一种用JavaFX进行代码样例自动填充的方法和工具,方法包括以下步骤:访问不同的统一资源标识符,并且定位HTML文档中的元素,再爬取定位到元素中的文本内容,获取问题信息和应用程序接口信息;通过爬虫访问问题详细信息页面,提取使用场景,建立应用程序接口类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据;使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的应用程序接口文档。

Description

一种用JavaFX进行代码样例自动填充的方法和工具
技术领域
本发明属于代码技术领域,具体涉及一种用JavaFX进行代码样例自动填充的方法和工具。
背景技术
阅读API文档一直是开发人员学习API的重要途径之一,通过API文档我们能最直观的了解到一个API最标准的和最直观的函数、类、返回类型、参数以及相应的作用。但是很多的API文档中只有API本身的定义,据研究表明,在Java SE和Android的API文档中,仅分别有11%和6%的API类型有代码样例加以补充说明,但是只附有模糊的使用场景。大量的API缺少对应的代码样例和使用场景,这就导致了开发人员看了不会用的情况出现,难以有效地帮助开发人员的学习。从开源社区的角度出发,一项对2000多名Eclipse和Mozilla开发人员的调查显示,近80%的参与者认为缺少代码样本及其使用场景是理解API的障碍。从商业企业的角度出发,对698名IBM开发人员和1000名微软开发人员进行了两次调查,结果表明,开发人员非常希望能够为尽可能多的API提供不同使用场景下的代码样本。大多程序员会借助诸如Google搜索引擎或是StackOverflow这样的开源社区来查找API的代码样例和使用场景,人工的查找和填充显然效率十分低下,而且评判标准不一,而通过自动化的方式将这些高质量的代码样例以及使用场景“移植”到API文档中显然是一种很理想的手段。
为此,研究人员从丰富API文档中使用场景和代码样例的角度出发,提出了API文档代码样例自动化填充的方法。通过网络收集原始数据,在经过使用场景提取和样例代码提取等一系列的处理之后把最终的数据嵌入API文档,生成新的API文档。对改善开发人员学习API文档的体验起了较大的帮助。
但是现在提出的API文档代码样例自动化填充的方法大多存在以下不足:通过搜索引擎获取原始数据,数据量过于庞大,无效信息过多,代码质量较低,或是通过下载技术论坛的Data Dump File并对其进行处理,普通用户难以自行获取Data Dump File,就无法对某一项具体技术的API文档进行定制化生成;API文档大多组织为HTML文档的形式,只能通过浏览器访问,并且内容比较复杂,不利于用户查阅。
发明内容
本发明的目的在于:针对现有方法的不足,提供一种能通过简易流程自动获取原始数据,加工原始数据,最后比较简明的带有使用场景和代码样例的本地API(API:应用程序接口)文档的用JavaFX进行代码样例自动填充的方法和工具。
为实现上述目的,本发明的技术方案是:提供一种用JavaFX进行代码样例自动填充的方法,包括以下步骤:
S1:访问不同的统一资源标识符,并且定位HTML文档中的元素,再爬取定位到元素中的文本内容,获取问题信息和应用程序接口信息;
S2:通过爬虫访问问题详细信息页面,提取使用场景,建立应用程序接口类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据;S3:使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的应用程序接口文档。
优选地,访问到不同的统一资源标识符和爬取文档元素内容的具体步骤包括:
S1-1:选择数据源,将某一具体技术对应映射设置一个标签,获取显示标签所对应具体技术的问题的网页的所有统一资源标识符;
S1-2:使用通过统一资源标识符爬虫访问到步骤S1-1中选取的数据源上显示标签带有该具体技术的问题的所有网页中,并获取所有网页页码中的最大值;
S1-3:将所有网页页码中的最大值作为拼接输入参数,通过拼接起来的统一资源标识符访问到每一页问题列表界面;
S1-4:通过XPath语言定位到所需信息所在的页面元素,所述页面元素包括问题ID、问题标题、回答数、投票数和问题详细信息界面超链接,然后使用爬虫把所述页面元素标签中的文本内容爬取下来;
S1-5:设置投票数和回答数为过滤条件,只将投票数和回答数大于1的问题信息存入数据库;
S1-6:爬虫通过统一资源标识符访问到某一技术原生应用程序接口文档;
S1-7:通过XPath定位到内联框架里列表所包含的每一个列表项元素,爬取标签中的文本内容并存入数据库,获取所有的应用程序接口类型。
优选地,在S2提取使用场景、建立映射和加工数据之前,还包括以下步骤:取出数据库中存放的所有应用程序接口名称和问题信息包含的统一资源标识符,并将选取的数据源的域名作为前缀与所述统一资源标识符进行拼接,将应用程序接口名称和拼接后的结果分别存入列表;
遍历统一资源标识符列表,爬虫通过每个不同的统一资源标识符访问不同的问题详细信息页面,每一对问题和答案视作一个问答对;
进行关键词识别,判断问题标题中是否含有“failure”、“error”、“exception”和“issue”字段,如果有则将该问题标题对应的问题和答案视为故障修复型问答对,没有则视为普通问答对;
优选地,S2中提取使用场景、建立映射和加工数据的具体步骤如下:
S2-1:使用XPath定位到问题详细信息界面中的问题标题、问题体和答案部分,每一个问题和答案视为一个问答对;
S2-2:通过关键词识别技术,分析答案的代码片段、问题标题和问题体的代码片段中是否包含某一应用程序接口名称,建立问答对与应用程序接口名称之间的映射关系;
S2-3:对于普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中的故障关键词和其后介词,将剩余标题内容作为使用场景。建立起应用程序接口、使用场景和问答对的映射关系,并存入数据库;
S2-4:对于普通问答对,直接爬取答案中的代码片段并组合为一段完整代码,保存为本地文件;对于故障修复型问答对,分别获取问题体和答案中的代码段,通过文本相似度计算和字符替换,将所得产物保存为本地文件。
优选地,生成应用程序接口文档的具体步骤如下:
S3-1:根据文档所需内容预定义文档模板,根据处理数据的需求预定义数据的组合形式;
S3-2:对于每一个应用程序接口场景建立一个word文档对象,并根据API、使用场景和代码样例的映射关系,找到与这个应用程序接口对应的所有样例代码地址,然后将应用程序接口名称、使用场景和代码地址存入元组,元组放入列表中;
S3-3:对于每一个应用程序接口,取出所有元组中所有对应的样例代码样例地址,通过地址读取样例代码文件,将应用程序接口名称、使用场景和样例代码按照预定义的文档模板存入文档对象,最后保存API文档。
本发明还提供一种用JavaFX进行代码样例自动填充的工具,所述工具包括:数据收集模块、数据处理模块和文档生成模块;
所述数据收集模块通过统一资源标识符和XPath访问并定位页面中的元素,并爬取元素标签中的文本数据,保存到本地;
所述数据处理模块将原始数据加工为符合要求的数据,并保存到本地;所述文档生成模块预定义生成文档的模板和数据的组合形式,从本地读取数据并嵌入文档对象中,最终生成带有使用场景和样例代码的应用程序接口文档。
优选地,所述数据收集模块收集的数据内容包括:
数据源上标签中带有某一具体技术的所有问题的问题id、问题标题、回答数、投票数和问题对应的超链接;
存入本地的数据需要是回答数和投票数都大于0的问题的相关信息。
某一具体技术的原生应用程序接口名称文档中的所有应用程序接口名称。
优选地,所述的数据处理模块加工原始数据的具体过程为定位并获取原始数据、判断问答对类型、提取并保存使用场景、建立映射、处理并保存样例代码;
所述定位并获取原始数据是指通过数据收集模块得到的问题超链接访问到问题具体信息页面,定位到页面中的问题标题、问题体中的代码片段和答案中的代码片段对应的页面元素,获取其中的文本内容。每个问题和答案的组合称为一个问答对;
所述判断问答对类型是指通过关键词识别的方式判断问答对的类型,作为进一步处理的依据;
所述提取并保存使用场景是指根据问答对类型的不同对问题标题进行不同的分析处理过程,提取并保存样例代码对应的使用场景;
所述建立映射是指根据通过关键词识别的方法,判断出与某问答对高度相关的应用程序接口名称,并建立起应用程序接口名称、使用场景和问答对的映射,保存到本地;
所述处理并保存样例代码是指根据问答对类型的不同对问题体和答案中的代码片段进行不同的分析处理过程,生成并保存符合要求的样例代码。
优选地,所述数据处理模块对不同类型的问答对的具体处理过程如下:
所述定位到的答案中的代码片段为最佳答案中的代码片段;
所述问答对类型分为普通问答对和故障修复型问答对;
所述对于不同类型问答对,提取使用场景的不同过程分为:普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中与故障相关的名词和其后的介词,剩余的内容作为使用场景;
对于不同类型问答对,处理并保存样例代码的不同过程分为:对于普通问答对,直接爬取问题体中的所有代码片段并组合为一段完整的代码保存至本地;对于故障修复型问答对,需要计算问题体和最佳答案中代码片段各语句的文本相似度,然后用最佳答案中的代码片段替换问题体中的代码片段里与之最相似的部分,生成的代码段保存至本地。
优选地,所述的文档生成模块和数据组织形式的预定义过程以及中间过程的具体产物如下:
所述预定义的文档模板包括应用程序接口名称、使用场景和样例代码,每个一一对应的使用场景和样例代码放入同一个表格中,依次生成不同的表格,并逐个向后排列;
所述预定义的数据组织形式为元组,将每个一一对应的应用程序接口名称和样例代码存储地址放入一个元组,并将某个应用程序接口对应的所有元组放入一个列表中。
本发明的有益效果:
1、本发明使用爬虫程序自动访问所需数据所在的网页并自动获取数据存储到本地,无需用户下载转储文件进行处理,降低了数据获取难度。
2、本发明在数据源的不同部分进行了关键词识别,建立使用场景、样例代码和API类型之间的映射,确保了三者之间的直接相关性,避免出现样例代码与API类型不相关的情况。
3、本发明对于不同类型问答对,提取使用场景的不同,普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中与故障相关的名词和其后的介词,剩余的内容作为使用场景;对故障修复型问答对进行了针对使用场景和样例代码特殊处理,提高了使用场景表意的明确性和样例代码的正确性,进一步提高代码质量。
4、定义文档模板,使文档结构更加清晰明了,在本地直接生成API文档,用户可以直接在本地使用而无需使用网络在浏览器中查阅。
5、本发明整个工具的使用仅需要用户输入几条指令和文件存储路径,其余步骤都是自动完成,几乎没有使用难度。生成的API文档带有使用场景和样例代码,能有效帮助开发人员学习和完成开发任务。
附图说明
图1为实施例一中的用JavaFX进行代码样例自动填充的方法流程图。
图2为各组件协同工作的流程图。
图3为问答对预处理器建立API名称、使用场景和样例代码之间映射的流程图。
图4为自动生成API文档的流程图。
图5为预定义好的文档模板。
图6是生成的API文档。
图7是所有生成的API文档的列表。
图8为本发明实施例二中的一种处理故障修复型问答对的流程图。
图9是问答对预处理器对故障修复型问答对的特殊处理流程图。
图10是问答对提取器对故障修复型问答对的特殊处理流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明提供一种用JavaFX进行代码样例自动填充的方法,包括以下步骤:
S1:访问不同的统一资源标识符,并且定位HTML文档中的元素,再爬取定位到元素中的文本内容,获取问题信息和应用程序接口信息;
S2:通过爬虫访问问题详细信息页面,提取使用场景,建立应用程序接口类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据;
S3:使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的应用程序接口文档。
优选地,访问到不同的URL和爬取文档元素内容的具体步骤包括:
S1-1:使用爬虫技术获取爬取所需数据。选择数据源,将某一具体技术对应映射设置一个标签,获取显示标签所对应具体技术的问题的网页的所有统一资源标识符;
S1-2:使用通过统一资源标识符爬虫访问到步骤S1-1中选取的数据源上显示标签带有该具体技术的问题的所有网页中,并获取所有网页页码中的最大值;
S1-3:将所有网页页码中的最大值作为拼接输入参数,通过拼接起来的统一资源标识符访问到每一页问题列表界面;
S1-4:通过XPath语言定位到所需信息所在的页面元素,所述页面元素包括问题ID、问题标题、回答数、投票数和问题详细信息界面超链接,然后使用爬虫把所述页面元素标签中的文本内容爬取下来;
S1-5:设置投票数和回答数为过滤条件,只将投票数和回答数大于1的问题信息存入数据库;
S1-6:爬虫通过统一资源标识符访问到某一技术原生应用程序接口文档;
S1-7:通过XPath定位到内联框架里列表所包含的每一个列表项元素,爬取标签中的文本内容并存入数据库,获取所有的应用程序接口类型。
在提取使用场景、建立映射和加工数据之前,还包括以下步骤:
取出数据库中存放的所有API名称和问题信息包含的URL,并将Stack Overflow的域名作为前缀与上述URL进行拼接,将API名称和拼接后的结果分别存入列表。
遍历URL列表,爬虫通过每个不同的URL访问不同的问题详细信息页面。每一对问题和答案视作一个问答对。
通过关键词识别的方法,将标题以空格为分隔符拆分为多个字符串并存入列表,然后遍历列表,判断问题标题中是否含有“failure”、“error”、“exception”和“issue”字段,如果有则将其视为故障修复型问答对,没有则视为普通问答对。
提取使用场景、建立映射和加工数据的具体步骤如下:
S2-1:使用XPath定位到问题详细信息界面中的问题标题、问题体和答案部分,每一个问题和答案视为一个问答对。
S2-2:通过关键词识别技术,使用,分析答案的代码片段、问题标题和问题体的代码片段中是否包含某一API名称,建立问答对与AP名称之间的映射关系。
S2-3:对于普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中的故障关键词和其后介词,将剩余标题内容作为使用场景。建立起API、使用场景和问答对的映射关系,并存入数据库。
S2-4:对于普通问答对,直接爬取答案中的代码片段并组合为一段完整代码,保存为本地文件;对于故障修复型问答对,分别获取问题体和答案中的代码段,通过文本相似度计算和字符串替换,将所得产物保存为本地文件。
生成API文档的具体步骤如下:
S3-1:根据文档所需内容预定义文档模板,根据处理数据的需求预定义数据的组合形式。
S3-2:对于每一个API场景建立一个word文档对象,并根据API、使用场景和代码样例的映射关系,找到与这个API对应的所有样例代码地址,然后将API名称、使用场景和代码地址存入元组,元组放入列表中。
S3-3:对于每一个API,取出所有元组中所有对应的样例代码样例地址,通过地址读取样例代码文件,将API名称、使用场景和样例代码按照预定义的文档模板存入文档对象,最后保存API文档。
本发明还提供了一种用JavaFX进行代码样例自动填充的工具,所述工具包括:数据收集模块、数据处理模块和文档生成模块:
所述数据收集模块基于爬虫程序和管道文件,通过URL和XPath访问并定位页面中的元素,并爬取元素标签中的文本数据,保存到本地。
所述数据处理模块基于爬虫程序、管道文件、过滤器、关键词识别、文本相似度计算和字符替换技术,将原始数据加工为符合要求的数据,并保存到本地。
所述文档生成模块基于文档自动生成技术,预定义生成文档的模板和数据的组合形式,从本地读取数据并嵌入文档对象中,最终生成带有使用场景和样例代码的API文档。
所述数据收集模块收集的数据内容如下:
Stack Overflow上标签中带有某一特定技术的所有问题的问题id、问题标题、回答数、投票数和问题对应的超链接。
存入本地的数据需要是回答数和投票数都大于0的问题的相关信息。
某一特定技术的原生API文档中的所有API名称。
所述的数据处理模块加工原始数据的具体过程为定位并获取原始数据、判断问答对类型、提取并保存使用场景、建立映射、处理并保存样例代码;
所述定位并获取原始数据是指通过数据收集模块得到的问题超链接访问到问题具体信息页面,定位到页面中的问题标题、问题体中的代码片段和答案中的代码片段对应的页面元素,获取其中的文本内容。每个问题和答案的组合称为一个问答对。
所述判断问答对类型是指通过关键词识别的方式判断问答对的类型,作为进一步处理的依据。
所述提取并保存使用场景是指根据问答对类型的不同对问题标题进行不同的分析处理过程,提取并保存样例代码对应的使用场景。
所述建立映射是指根据通过关键词识别的方法,判断出与某问答对高度相关的API名称,并建立起API名称、使用场景和问答对的映射,保存到本地。
所述处理并保存样例代码是指根据问答对类型的不同对问题体和答案中的代码片段进行不同的分析处理过程,生成并保存符合要求的样例代码。
所述数据处理模块对不同类型的问答对的具体处理过程如下:
所述定位到的答案中的代码片段为最佳答案中的代码片段;
所述问答对类型分为普通问答对和故障修复型问答对;
所述对于不同类型问答对,提取使用场景的不同过程分为:普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中与故障相关的名词和其后的介词,剩余的内容作为使用场景;
所述对于不同类型问答对,处理并保存样例代码的不同过程分为:对于普通问答对,直接爬取问题体中的所有代码片段并组合为一段完整的代码保存至本地;对于故障修复型问答对,需要计算问题体和最佳答案中代码片段各语句的文本相似度,然后用最佳答案中的代码片段替换问题体中的代码片段里与之最相似的部分,生成的代码段保存至本地。
所述的文档生成模块和数据组织形式的预定义过程以及中间过程的具体产物如下:
所述预定义的文档模板包括API名称、使用场景和样例代码,每个一一对应的使用场景和样例代码放入同一个表格中,依次生成不同的表格,并逐个向后排列。
所述预定义的数据组织形式为元组,将每个一一对应的API名称和样例代码存储地址放入一个元组,并将某个API对应的所有元组放入一个列表中。
程序操作的文档对象为word文档对象,通过Python Document库中的docx库来进行操作。
为了便于理解,将本发明实施例的主要发明构思进行简述。
实施例一
图1为实施例一中的用JavaFX进行代码样例自动填充的方法流程图,其中,数据收集模块包括API提取器和问题信息提取器,数据处理模块包括问答对预处理器和问答对提取器,文档生成模块包括文档生成器,图2为各组件协同工作的流程图。本方案以JavaFX文档为例,应用于原生API文档使用场景和代码样例比较匮乏而影响了开发人员学习和开发效率的场景中,具体包括如下步骤:
步骤110、使用爬虫技术访问不同的URL,并且定位HTML文档中的元素,再爬取定位到的元素中的文本内容,获取问题信息和API信息。
在访问页面并获取数据前,需用户进入Stack Overflow查看想要工具作用于的某种技术对应标签的准确文本,以及该技术的官方API文档中包含所有API类型的iframe的URL,然后通过命令行输入命令和参数启动程序。具体步骤如下:
步骤111、用户使用命令行进入项目根目录,输入问题信息提取器脚本启动命令和参数info=javafx,等待程序执行完毕,获取问题相关信息。
本实施例中,问题的相关信息包括:问题id、问题标题、投票数、回答数和问题的超链接。
其中,问题id用来唯一标识一个问题或问答对,问题标题大体上概括了问题的目的和主要内容。投票数和回答数作为过滤条件,筛选出两者都大于1的问题,其余问题被舍去。问题超链接作为问题详细信息界面的URL,提供给数据处理模块使用。
在定位并获取上述符合条件的数据以后,将它们存入本地数据库。
步骤112、在命令行中输入API提取器启动命令和参数url=https://docs.oracle.com/javase/8/javafx/api/allclasses-frame.html,等待程序执行完毕,获取API信息。
本实施例中,API信息包括API名称和API超链接。其中API名称唯一标识了一种API类型,API超链接作为API详细信息界面的URL,提供给数据处理模块使用。
在定位并获取上述符合条件的数据以后,将它们存入本地数据库。
步骤120、基于过滤器、关键词识别、文本相似度计算和字符替换技术,通过爬虫访问问题详细信息页面,提取使用场景,建立API类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据。
步骤121、用户在命令行中输入问答对预处理器的启动命令,等待程序运行完毕。
图3为问答对预处理器建立API名称、使用场景和样例代码之间映射的流程图。在本实施例中,问答对预处理器提取出了问答对所对应的具体使用场景以及所对应的API名称,并建立三者之间的映射存入本地数据库。
将步骤111得到的问题超链接和步骤112中得到的API名称从数据库中读出,并且将其存入程序内的列表这一数据结构中,由于超链接的字段并非一个完整的URL路径,因此需要在每个超链接前拼接上Stack Overflow的域名,即https://stackoverflow.com,以此生成一个爬虫程序可以直接访问的URL,将其存入新的列表。
程序访问到问题详细信息页面以后,通过XPath定位到问题标题、问题体和问题最佳答案中代码的HTML元素,然后获取其中的文本内容。
在获取上述文本内容后,程序将把问题标题作为具体的使用场景,然后通过关键词识别的方式,首先确认最佳答案的代码中是否包含某API名称,如果没有则舍去,如果包含则继续判断问题的标题或问题体的描述中是否包含这一个API,如果也包含,就建立起一个该问答对、API和使用场景之间的映射,将其存入数据库中。
步骤122、用户在命令行中输入问答对提取器的启动命令,等待程序运行完毕。
本实施例中,问答对提取器定位并爬取了每个符合要求的问答对中的代码段,并将它们保存到本地。
将步骤121得到的每个映射关系中问答对的超链接从数据库中读出,并且在每个超链接前拼接上Stack Overflow的域名,生成完整的URL并存入新的列表。
在访问到问题的详细信息页面后,通过XPath定位到最佳答案中的代码片段和问题的id,接着爬取定位到的问题id和所有代码片段,有的问题体中不止一个代码片段,在此处通过顺序组合的方式将其组合为一段较为完整的代码段,并且存入本地的txt文件中,数据库中保存问题id和txt文件的路径。
步骤130、基于文档自动生成方法,使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的API文档。
图4为自动生成API文档的流程图。在本实施例中,使用Python的docx库中的document对象方法操作word文档对象;图5为预定义好的文档模板,包括API名称、使用场景和样例代码,每个使用场景和样例代码的组合展示在一个2行1列的表格中,每个表格按程序处理的顺序向下排列;预定义好的数据组合形式为元组,每个代码数据元组包含了问题id、使用场景和样例代码文件的路径。
用户可输入生成API文档的保存路径,程序会自动在指定路径下生成API文档。
将步骤112得到的所有API名称取出,将映射关系列表中所有包含该API名称的元组找出,并将这些元组中的问题id与API名称组合为新的元组,存入新的列表中。将步骤121得到的映射关系从数据库中取出存入列表,将步骤122得到的问题id和代码文件路径从数据库中取出存入列表,分别匹配这两个列表与上述API信息列表中问题id相同的部分,将问题id、API名称、使用场景和代码文件路径按预定义的格式组合在一起,存入场景-代码列表。
对于上述存放所有API名称的列表,依次取出其中的一个API名称,为其建立一个document对象,然后在上述场景-代码列表中取出所有包含该API名称的元组,通过元组中的代码文件路径读取txt文件中的代码段,然后按照预定义好的模板将API名称、使用场景和样例代码嵌入document对象中。在对该API文档对应的所有元组操作完成后,保存document对象,生成一个API文档。图6是上述步骤后生成的API文档,其中包含标题即API名称以及多个表格中存放的使用场景和样例代码对。
重复上述步骤,直到所有的API名称都被遍历过之后,结束程序,用户可以到事先制定的路径下查看所有生成的API文档。图7是所有生成的API文档的列表。
实施例二
图8为本发明实施例二中的一种处理故障修复型问答对的流程图,本实施例在上述实施例的基础上,增加了处理故障修复型问答对的步骤。下面结合图5对本发明实施例二提供的一种用JavaFX进行代码样例自动填充的方法以及处理故障修复型问答对的特殊流程进行说明,包括以下步骤:
步骤210、访问不同的统一资源标识符,并且定位HTML文档中的元素,再爬取定位到元素中的文本内容,获取问题信息和应用程序接口信息。
步骤220、通过爬虫访问问题详细信息页面,识别问题标题中是否含有某系特殊字段,由此来判断该问答对是故障修复型问答对还是普通问答对。
在本实施例中,上述特殊字段包括“error”、“failure”、“exception”和“issue”。
在爬虫爬取到问题标题之后,首先把问题标题字符串以空格为分隔符分割为多个单词字符串,存入列表中,然后遍历列表,分别判断每个单词字符串是否与上述特殊字段中的一个相同,如果相同,则将这个问答对归类为故障修复型问答对,否则归类为普通问答对。
步骤230、通过爬虫访问问题详细信息页面,提取使用场景,建立API类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据。
本实施例中,故障修复型问答对的问题标题通常可读性不佳,最佳答案中的代码通常是一段补丁代码,无法独立运行,因此需要进行特殊处理。
步骤231、提取故障修复型问答对的使用场景,然后建立API、使用场景和问答对的映射,存入本地数据库。
图9是问答对预处理器对故障修复型问答对的特殊处理流程图。对于故障修复型问答对,在获取了问题标题后,首先定位到特殊字段所在的位置,将特殊字段从问题标题中删除,然后判断其后是否有“in”这样的介词,如果有,就将介词从问题标题中删除。得到的新字符串作为该问答对的使用场景。
步骤232、用故障修复型问答对中最佳答案的代码片段替换问题体中的错误部分,生成新的没有错误的代码段,保存到本地。
图10是问答对提取器对故障修复型问答对的特殊处理流程图。对于故障修复型问答对,最佳答案中的代码通常是问题体中代码的一段补丁代码,用来替换问题体中有错误的部分,不能直接用作样例代码。
分别爬取问题体中的所有代码片段和最佳答案中的所有代码片段,按照顺序组合的方式把它们分别组合为两段新的代码段。接下来需要识别出问题体中有错误的部分,程序无法通过文本的语义来判断该代码段是否有错误,而通常情况下,问题体的代码段中与最佳答案的代码最为相似的一部分是需要被补丁代码替换的内容,因此采取文本相似度计算的办法,判断原代码中的哪部分需要替换为补丁代码。判断原代码待修复部分的步骤如下:
首先,把两个代码片段以换行符为分隔符分割为多个字符串,分别存入两个不同的列表。其中,a、b分别为两个字符串,leva,b(|a|,|b|)被定义为字符串ab之间的编辑距离。然后,遍历两个列表,分别计算第一个列表中每一个字符串和第二个列表中每一个字符串之间的编辑距离,编辑距离计算公式如下:
Figure BDA0002605804430000191
最后,计算两个字符串之间的文本相似度,文本相似度越高,说明两个字符串越相似,其中一个字符串就越有可能是由另一个字符串修改而来,计算公式如下:
sim=(string length)/(Edit distance)
在得出每两个字符串之间的文本相似度以后,分别找出文本相似度在0.3以下的两个字符串,在这两个字符串之间的文本视作可以相互替换的文本,然后删除源代码列表中可被替换部分的字符串,将补丁代码列表中的每个字符串依次插入上述两个字符串之间,最后在每个字符串末尾加上换行符,并依次加入一个字符串中,最后将该字符串作为文本保存到本地txt文件中。
步骤240、使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的应用程序接口文档。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种用JavaFX进行代码样例自动填充的方法,其特征在于,包括以下步骤:
S1:访问不同的统一资源标识符,并且定位HTML文档中的元素,再爬取定位到元素中的文本内容,获取问题信息和应用程序接口信息;
S2:通过爬虫访问问题详细信息页面,提取使用场景,建立应用程序接口类型、使用场景和代码样例的映射,并将原始数据加工为符合文档要求的数据;
S3:使用程序操作文档对象,通过代码逻辑预定义好文档模板和数据的组合形式,最后取出存储的数据嵌入文档,并保存生成最终的应用程序接口文档。
2.根据权利要求1所述的用JavaFX进行代码样例自动填充的方法,其特征在于,访问到不同的统一资源标识符和爬取文档元素内容的具体步骤包括:
S1-1:选择数据源,将某一具体技术对应映射设置一个标签,获取显示标签所对应具体技术的问题的网页的所有统一资源标识符;
S1-2:使用通过统一资源标识符爬虫访问到步骤S1-1中选取的数据源上显示标签带有该具体技术的问题的所有网页中,并获取所有网页页码中的最大值;
S1-3:将所有网页页码中的最大值作为拼接输入参数,通过拼接起来的统一资源标识符访问到每一页问题列表界面;
S1-4:通过XPath语言定位到所需信息所在的页面元素,所述页面元素包括问题ID、问题标题、回答数、投票数和问题详细信息界面超链接,然后使用爬虫把所述页面元素标签中的文本内容爬取下来;
S1-5:设置投票数和回答数为过滤条件,只将投票数和回答数大于1的问题信息存入数据库;
S1-6:爬虫通过统一资源标识符访问到某一技术原生应用程序接口文档;
S1-7:通过XPath定位到内联框架里列表所包含的每一个列表项元素,爬取标签中的文本内容并存入数据库,获取所有的应用程序接口类型。
3.根据权利要求1所述的用JavaFX进行代码样例自动填充的方法,其特征在于,在S2提取使用场景、建立映射和加工数据之前,还包括以下步骤:
取出数据库中存放的所有应用程序接口名称和问题信息包含的统一资源标识符,并将选取的数据源的域名作为前缀与所述统一资源标识符进行拼接,将应用程序接口名称和拼接后的结果分别存入列表;
遍历统一资源标识符列表,爬虫通过每个不同的统一资源标识符访问不同的问题详细信息页面,每一对问题和答案视作一个问答对;
进行关键词识别,判断问题标题中是否含有“failure”、“error”、“exception”和“issue”字段,如果有则将该问题标题对应的问题和答案视为故障修复型问答对,没有则视为普通问答对。
4.根据权利要求1所述的用JavaFX进行代码样例自动填充的方法,其特征在于,S2中提取使用场景、建立映射和加工数据的具体步骤如下:
S2-1:使用XPath定位到问题详细信息界面中的问题标题、问题体和答案部分,每一个问题和答案视为一个问答对;
S2-2:通过关键词识别技术,分析答案的代码片段、问题标题和问题体的代码片段中是否包含某一应用程序接口名称,建立问答对与应用程序接口名称之间的映射关系;
S2-3:对于普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中的故障关键词和其后介词,将剩余标题内容作为使用场景。建立起应用程序接口、使用场景和问答对的映射关系,并存入数据库;
S2-4:对于普通问答对,直接爬取答案中的代码片段并组合为一段完整代码,保存为本地文件;对于故障修复型问答对,分别获取问题体和答案中的代码段,通过文本相似度计算和字符替换,将所得产物保存为本地文件。
5.根据权利要求1所述的用JavaFX进行代码样例自动填充的方法,其特征在于,生成应用程序接口文档的具体步骤如下:
S3-1:根据文档所需内容预定义文档模板,根据处理数据的需求预定义数据的组合形式;
S3-2:对于每一个应用程序接口场景建立一个word文档对象,并根据API、使用场景和代码样例的映射关系,找到与这个应用程序接口对应的所有样例代码地址,然后将应用程序接口名称、使用场景和代码地址存入元组,元组放入列表中;
S3-3:对于每一个应用程序接口,取出所有元组中所有对应的样例代码样例地址,通过地址读取样例代码文件,将应用程序接口名称、使用场景和样例代码按照预定义的文档模板存入文档对象,最后保存API文档。
6.一种用JavaFX进行代码样例自动填充的工具,其特征在于,所述工具包括:数据收集模块、数据处理模块和文档生成模块;
所述数据收集模块通过统一资源标识符和XPath访问并定位页面中的元素,并爬取元素标签中的文本数据,保存到本地;
所述数据处理模块将原始数据加工为符合要求的数据,并保存到本地;
所述文档生成模块预定义生成文档的模板和数据的组合形式,从本地读取数据并嵌入文档对象中,最终生成带有使用场景和样例代码的应用程序接口文档。
7.根据权利要求6所述的用JavaFX进行代码样例自动填充的工具,其特征在于,所述数据收集模块收集的数据内容包括:
数据源上标签中带有某一具体技术的所有问题的问题id、问题标题、回答数、投票数和问题对应的超链接;
存入本地的数据需要是回答数和投票数都大于0的问题的相关信息;
某一具体技术的原生应用程序接口名称文档中的所有应用程序接口名称。
8.根据权利要求6所述的用JavaFX进行代码样例自动填充的工具,其特征在于,所述的数据处理模块加工原始数据的具体过程为定位并获取原始数据、判断问答对类型、提取并保存使用场景、建立映射、处理并保存样例代码;
所述定位并获取原始数据是指通过数据收集模块得到的问题超链接访问到问题具体信息页面,定位到页面中的问题标题、问题体中的代码片段和答案中的代码片段对应的页面元素,获取其中的文本内容。每个问题和答案的组合称为一个问答对;
所述判断问答对类型是指通过关键词识别的方式判断问答对的类型,作为进一步处理的依据;
所述提取并保存使用场景是指根据问答对类型的不同对问题标题进行不同的分析处理过程,提取并保存样例代码对应的使用场景;
所述建立映射是指根据通过关键词识别的方法,判断出与某问答对高度相关的应用程序接口名称,并建立起应用程序接口名称、使用场景和问答对的映射,保存到本地;
所述处理并保存样例代码是指根据问答对类型的不同对问题体和答案中的代码片段进行不同的分析处理过程,生成并保存符合要求的样例代码。
9.根据权利要求8所述的用JavaFX进行代码样例自动填充的工具,其特征在于,所述数据处理模块对不同类型的问答对的具体处理过程如下:
定位到的答案中的代码片段为最佳答案中的代码片段;
所述问答对类型分为普通问答对和故障修复型问答对;
对于不同类型问答对,提取使用场景的不同过程分为:普通问答对,直接将问题标题作为使用场景;对于故障修复型问答对,去除问题标题中与故障相关的名词和其后的介词,剩余的内容作为使用场景;
对于不同类型问答对,处理并保存样例代码的不同过程分为:对于普通问答对,直接爬取问题体中的所有代码片段并组合为一段完整的代码保存至本地;对于故障修复型问答对,需要计算问题体和最佳答案中代码片段各语句的文本相似度,然后用最佳答案中的代码片段替换问题体中的代码片段里与之最相似的部分,生成的代码段保存至本地。
10.根据权利要求6所述的用JavaFX进行代码样例自动填充的工具,其特征在于,所述的文档生成模块和数据组织形式的预定义过程以及中间过程的具体产物如下:
所述预定义的文档模板包括应用程序接口名称、使用场景和样例代码,每个一一对应的使用场景和样例代码放入同一个表格中,依次生成不同的表格,并逐个向后排列;
所述预定义的数据组织形式为元组,将每个一一对应的应用程序接口名称和样例代码存储地址放入一个元组,并将某个应用程序接口对应的所有元组放入一个列表中。
CN202010738427.7A 2020-07-28 2020-07-28 一种用JavaFX进行代码样例自动填充的方法和工具 Active CN111813443B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010738427.7A CN111813443B (zh) 2020-07-28 2020-07-28 一种用JavaFX进行代码样例自动填充的方法和工具

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010738427.7A CN111813443B (zh) 2020-07-28 2020-07-28 一种用JavaFX进行代码样例自动填充的方法和工具

Publications (2)

Publication Number Publication Date
CN111813443A true CN111813443A (zh) 2020-10-23
CN111813443B CN111813443B (zh) 2023-07-18

Family

ID=72862976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010738427.7A Active CN111813443B (zh) 2020-07-28 2020-07-28 一种用JavaFX进行代码样例自动填充的方法和工具

Country Status (1)

Country Link
CN (1) CN111813443B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113836450A (zh) * 2021-11-30 2021-12-24 垒知科技集团四川有限公司 一种基于可视化操作获取xpath的数据接口生成方法
CN113987146A (zh) * 2021-10-22 2022-01-28 国网江苏省电力有限公司镇江供电分公司 一种电力内网专用的新型智能问答系统
CN115202732A (zh) * 2022-06-27 2022-10-18 深圳市互通创新科技有限公司 一种智能软件开发辅助系统及使用方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2482374A1 (en) * 2003-10-23 2005-04-23 Microsoft Corporation Design of application programming interfaces (apis)
CN102646035A (zh) * 2012-02-17 2012-08-22 南京南瑞继保电气有限公司 基于api接口和脚本定义相结合的可视化代码生成方法
CN106569947A (zh) * 2016-11-01 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种从单元测试代码中提取api使用示例的方法与工具
CN106681708A (zh) * 2016-11-16 2017-05-17 中国科学院软件研究所 一种基于数据挖掘的源代码注释自动生成方法
CN110162468A (zh) * 2019-04-26 2019-08-23 腾讯科技(深圳)有限公司 一种测试方法、装置以及计算机可读存储介质
CN110738024A (zh) * 2019-09-24 2020-01-31 深圳丝路天地电子商务有限公司 将WebAPP转换为API服务接口的方法
CN110990003A (zh) * 2019-11-15 2020-04-10 南通大学 一种基于词嵌入技术的api推荐方法
CN111008020A (zh) * 2019-12-24 2020-04-14 四川新网银行股份有限公司 将逻辑表达式解析为通用查询语句的方法
CN111427802A (zh) * 2020-06-09 2020-07-17 南京大学 利用集成学习进行测试用例优先级排序的测试方法和系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2482374A1 (en) * 2003-10-23 2005-04-23 Microsoft Corporation Design of application programming interfaces (apis)
CN102646035A (zh) * 2012-02-17 2012-08-22 南京南瑞继保电气有限公司 基于api接口和脚本定义相结合的可视化代码生成方法
CN106569947A (zh) * 2016-11-01 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种从单元测试代码中提取api使用示例的方法与工具
CN106681708A (zh) * 2016-11-16 2017-05-17 中国科学院软件研究所 一种基于数据挖掘的源代码注释自动生成方法
CN110162468A (zh) * 2019-04-26 2019-08-23 腾讯科技(深圳)有限公司 一种测试方法、装置以及计算机可读存储介质
CN110738024A (zh) * 2019-09-24 2020-01-31 深圳丝路天地电子商务有限公司 将WebAPP转换为API服务接口的方法
CN110990003A (zh) * 2019-11-15 2020-04-10 南通大学 一种基于词嵌入技术的api推荐方法
CN111008020A (zh) * 2019-12-24 2020-04-14 四川新网银行股份有限公司 将逻辑表达式解析为通用查询语句的方法
CN111427802A (zh) * 2020-06-09 2020-07-17 南京大学 利用集成学习进行测试用例优先级排序的测试方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
H. ZHANG 等: "Ethnographic Research in Software Engineering: A Critical Review and Checklist", 《IN PROCEEDINGS OF 27TH ACM JOINT EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING》, pages 659 - 670 *
XIN YE 等: "From word embeddings to document similarities for improved information retrieval in software engineering", 《PROCEEDINGS OF THE 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING》, pages 404 - 415 *
李宇琨 等: "基于众包问答信息的API使用代码搜索", 《计算机应用与软件》, vol. 35, no. 7, pages 43 - 51 *
赵驰: "深度循环神经网络在特定场景自动问答中的应用研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 7, pages 138 - 1447 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113987146A (zh) * 2021-10-22 2022-01-28 国网江苏省电力有限公司镇江供电分公司 一种电力内网专用的新型智能问答系统
CN113987146B (zh) * 2021-10-22 2023-01-31 国网江苏省电力有限公司镇江供电分公司 一种电力内网专用的智能问答系统
CN113836450A (zh) * 2021-11-30 2021-12-24 垒知科技集团四川有限公司 一种基于可视化操作获取xpath的数据接口生成方法
CN113836450B (zh) * 2021-11-30 2022-02-08 垒知科技集团四川有限公司 一种基于可视化操作获取xpath的数据接口生成方法
CN115202732A (zh) * 2022-06-27 2022-10-18 深圳市互通创新科技有限公司 一种智能软件开发辅助系统及使用方法
CN115202732B (zh) * 2022-06-27 2023-08-08 苏州唐人数码科技有限公司 一种智能软件开发辅助系统及使用方法

Also Published As

Publication number Publication date
CN111813443B (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
US9177013B2 (en) System and method for citation processing, presentation and transport and for validating references
CN111813443B (zh) 一种用JavaFX进行代码样例自动填充的方法和工具
Zhao et al. Fully automatic wrapper generation for search engines
Lage et al. Automatic generation of agents for collecting hidden web pages for data extraction
CN110134613B (zh) 一种基于代码语义及背景信息的软件缺陷数据采集系统
WO2012054788A1 (en) Method and system for performing a comparison
CN106960058B (zh) 一种网页结构变更检测方法及系统
CN1955952A (zh) 用于自动提取副标题信息的系统和方法
CN105335246B (zh) 一种基于问答网站分析的程序崩溃缺陷自动修复方法
CN111079043A (zh) 一种关键内容定位方法
CN104699841A (zh) 提供搜索结果的列表摘要信息的方法和装置
US7853595B2 (en) Method and apparatus for creating a tool for generating an index for a document
CN103838796A (zh) 一种网页结构化信息抽取方法
CN112257462A (zh) 一种基于神经机器翻译技术的超文本标记语言翻译方法
CN111143370A (zh) 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质
US7814096B1 (en) Query based search engine
CN111966940B (zh) 一种基于用户请求序列的目标数据定位方法和装置
CN113032279A (zh) 一种基于语义路径搜索的Web应用测试修复方法
US20220092136A1 (en) Search engine optimization test tool
KR20050078655A (ko) 동적 키워드 추출과 처리 시스템
CN115373649B (zh) 动态互联网内容无障碍改造方法及装置及网站内容无障碍改造方法
CN104750604A (zh) 浏览器兼容性测试案例的生成方法和装置
Dejean Extracting structured data from unstructured document with incomplete resources
US20120150899A1 (en) System and method for selectively generating tabular data from semi-structured content
Kasegn et al. Spatial locality based identifier name recommendation

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