循序漸進制作我的詞典數據庫(一)


期待已久的詞典編譯器終於發布了。從今天開始,我將逐步向大家介紹如何制作詞典數據庫。

制作詞典數據庫至少要有兩個文件:第一個是編譯器所用的配置文件;第二個是詞典的文本內容,即源數據文件。編譯器的配置文件用於告訴程序如何將詞典的文本內容編譯 成詞典數據庫,配置文件是 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”,如下圖所示。

新增的“示例1”詞典

雙擊詞典的名稱,可以查看其摘要信息,如下圖所示。

編譯后生成的示例詞典信息

關閉詞典信息和詞典對話框,在詞典檢索界面輸入“一鼓作氣”,可得到如下檢索結果。

再輸入“一”,可得到如下檢索結果。

恭喜你,第一個詞典數據庫編譯成功了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM