基于全文搜索的中文自动答疑系统设计实现

时间:2022-06-07 10:20:18

基于全文搜索的中文自动答疑系统设计实现

摘要:文章论述了一个中文自动答疑系统的设计实现方法,该系统使用3.5+C#语言开发,使用中文分词组件来理解拆分自然语言,并转化为关键字,再进一步使用SQL Server全文搜索技术进行全文查询得到相同或类似的问题-答案对。

关键字:自动答疑;3.5;中文分词;全文搜索

中图分类号:TP312文献标识码:A文章编号:1009-3044(2010)21-6074-03

The Design and Implementation of the Chinese Automatic Question Answering System Based on Full-text Retrieval

LI Chun, HUANG Xiao-ling

(Guangzhou Baiyun Industrial&Commercial Senior Technical School, Guangzhou 510410, China)

Abstract: The full paper describes the method of The Chinese Automatic Question Answering System's design to realize, this system used the 3.5+C# language development, used module of Chinese Word Segmentation to understood and resolution natural language, and transformed as the key words, further used SQL Server Full-text Retrieval technology for to carry on the full text inquiry again to obtain same or similar question-answer.

Key words: automatic question-answering system; 3.5; Chinese word segmentation; Full-text retrieval

现在的高校和职业教育教学模式,教师下课后学生很少有机会和教师面对面的解释和交流,而当学生遇到无法理解的问题需要得到帮助的时候,非常需要一个平台让他们在没法找到老师的情况下也能够解惑。随着网络技术飞速发展,有不少的学校使用中文自动答疑系统作为师生课外交流的一个平台,,即把来自学生们的问题和老师的解答有机地组织起来存放到相应的答疑库中,通过自然语言的理解技术来分析并自动的匹配学生提出的问题,自动地给予问题的解答。

1 中文自动答疑系统总体功能模块结构设计

本系统主要是为在校师生而设计的。所以本系统主要面对的用户是学生和教师,他们对系统的要求是能够方便快捷的回答疑问。

对学生而言,他们希望能在答疑系统中随时查询到每门课的重点、难点内容,当他们有问题时希望答疑系统能提供有价值参考解决方法,根据“问题统计分析”数据,他们能知道哪些是他们共同遇到的问题,以便可以吸收经验快速进行自我学习自我改正。

对教师而言,他们希望能通过查询“问题统计分析”数据随时了解学生的学习难点主要集中在哪些知识点,以便可以根据学生学习情况调整教学进度和教学计划,提高教学质量;在线查询是否有答疑库不能提供的问题解答,随时在线充实答疑库,在线维护答疑库,并可以为未找到满意答案的学生提供异步答疑服务。

此外,为了方便维护用户基本信息、课程基本信息,系统管理员还需要在线可以增加、修改用户信息,包括用户的账号、密码、用户类型,在线增加修改课程信息。

根据上述分析,中文自动答疑系统应为学生提供一个“咨询答疑功能模块”,为教师提供一个“答疑信息管理功能模块”,为学生和教师提供一个“问题统计分析功能模块”,为系统管理员提供一个“后台信息管理功能模块”。如图1示。

2 中文自动答疑系统关键技术

2.1 自然语言的处理

本自动答疑系统要求能使用中文自然语言进行提问。众所周知,英文句子以词作为单位,词和词之间用空格隔开,计算机很容易通过空格取出每一个词,但中文是以字为单位,句子中所有的字连起来才能表达出一个完整的意思。例如英文“I am a teacher”,计算机很容易理解teacher这个单词;但对于中文“我是一个教师”,计算机就很难理解“教”和“师”是连起来的一个完整单词,分开单独理解就不能表达句子的意义了。所以中文自动答疑系统必须解决将中文自然语言切分为有意义单词的问题,也就是使用中文分词技术。

本系统使用的自然语言处理技术是使用一个中文分词组件――CSW中文分词组件来实现。该组件能将一段中文自然语言按常规汉语词级来进行拆分,并将拆分结果用指定的方式来进行分隔,调用CSW中文分词组件对自然语言短语进行按常规汉语词组进行拆分的关键代码如下所示:

CSWLib.SplitWordClass csw = new CSWLib.SplitWordClass();

string str_text = csw.Split("待拆分原始文本",0,@"c:\windows\system");

被CSW中文分词组件拆分后的str_text再使用System.String.Split 方法分析字符串拆分关键字,通过系统识别出一些无效的词,例如:“为什么”、“什么是”、“什么”等去掉,再用剩下的关键字搜索对应课程问题答案信息表的A_Question列将符合条件的问题查询并显示出来。

2.2 关键字查询处理

