循序渐进制作我的词典数据库(一)
期待已久的词典编译器终于发布了。从今天开始,我将逐步向大家介绍如何制作词典数据库。
制作词典数据库至少要有两个文件:第一个是编译器所用的配置文件;第二个是词典的文本内容,即源数据文件。编译器的配置文件用于告诉程序如何将词典的文本内容编译 成词典数据库,配置文件是 XML 文件,要按一定的语法撰写。而源数据文件的结构则是自由的。只要文本数据有一定的规律,都可能可以通过编写配置文件来编译成数据库。
下面,让我们从最简单的地方开始,制作一个只有两个词条的词典数据库。本示例所采用的文件可在此处下载。
源数据文件
首先,使用记事本或其它文本编辑器,编写一个词典文本文件(示例1.txt),其内容如下:
一
yi1
最简单的数字
一鼓作气
yi1 gu3 zuo4 qi4
一下子完成任务
该文件有七行,其中有两个词条(“一”和“一鼓作气”)。第一行(“一”)是词条,在词条下面的两行是“一”的解释文本;后续出现的一个空行表示解释文本结束,再下一行将是新的词条(“一鼓作气”),后续的内容则是“一鼓作气”的解释。
将上述词典文本文件保存到硬盘上,命名为“示例1.txt”。
编译器配置文件
有了源数据文件后,我们可以开始编写编译器的配置文件了。
编译器配置文件是 XML 文件。这是一种使用尖括号标签标记的文本代码文件,在W3School网站、IBM网站上均有如何编写 XML 文档的概念和入门讲解,在此就不再介绍 XML 文档的知识了。本示例的编译器配置代码如下所示。
1 <?xml version="1.0" encoding="gbk"?> 2 <config 3 title="示例1" 4 description="一步步教你生成数据库" 5 url="http://hanzisearcher.cnblogs.org" 6 author="Dr. Han" 7 version="第一版"> 8 <data file="示例1.txt"> 9 <row field="1"/> 10 </data> 11 </config>
编译配置文件的根元素中包含了词典的基本属性。其中,“title”属性是词典在程序检索结果中出现的名称,它是必须出现的。其它的内容则是可选的信息,例如“description”表示词典的简要描述内容,“url”告诉使用者查看该网址可以获得更多的信息,“author”表示词典的制作者或编者,“version”表示词典的版本信息。
“data”元素出现在根元素之内,表示词典数据库的数据来源及内容布局。执行编译时,程序会读取“file”属性所指向的文件,然后按照“data”内各子元素的定义分析源文件,将其转换为词典数据库的条目。之前,我们已经保存源数据文件为“示例1.txt”,因此,在“file”属性中填入“示例1.txt”。在“data”元素内的“row”子元素,表示“示例1.txt”文件是由一行一行的文本构成的,“field”属性表示文本对应哪个字段定义。在本示例中,我们没有定义任何字段,所以,在“field”属性的值中填“1”。
完成编辑后,将配置文件保存为“示例1.xml”文件。配置文件和源数据文件要处于同一个目录下,否则需要更改“data”元素的“file”属性以匹配两文件的位置关系。
执行编译
保存了上述两个文件后,打开程序,在“文件”菜单中选择“词典编译器”命令。
点击“定义文件”右边的“加载”按钮,选择之前保存的“示例1.xml”文件。
选择了定义文件之后,在“输出位置”处将显示将要生成的词典数据库的位置(默认位置为程序安装目录下的“database”文件夹。
输出位置中的输出文件名默认为配置文件根元素的“title”属性值。
点击“编译”按钮,程序将按编译配置文件的配置读取源数据文件并生成词典数据库。结果如下图所示。
测试词典
完成编译后,程序将自动挂接刚刚生成的词典。在词典的管理界面可以看到增加了新的词典,名称为“示例1”,如下图所示。
双击词典的名称,可以查看其摘要信息,如下图所示。
关闭词典信息和词典对话框,在词典检索界面输入“一鼓作气”,可得到如下检索结果。
再输入“一”,可得到如下检索结果。
恭喜你,第一个词典数据库编译成功了!