一种基于邮件列表的开源软件问答信息抽取方法技术

技术编号:15639267 阅读:74 留言:0更新日期:2017-06-15 22:27
本发明专利技术公开了一种基于邮件列表的开源软件问答信息抽取方法。本方法为:1)从邮件归档服务器上爬取目标开源软件的邮件归档文件;依据邮件头部域将邮件归档文件分割成多封单独的邮件;2)将回复信息域为空的邮件设为一个会话的提问邮件,然后从得到的邮件中查找回复信息域的域值为该提问邮件的邮件标识ID的邮件,将其加入该会话;从而将同一主题下的邮件组织成邮件对话的形式;3)提取各邮件的正文信息并对邮件内容中代码元素进行标注;4)从提问邮件的正文信息中提取问题句及其上下文信息;然后基于问题句及其上下文信息和标注的代码元素构建查询条件,在该提问邮件的会话邮件中进行检索;然后从检索结果中选取一邮件作为回答信息。

【技术实现步骤摘要】
一种基于邮件列表的开源软件问答信息抽取方法
本专利技术涉及一种基于邮件列表的文档摘要方法,具体涉及一种基于邮件列表的开源软件问答信息抽取方法。
技术介绍
软件开发人员在项目开发的过程中越来越多地复用开源软件。开源项目通常会提供诸如用户手册、FAQ页面、邮件列表等文档来帮助用户更好地理解和使用开源项目。其中邮件列表中蕴含丰富的软件问答信息。软件开发人员可以到邮件列表中去检索是否有人遇到过相似的问题。但由于邮件的数量巨大,邮件内容组织繁杂等因素使得其不易于被阅读和浏览。若能从邮件列表中定位到问题句和回答句,对进一步整合问题信息以及检索答案会有很大帮助。目前,关于问答信息抽取的相关工作主要是基于特征词(5W1H)和疑问标点的方法。但这类方法存在模型过于简单,准确性不高的问题。因此,对邮件问答信息进行自动化分析、抽取,进而帮助开发人员高效地获取与开源项目相关的问答信息是一项亟待解决的问题,对软件开发效率的提高有重要意义。
技术实现思路
针对目前开源软件邮件列表数量众多、不易阅读的问题,本专利技术提供了一种针对特定开源项目的邮件问答信息抽取方法,通过本专利技术提供的方法可以有效地从邮件列表中为软件开发者抽取开源软件相关的问答信息。本专利技术的技术方案为:一种基于邮件列表的开源软件问答信息抽取方法,其步骤为:1)从邮件归档服务器上爬取目标开源软件的邮件归档文件;依据邮件头部域将所述邮件归档文件分割成多封单独的邮件;2)将回复信息域为空的邮件设为一个会话的提问邮件,然后从步骤1)得到的邮件中查找回复信息域的域值为该提问邮件的邮件标识ID的邮件,将其加入该会话;从而将同一主题下的邮件组织成邮件对话的形式;3)提取各邮件的正文信息并对邮件内容中代码元素进行标注;4)从提问邮件的所述正文信息中提取问题句及其上下文信息;然后基于问题句及其上下文信息和标注的代码元素构建查询条件,在该提问邮件的会话邮件中进行检索;然后从检索结果中选取一邮件作为回答信息。进一步的,从检索结果中选取一邮件作为回答信息的方法为:21)选取检索结果中的前若干封邮件作为候选答案邮件;22)根据作者权威度、邮件位置以及回复邮件的态度计算每一候选答案邮件的权重;23)选取权重最高的候选答案邮件作为回答信息。进一步的,所述邮件的作者分为项目开发人员、资深用户和普通用户;其中,项目开发人员的权威度>资深用户的权威度>普通用户的权威度,候选答案邮件的作者权威度越大,该候选答案邮件权重越大;根据候选答案邮件的回复时间确定邮件位置对应的权重,候选答案邮件的回复时间越早,该候选答案邮件的权重越大;在邮件会话中,若提问邮件的作者对候选答案邮件做出了肯定的回复,则增大该候选答案邮件的权重。进一步的,所述问题句的上下文信息包括该问题句所在段落、与该问题句临近的代码和与该问题句临近的异常信息。进一步的,根据邮件标题中的内容词、问题句中的内容词以及问题句段落的代码元素、异常文本段落的异常信息词汇构建所述查询条件。进一步的,对步骤1)得到的邮件进行预处理,其方法为:首先对每一邮件进行分段;然后识别出邮件中的冗余文本段落、邮件引用段落、异常信息段落、代码文本段落、正文信息段落;进一步的,所述冗余文本段落的识别方法为:检测邮件第一段落的前两句,若是问候句则将该句从当前段落移除,划分到冗余文本段落;检测邮件结尾之前的两个段落,如果只包含两个以内短句或包含人名、感谢语,则划分到冗余文本段落;所述邮件引用段落的识别方法为:如果段落的第一句匹配某人在某天写道的句式且该段以设定符合“>”开始的行数超过段落总行数的设定比例H,则该段为邮件引用段落;所述异常信息段落的识别方法为:统计段落的总行数和位于行的行数,若位于行的行数占总行数比例超过设定比例L且存在导致行和省略行,则认为该段落是异常信息段落;所述异常描述行为包含设定异常特征词语的行,所述位于行为包含堆栈信息中某个方法的行号的行,所述导致行为包含说明异常出现的原因及位置的行,所述省略行为以省略号开头、以数字后接“more”结尾的行;所述代码文本段落的识别方法为:利用语法解析器从邮件文本段落中抽取符合语法的文本块作为代码文本段落,如果文本段落中包含Java关键词的句子超过该文本段落中句子总数的一半,则判定该文本段落为代码文本段落;将该邮件剩余未识别部分作为该邮件的所述正文信息段落。进一步的,所述邮件归档文件为Unixmbox格式的邮件归档文件。进一步的,对邮件内容中代码元素进行标注的方法为:将邮件内容中的代码元素与目标开源软件的代码元素列表进行比对,将邮件内容中的代码元素分为目标开源软件的代码元素和其他项目的代码元素;然后对目标开源软件的代码元素进行标注:从目标开源软件的代码元素中抽取出类、方法、接口代码元素;对邮件内容去除停用词后,将剩余单词与抽取的代码元素进行匹配标注。本专利技术的方法如图1所示,包括如下步骤:1.一种邮件收集整理模块。该模块从邮件归档服务器上爬取指定开源项目Unixmbox格式的邮件归档文件,并进行解析。包括以下子模块:1.1.mbox文件的获取使用HttpClient访问Web网页资源,使用Http的Get方法获取网页内容,对其中的超链接进行分析,将链接到mbox文件的超链接加入需要下载的队列,获取时对下载队列中的文件进行爬取。配置一个多线程的爬虫框架,该爬虫分配装置包括:爬虫控制中心:对爬虫进行初始化设置,如设置子线程数目、添加种子链接(seedlink)等;任务队列:保存当前正在爬取的任务以及等待被爬取的任务;主爬虫:根据给定的种子链接解析出子任务并添加到队列中,同时启动多个子爬虫;子爬虫:完成具体的爬取任务;1.2.mbox文件的解析邮件的原始文本是一种半结构化信息,包括头部域和正文域。头部域是结构化的信息,以键值对的形式表现,正文域是非结构化信息,以自然语言文本的形式表现。可以根据头部域对邮件进行拆分、解析。步骤如下:步骤一:依据邮件头部域将mbox文件分割成多封单独的邮件;步骤二:解析每一封邮件,将其保存为邮件实体类;步骤三:对于每一封“InReplyTo”域(回复信息域)为空的邮件,将其设为一个会话的提问邮件,然后从mbox的其他邮件中查找“InReplyTo”域值为该提问邮件“MessageID”(邮件标识ID)的邮件,将其加入会话;步骤四:对新加入的邮件执行步骤三,将“InReplyTo”域为该邮件的“MessageID”的邮件加入会话;步骤五:重复步骤四直到没有新邮件加入会话。经过上述五个步骤,将同一主题下的邮件组织成邮件对话的形式。2.邮件内容预处理2.1.邮件内容的分类开源项目邮件内容繁杂,邮件内容可以分为:冗余文本段落、邮件引用段落、异常信息段落、代码文本段落、正文信息段落。对邮件分段后,逐步分类。分段步骤为:步骤一:从数据库中读取邮件内容,按换行符“\n”将内容分割为多个行;步骤二:忽略邮件头部的多个空行;步骤三:从第一个非空行开始为一个段落的开始,直到遇到下一个空行;步骤四:重复步骤三直到邮件末尾;2.1.1.冗余文本段落识别分为两个步骤:步骤一:检测邮件第一段落的前两句,如句子简短,包含“Hi”,“Hello”等问候词汇。若是问候句则将该句从当前段落移除,划分到冗余文本段落。步骤二:本文档来自技高网...
一种基于邮件列表的开源软件问答信息抽取方法