本系统使用SQL Server 2005作为后台数据库管理软件,支持全文搜索功能。对于全文查询来说,数百万行文本数据执行查询,使用全文搜索技术只需要几秒或更少的时间,具体取决于返回的行数,而使用 LIKE 查询可能需要花费几分钟时间才能返回结果,所以本系统在关键字查询上选用全文搜索技术,参考代码如下:

SELECT A_Question,A_Answer

FROM 对应课程问题答案信息表

WHERE CONTAINS(A_Question, '"关键词一*" and|or "关键词二*" ' _

…… and|or "关键词n*"* ')

上述检索的关键词数由拆分出来的字符串数组长度决定,由循环语句和条件判断语句完成关键词的“与”或“或”关系的组合。

3 中文自动答疑系统的实现

本系统使用3.5+C#语言开发,后台数据库管理软件使用SQL SERVER 2005,以B/S模式运行。下面论述各主要功能模块的实现方法。

3.1 学生咨询答疑功能模块的实现

学生咨询答疑模块流程见图2所示,学生登录后直接进入学生咨询答疑功能模块首页。该页面呈现答疑系统所包含的课程链接以及问题统计分析信息界面链接。学生进入浏览常见问题答案模块中可看到该页面是按课程分类浏览典型问题及答案,如果学生在该页面查找到他的问题及答案,则不需要向系统提出问题,否则学生可以向系统提出问题搜索答案。学生录入的问题可以是关键词或自然语言短语,如果是自然语言短语,由系统使用中文分词组件理解学生的问题,并进行分析从中找出关键词,再使用全文搜索技术将符合条件的答案查找出来让学生选择,如果学生认为没有找到符合条件的答案,可以将问题提交给系统保存,等待相应课程的维护老师登录检查后用E-mail返回答案的方式答疑。

3.2 教师答疑信息管理功能模块的实现

教师答疑信息管理功能模块流程见图3所示,包括新问题--答案对录入功能模块、教师在线答疑模块功能、修正现有问题答案对信息功能模块。

新问题--答案对录入模块主要功能是提供答疑库的的信息,即系统准备投入运行时,必须向每门课程问题--答案对信息表中录入大量的标准问题和答案,故系统必须向任课老师提供一个问题答案录入窗口,系统开通后,任课老师也可以随时加入一些新的问题及答案进系统。这些都要求系统在设计时考虑问题--答案的录入模块的设计,尽量以方便任课老师使用为目标。

教师在线答疑功能模块的主要功能是负责相应课程维护的老师定期登录,检查是否有学生提交系统末能回答的问题,如果有则老师在相应的页面输入答案为系统添加新的问题―答案对,同时并由系统自动向提问学生发E-mail返回答案。

修正现有问题答案对信息模块的主要功能是为教师提供在线修改更正问题--答案对信息。系统在运行的过程中,可能会不断发现一些问题答案对信息不够准确或需要更新,提供这个模块的目的就是为了更容易更方便教师在线不断完善系统,提供系统的正确性。

3.3 问题统计分析功能模块的实现

该模块按课程名读取对应课程的问题答案信息表中的问题及与其相对应的被查看频率,并按问题被查看频率从高到低排序分页输出显示。

3.4 后台信息管理功能模块的实现

该模块为管理员提供相应的输入界面在线录入新教师、新学生或新课程信息功能。如果学生或教师信息有误,管理员可以选择按编号或按用户名查询教师或学生的信息在线修改;如果课程名有误,必须要判断该课程在问题答案信息表是否已有数据,如果已有数据,则该课程不能被删除,但可以被修改,只是在修改时必须按约束条件级联修改。

4 结束语

在利用中文分词组件提取关键词的基础上,通过对提问信息进一步的加工提取,再使用SQL Server 的全文搜索技术,在.NET环境下实现了一个能浏览,搜索,提问等功能较全面的中文自动答疑系统,通过此答疑系统,能有效祢补师生直接交流答疑时间的不足,对提高教学质量有很大的帮助。

参考文献:

[1] 江耿豪.自动答疑系统中文自动分词模块设计与实现[J].现代计算机,2010,2:8-14.

[2] 林晓丹.陆松年.一种全文索引自动答疑系统的设计与实现[J].华侨大学学报(自然科学版),2009,3:155-157.

[3] 冯志彪.姜彬. 基于WEB的网络自动答疑系统的设计与建立[J].中国现代教育装备,2010,1:42-44.

[4] 吕文波. 基于网络课程的自动答疑系统研究与设计[J].山东电电大学报,2008,2:11-12.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:浅析汇编语言中数大小的比较 下一篇:基于物联网的实验室管理技术