基于VFP+Word的多文本古籍索引编制实验
黄建年
南京财经大学图书馆 南京 210046
摘要

利用VFP与Word编制软件是实现多文本古籍索引的一种较好的选择。通过古籍分词程序实现索引款目词的选择;调用Word的索引词自动标志功能,实现自动标引,产生单一文档的索引文档;通过VFP实现各个不同古籍文本索引的合并与整合,调用Word的编辑、排版功能实现多古籍文本的拼音、笔画以及四角号码索引的输出。

关键词: 古籍索引; 索引自动化; 索引软件
中图分类号:Z89
An Experiment of Editing Multi-text Chinese Ancient Books Indexes Based on VFP and Word
Huang Jiannian
Library of Nanjing University of Finance & Economics, Nanjing 210046, China
Abstract

Indexing system based on VFP and Word is a better choice to get editing indexes of multi-text Chinese ancient books. Firstly, the experiment develops the program of word segmentation to select the items of an index. Secondly, it calls the auto- marking function in Word to bring about automatic marking the items of an index and save as an index of an ancient books text. Thirdly, it uses the VFP to realize combination and integration of various indexes of ancient books. Finally, the author makes use of the function of editing and type setting in Word to achieve exporting the Pinyin, stroke and corner index of multi-text Chinese ancient books.

Keyword: Indexes of Chinese ancient books Indexes automation; Indexing system
1 引 言

我国是历史悠久的文明大国,古籍资源十分丰富,数量庞大,它们是我国文化遗产的重要组成部分,史学价值极高,因此加强古籍的整理对于传统文化的保存和研究具有深远的影响。以古籍为检索范围的古籍索引,属于古籍整理与研究的重要部分,不仅有助于提高古籍的利用效率并发现古籍自身存在的问题,同时有助于吸收前人的研究成果和完善古籍整理图书的学术质量。总之,加强古籍索引编制的研究具有重要的意义[ 1]

黄丽霞等[ 2]尝试利用Word编制工具书索引。 随后王照伦、何建新等[ 3, 4]分别探讨了利用了Word 97来编制索引的技术与方法。 丁秋波[ 5]将Word 97应用于年鉴索引排序,取得较好的效果。李彩、丁海英、段丽敏等[ 6, 7, 8, 9]专门研究了利用Word编制专题索引的方法与技术 。徐恒玉等[ 10]重点介绍了基于Word编制目录与索引的方法,但有关索引编制的论述相对较为简略。

钱建兴等[ 11]研究了数据库技术在索引编制中的应用,关注数据库与索引编制之间的关系。胡建平[ 12]则更进一步探讨了VFP的OLE技术及控制Word的有关方法,虽然不是专门研究索引编制问题,但提供了相关的思路与可能。刘敬学等[ 13] 介绍了一种实现VFP与Word动态数据交换的简便方法。孙琳[ 14]比较了索引之星与Word索引软件之间的差异。黄建年等[ 15]则研究了古籍索引编制技术要点。这些研究成果采用的方法与结论为本课题的展开积累了可靠的经验。

2 多文本古籍索引编制需求及技术思路
2.1 技术需求

探讨多文本古籍索引编制的研究仍然为数不多,本研究旨在探讨多文本古籍索引的编制技术与方法。目前已经有学者日益关注古籍索引研究,但前述相关研究中均没有提及多文本古籍索引中Word的作用与应用方法,本文将着重加以说明。同时,本研究采用原始的多文本古籍为处理语料,目的在于使结果具有更高的可信度。

Word 2003在索引编制方面有很好的表现,但在多文本索引编辑方面则存在不足。关于多文本索引处理,Word 2003提供了RD命令,但用户界面并不友好,最主要的缺点是同时打开并处理多个待处理的文档效果较差,容易导致运行中断。因此,笔者试图通过编程方法解决这一难题。

目前VFP最新的版本是9.0,而Word最通用的版本为2003,经过认真考虑,选择VFP9+Word 2003的多文本古籍索引编制模式。

2.2 技术思路

经过研究与探索,对多文本农业古籍文本编制索引采用的技术思路如下:

(1)利用VFP编制分词程序,实现索引词的选取。古籍的分词较现代汉语的分词不仅难度大,而且分词方式上也存在较大差异。文献[16]介绍了利用切分标志分词、基于词典分词以及N元语法分词的综合分词法。因其效果较好,所以本实验中仍然采用这一方法。

(2)在程序中调用Word的索引词自动标志功能,实现自动标引,产生单一文档的索引文档。

(3)利用VFP实现各个不同文档索引的合并与整合。

(4)在程序中调用Word实现最终索引的排版、输出与打印。

3 多文本古籍索引编制流程设计

考虑到本文处理的对象为多个古籍文本,而非单一文本。所以,其索引处理的步骤与单一文本存在较大差异,基本流程如图1所示:

图1 多文本古籍索引编制流程

具体如下:

(1)打开待处理的古籍文本;

(2)利用切分标志分词、基于词典分词以及N元语法分词的综合分词法对文本进行分词处理,选取可能的标引词汇,建立标引词库;

(3)利用异名别称模式,识别出可能存在参照关系的词汇,建立参照词汇库;

(4)利用Word的索引词自动标引功能,打开标引词库与参照词库,对古籍原始文本添加标引标记,以实现对原始古籍文本的自动标引;

(5)根据步骤(4)的结果,生成每个古籍文本的索引文档,并将索引文档转换成普通的文本形式; (6)将文本格式的索引文档导入VFP数据库中,从而实现各个不同文档索引的合并与整合;

(7)利用Word实现最终索引的排版与输出、打印功能。

如果为多个文本,则可以分别处理待处理文档集合中的各个文件,重复步骤(1)-(5),直到所有文档处理完成,然后运行步骤(6)-(7),将各个古籍文本的索引结果进行汇总与合并,从而实现多个文件的索引编制与输出。

本文采用的多文件处理目录方式,可以一次实现同一目录下多个文件的索引处理与词汇识别,对于大量古籍文本索引的编制具有较高的实用性。

上述流程中,步骤(4)、(5)、(7)为程序调用Word自动完成,步骤(1)-(3)、(6)则由VFP来完成,具体情况已经在图1中标明。

4 多文本古籍索引主要功能实现

本程序主界面包括文档选择、索引款目生成、参照生成、输出索引等几个主要功能,如图2所示:

图2 多文本古籍索引编制主界面

4.1 VFP对Word功能的调用

VFP是面向对象的编程语言,提供了各种对象的操作方法。本程序中涉及到Word的语言有:

WOLE=CREATEOBJECT(′word.application′)

当运行此代码时,启动 Microsoft Word (如果还没有运行),并创建一个新的文档。然后通过对这个对象的控制,可以实现对Word的各种功能的调用。例如:

IndexDoc=wole.Documents.Add(,,wdNewBlankDocument,)//新建空白Word文档

IndexDoc.Activate &&//激活新建空白Word文档

4.2 待标引词的选择

本系统采用综合分词法进行抽词处理。通过自行构建的虚词词典库、异名别称模式库等切分标志进行初步断词;利用小型分词词典(具体内容见表1),采用正向最大匹配的机械匹配法,进行初步抽词;对分词碎片以N元语法进行分词;再结合人工判断提高分词的正确性。因为文献[16]中对该分词方法已经作了较为详细的介绍,并说明了各种数据的来源,考虑到篇幅限制,此处不再叙述。

表1 分词词典及收录词汇数量表中数据根据文献[16]进行整理而成,特此说明。

通过分词程序的处理,最终将分词的结果存入一个临时Word文档,即后文中提及的BYC.doc。

4.3 索引项自动标引

Word通过在文档中添加一个隐藏文字格式的XE(索引项)域来表示所选择的词语为索引款目词。处理单一文本,少量的索引款目词可以通过人工标引的方式来进行,但同时处理大量文本,人工标引显然不太现实。本文采用了自动标引的方法来实现这一目的。自动标引的核心语句如下:

file_to_index.Indexes.AutoMarkEntries("待标引词文档BYC.DOC")

4.4 单一文本索引生成

根据已经完成自动标引的原始文档,自动生成单一古籍文本的索引,是Word的一项特别功能。本实验基于VFP和Word,不通过人工干预,自动生成索引。其核心代码如下:

IndexDoc.Indexes.Add(IndexDoc_loc,wdHeadingSeparatorNone,wdIndexIndent,.F.,′1′,wdIndexSortByStroke,wdSimplifiedChinese)

4.5 索引排版、输出

在Word 2003中,只提供了拼音与笔画索引的方法,没有提供四角号码等索引方法。王永华[ 17]探讨了VFP在古籍书目四角号码索引编制中的应用,提出了利用《辞源》编写四角号码表的建议,但因为程序处理的对象是单一索引,且采用的是人工逐字标注四角号码的方法,实际并没有完成这一任务。徐孟罗[ 18]编辑了四角号码表,共支持27 585个汉字,基本满足了古籍文本处理的需要。但此成果中一个号码与多个文字相对应,为了满足索引编制的需要,本文利用这一成果,编写了逐字对应的四角号码对照表,使得四角号码索引生成有所依据。

5 多文本古籍索引编制效果分析
5.1 测试数据来源

在古籍研究中,可以利用的资料来源很多,但是使用最多的数据主要为一般古籍与方志两类数据。考虑到方志包含多方面的知识,本系统采用如下4种方志的物产资料作为实验语料进行测试:

(1)《清光绪5年广州府志·物产》

(2)《清道光15年南海县志·物产》

(3)《清光绪9年九江儒林乡志·物产》

(4)《民国19年龙山乡志·物产》

上述4种方志中,一种府志,一种县志,两种乡志。所有语料均进行了简繁转化处理。

5.2 测试结果

本实验达到了预期目标,所编写的程序只要具备Word环境即可以正常运行。