【技术保护点】
一种基于邮件列表的开源软件问答信息抽取方法,其步骤为:1)从邮件归档服务器上爬取目标开源软件的邮件归档文件;依据邮件头部域将所述邮件归档文件分割成多封单独的邮件;2)将回复信息域为空的邮件设为一个会话的提问邮件,然后从步骤1)得到的邮件中查找回复信息域的域值为该提问邮件的邮件标识ID的邮件,将其加入该会话;从而将同一主题下的邮件组织成邮件对话的形式;3)提取各邮件的正文信息并对邮件内容中代码元素进行标注;4)从提问邮件的所述正文信息中提取问题句及其上下文信息;然后基于问题句及其上下文信息和标注的代码元素构建查询条件,在该提问邮件的会话邮件中进行检索;然后从检索结果中选取一邮件作为回答信息。

【技术特征摘要】
1.一种基于邮件列表的开源软件问答信息抽取方法,其步骤为:1)从邮件归档服务器上爬取目标开源软件的邮件归档文件;依据邮件头部域将所述邮件归档文件分割成多封单独的邮件;2)将回复信息域为空的邮件设为一个会话的提问邮件,然后从步骤1)得到的邮件中查找回复信息域的域值为该提问邮件的邮件标识ID的邮件,将其加入该会话;从而将同一主题下的邮件组织成邮件对话的形式;3)提取各邮件的正文信息并对邮件内容中代码元素进行标注;4)从提问邮件的所述正文信息中提取问题句及其上下文信息;然后基于问题句及其上下文信息和标注的代码元素构建查询条件,在该提问邮件的会话邮件中进行检索;然后从检索结果中选取一邮件作为回答信息。2.如权利要求1所述的方法,其特征在于,从检索结果中选取一邮件作为回答信息的方法为:21)选取检索结果中的前若干封邮件作为候选答案邮件;22)根据作者权威度、邮件位置以及回复邮件的态度计算每一候选答案邮件的权重;23)选取权重最高的候选答案邮件作为回答信息。3.如权利要求2所述的方法,其特征在于,所述邮件的作者分为项目开发人员、资深用户和普通用户;其中,项目开发人员的权威度>资深用户的权威度>普通用户的权威度,候选答案邮件的作者权威度越大,该候选答案邮件权重越大;根据候选答案邮件的回复时间确定邮件位置对应的权重,候选答案邮件的回复时间越早,该候选答案邮件的权重越大;在邮件会话中,若提问邮件的作者对候选答案邮件做出了肯定的回复,则增大该候选答案邮件的权重。4.如权利要求1所述的方法,其特征在于,所述问题句的上下文信息包括该问题句所在段落、与该问题句临近的代码和与该问题句临近的异常信息。5.如权利要求4所述的方法,其特征在于,根据邮件标题中的内容词、问题句中的内容词以及问题句段落的代码元素、异常文本段落的异常信息词汇构建所述查询条件。6.如权利要求1所述的方法,其特征在于,对步骤1)...

【专利技术属性】
技术研发人员:邹艳珍金庸沈琦
申请(专利权)人:北京大学天津滨海新一代信息技术研究院
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1