论文部分内容阅读
自然语言处理是人工智能的一个重要研究领域,它主要研究如何利用计算机来理解、处理和生成自然语言。在数据库查询系统中应用自然语言理解技术,设计数据库自然查询语言接口,已成为自然语言研究中最具有广泛应用前景的方向之一。
本文主要对受限的数据库自然查询语言进行研究。通过自然语言的相关技术将受限的数据库查询语句翻译成机器可识别的SQL语句,最终实现数据库的查询。本文将关键的技术分为了五个模块,分别是分词模块、数据库语义标注模块、语法分析模块、ER图中找连接路径模块、语义依存树生成SQL语句模块。
其中分词模块所用算法思路是先将所有可能的分词情况找出来,再将这些词中相邻的词汇作为节点,将两个相邻节点用边连接起来,通过查找二叉词典为边赋上权值,这样就形成了一个带有权值的图。图中边的权值代表了词汇之间的耦合程度,耦合度越低证明两个词的独立性越强,两个词重新组词的几率就越小,当前分词正确率就越高。因此分词的问题就转化为找出该图的最短路径。用Dijkstra算法即可解决。
第二个模块是数据库语义标注模块,数据库语义即是将数据库的对象分为实体词,属性词,通用词等8大类,并将其按照一定的格式存储在词典中,通过查找词典对分好的词选择适当的数据库对象进行标注。
语法分析模块是利用语法依存树的特点对查询语句进行语法分析。语法依存树的特点可以更好的体现汉语语法的灵活性,便于查询语句的语法分析。
ER图中找连接路径模块的主要的作用是用来找出SQL的条件子句(where子句)后面的实体连接条件,可以智能的推测出用户的意思。
最后一个模块是语义依存树生成SQL语句模块,在这个模块中,将语义依存树划分为若干的语义块,将每一个语义块的目标对象(O),表集(T)和条件(C)提取出来,保存在该语义块中。再对每一个语义块进行递归的合并,最终形成整个语义依存树的目标对象(O),表集(T)和条件(C),最后在简单的合并,即可形成语义依存树的SQL语句。
按照上述的理论,实现了基于自然查询语言的数据库搜索系统,并在此系统的基础上做了大量的实验。实验结果表明,在受限的自然查询语句的识别上,系统表现良好。而且系统具有易扩充性。对于其他领域的数据库,只需要增加专业词典而无需修改程序即可实现不同领域的数据库的查询。