[发明专利]自动生成编程规范问题答案的系统及方法在审
| 申请号: | 201910717702.4 | 申请日: | 2019-08-05 |
| 公开(公告)号: | CN112328800A | 公开(公告)日: | 2021-02-05 |
| 发明(设计)人: | 吴秦月;杜天蛟;曹峻铭;李威;沈备军;陈雨亭 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F16/36 | 分类号: | G06F16/36;G06F8/33;G06F16/332 |
| 代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
| 地址: | 200240 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 自动 生成 编程 规范 问题 答案 系统 方法 | ||
1.一种自动生成编程规范问题答案的系统,其特征在于,包括:子图匹配模块、机器阅读理解模块和学习排序模块,其中:子图匹配模块采集自然语言问题并转换为符合SPARQL协议的语句,利用编程规范知识图谱中结构化的信息查询得到候选答案;机器阅读理解模块使用深度学习模型自动理解非结构化文本,预测得到候选答案;学习排序模块将子图匹配模块和机器阅读理解模块得到的候选答案合并,使用逻辑回归分类器对候选答案按照正确的概率进行排序。
2.一种根据权利要求1所述系统的自动生成编程规范问题答案的方法,其特征在于,包括以下步骤:
步骤1)构建编程规范知识图谱,具体为:基于编程规范知识图谱的本体,收集书籍以及各种组织公开的编程规范文档,将其整理存储为编程规范知识图谱中的三元组;
步骤2)通过子图匹配模块识别出自然语言问题中的节点,然后使用Stanford CoreNLP工具构建语法依赖树,根据识别出的节点集合和构建的语法依赖树生成查询子图Qu,根据Qu的内容和结构生成SPARQL查询语句,查询知识图谱得到候选答案;
步骤3)通过机器阅读理解模块从自然语言问题中选取所有的名词、名词短语和主语,将这些词标记为关键词,使用Apache Solr引擎搜索得到最相关的10个自然段,并且使用基于TF-IDF的算法对搜索得到的自然段进行打分,再对每个自然段使用训练好的深度学习模型得到候选答案;
步骤4)学习排序模块对步骤2和步骤3产生的候选答案进行合并生成新的候选答案,然后使用逻辑回归分类器按照正确的概率对新的候选答案进行排序;
所述的编程规范知识图谱包括:结构化数据和非结构化数据;
所述的结构化数据是指:实体、关系/属性、实体构成的三元组。
3.根据权利要求2所述的方法,其特征是,所述的编程规范文档中的每个段落对应一条非结构化数据,具体构建流程为:将编程规范文档拆分成段落,使用TF-IDF计算段落和实体的相似度,通过添加属性的方式把段落连接在相似度最高的实体上。
4.根据权利要求3所述的方法,其特征是,所述的TF-IDF是指:用词频和逆文档频率来评估每个词在句子中的重要程度。当某个词在句子中出现的频率高,并且它在其他句子中出现的次数较少,则认为该词比较重要。
5.根据权利要求2所述的方法,其特征是,所述的节点包括:疑问词节点和实体节点,其中:疑问词节点是指:用户输入的自然语言问题中wh开头的单词;实体节点是指:知识图谱中的实体;
识别实体节点的过程为:收集了公开的编程规范术语制作成编程规范术语表,通过查询编程规范术语表找到用户的自然语言问题中包含的编程规范术语,然后使用Jena引擎全文搜索在编程规范知识图谱中找到最匹配的实体形成实体节点,并按匹配程度从高到低返回结果。
6.根据权利要求2所述的方法,其特征是,所述的查询子图Qu,通过以下方式得到:对于给定的语法依赖树和节点集合V,在查询子图Qu中添加节点集合V,当两个节点v1,v2的简单路径中没有其他节点,那么就在Qu中为这两个节点添加一条边,语法依赖树中v1和v2之间的简单路径包含的单词形成Qu该边的标签,遍历每个节点重复上述操作就可以构建出查询子图Qu。
7.根据权利要求2所述的方法,其特征是,所述的候选答案合并是指:将所有的候选答案格式统一,即删除标点、大小写统一;然后删除重复的答案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910717702.4/1.html,转载请声明来源钻瓜专利网。