(1)支持Unicode编码规范。Visual FoxPro 9.0为2007年微软公司的产品,具有可视化编程功能,其设计思路与方法均很相似。从7.0版本开始提供的STRCONV() 函数功能大大增强,特别提供Unicode编码、UTF-8编码、Base64 二进制编码、hexBinary编码等各种编码的相互转换处理。通过这个函数,可以轻易地实现对古籍文本所用的大字符集的处理。

(2)程序辅助生成待标引词。通过词典分词获取词汇209个, N元语法分词并经人工选择获得新词513个。具体如表2所示:

表2 分词方法及词汇数量

(3)能够输出标准拼音、笔画与四角号码的综合性索引。程序输出的四角号码索引界面如图3所示:

图3 四角号码索引输出界面

(4)能够一次处理多个古籍文本。在本实验中,笔者利用此程序一次处理了4种古籍文本,并成功输出所需的索引,说明本程序具有较高的可操作性。

(5)制作了专门的安装程序,减轻了用户安装的负担。

6 结 语

本程序主要作用是在VFP与Word间架设数据交互的管道,以完成多文本古籍的索引。正是基于此种考虑,本实验中程序功能的实用化仍然有待加强。具体表现在以下几个方面:

(1)多文本的选择。本实验中文档的选择采用了单一目录下所有文档全部选择的方法,而在实际工作中用户的文档并不一定位于同一目录下,也不一定要完成同一目录下的所有文件,基于人性化、图形化要求,程序需要继续完善。

(2)目前只提供标准拼音、笔画与四角号码三种索引的输出,为了适应不同的用户群体,还应该提供更多的选择,比如南方拼音等各种索引形式。

(3)近几年国外对中国古籍的研究已逐步深入,已有大量的词汇有相应的外文翻译,建议在以后的程序中增加相应的中外词汇对照表,或者编制古籍中外不同版本的对照索引,以方便文化传播与学术研究。

(4)本实验主要测试了综合性索引,对于各种专门的索引,比如人名索引、地名索引、事件索引等尚未研究。而这主要在于对分词结果的细化,根据不同类型词汇的形式特征分别构建不同类型词汇的数据库,从而实现古籍文本多种索引的智能化编辑与出版。

The authors have declared that no competing interests exist.

作者已声明无竞争性利益关系。

参考文献
[1] 许逸民. 古籍索引释例(上、下全)[EB/OL]. [2011-08-06]. http://zxy6223.blog.163.com/blog/static/461144852007111585152149/. [本文引用:1]
[2] 黄丽霞, 于纯良. 如何用Word编制工具书索引[J]. 图书馆建设, 1999(2): 53-54. [本文引用:1]
[3] 王照伦. 谈用Word97编索引[J]. 年鉴信息与研究, 2000(4): 53-54. [本文引用:1]
[4] 何建新. 利用Word自动生成索引[J]. 电脑知识与技术, 2000(2): 21. [本文引用:1]
[5] 何建新. 利用Word97自动生成索引的技巧[J]. 电脑, 2000(1): 56. [本文引用:1]
[6] 丁秋波. 准确便捷的索引排序法——Word 97在年鉴索引排序中的运用[J]. 年鉴信息与研究, 2002(2): 49-50. [本文引用:1]
[7] 李彩, 邹玲莹, 王晴, . 利用Word编制主题索引的一种简便方法[J]. 编辑学报, 2002, 14(5): 372-373. [本文引用:1]
[8] 丁海英. 用Word软件编制小型专题索引[J]. 图书馆理论与实践, 2002(4): 86-87. [本文引用:1]
[9] 段丽敏. 用Word2000编制小型专题索引[J]. 内蒙古图书馆工作, 2004(2): 36-37. [本文引用:1]
[10] 徐恒玉, 刘蕴. 巧用Word 2000编制索引和目录[J]. 农业网络信息, 2006(8): 113-114. [本文引用:1]
[11] 钱建兴, 施建群. 数据库技术在索引编制中的应用[J]. 中国索引, 2004, 2(2): 15-19. [本文引用:1]
[12] 胡建平. VFP的OLE技术及控制Word的有关运用[J]. 连云港师范高等专科学校学报, 2004(4): 82-83. [本文引用:1]
[13] 刘敬学, 费奇. 一种实现VFP与Word动态数据交换的简便方法[J]. 计算机工程, 2005, 31(11): 198-199. [本文引用:1]
[14] 孙琳. 索引之星与Word索引软件的比较[J]. 中国索引, 2006, 4(4): 6-11. [本文引用:1]
[15] 黄建年, 侯汉清. 基于GB/T22466—2008的古籍索引编制技术要点[J]. 图书馆建设, 2011(6): 45-48. [本文引用:1]
[16] 黄建年, 侯汉清. 中国古籍文本分词的一次试验[J]. 情报学报, 2011, 30(6): 618-625. [本文引用:1]
[17] 王永华. Visual FoxPro在古籍书目四角号码索引编制中的应用[J]. 河南图书馆学刊, 2006(4): 105-107. [本文引用:1]
[18] 徐孟罗. 四角号码表[EB/OL]. [2011-08-21]. http://ishare.iask.sina.com.cn/f/9638695.html?from=dl. [本文引用:1]