国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

工具書款目索引自動排序程序設(shè)計(jì)
——以GB18030-2005語境下人名索引為例

2021-03-19 11:00:04朱玉強(qiáng)范翠麗
圖書館論壇 2021年3期
關(guān)鍵詞:字庫工具書筆順

朱玉強(qiáng),范翠麗,何 珂

工具書是指根據(jù)一定查閱需要,系統(tǒng)匯集相關(guān)知識,按易于檢索的方法編排的信息密集型圖書。為便于用戶使用,工具書以款目索引為主的辭條目錄必不可少。款目一般由標(biāo)目項(xiàng)和指引(地址)項(xiàng)組成[1]。辭條少則幾百,多則上萬、幾十萬甚至更多,如2009年出版的32卷《中國大百科全書》辭條有6萬條[2],2014年出版的《不列顛百科全書》(DVD版)辭條有6,672萬之多[3]。辭條越多,則為之組織并排序款目索引、編制目錄工作量越大。本文以人名為標(biāo)目的款目索引自動排序?yàn)槔幹瞥绦颍纱蟠鬁p輕工具書編撰人員、出版社編輯人員的工作負(fù)荷。

1 相關(guān)研究與實(shí)踐

《GB18030-2005信息技術(shù) 中文編碼字符集》是GB/T 2311體系編碼字符標(biāo)準(zhǔn),2006年5月1日起實(shí)施,規(guī)定了信息技術(shù)用中文圖形字符及其二進(jìn)制編碼的十六進(jìn)制表示,用于圖形字符信息處理、交換、存儲、顯現(xiàn)等,共收入漢字70,244個(gè)。該標(biāo)準(zhǔn)向下與《GB2312-1980信息交換用漢字編碼字符集 基本集》所對應(yīng)內(nèi)碼兼容,在字匯上支持《GB18030-2000 信息技術(shù) 信息交換用漢字編碼字符集基本集的擴(kuò)充》的全部中、日、韓(CJK)統(tǒng)一漢字(包括CJK統(tǒng)一漢字?jǐn)U充A、CJK統(tǒng)一漢字?jǐn)U充B)字符和我國部分少數(shù)民族文字的字符,是我國制訂的以漢字為主的超大型中文編碼字符集強(qiáng)制性標(biāo)準(zhǔn)[4]。工具書中人物傳記資料、地方志等不乏繁體字或異體字,2006年5月后出版的此類工具書基本遵循此標(biāo)準(zhǔn)。印刷型工具書常用排檢方法如表1所示。

表1 印刷型工具書常用排檢方法[5]

1960年代后,法國、英國、德國等開展詞典編纂自動化研究[6]。1980年代后,漢字存儲、輸入技術(shù)取得重大突破,漢語詞典編纂工作局部引入計(jì)算機(jī)技術(shù),1990年代開始普遍應(yīng)用,重點(diǎn)研究語料庫資源技術(shù)與利用。北京大學(xué)計(jì)算語言學(xué)研究所開發(fā)“計(jì)算機(jī)輔助詞典開發(fā)和管理系統(tǒng)”,用于詞典檢索、編輯,可以多種方式對詞典進(jìn)行排序[7]。中國社會科學(xué)院語言研究所詞典室開發(fā)“漢語詞典編輯系統(tǒng)”,包括編輯、排序、檢索等模塊[8]。北京語言大學(xué)語言信息處理研究所開發(fā)了“漢語語料檢索軟件”,具有自動分詞、自動建立索引等特點(diǎn)[9]。在南京理工大學(xué)辭書數(shù)據(jù)庫排版系統(tǒng)可以對漢字詞組按不同原則實(shí)現(xiàn)不同排序[10],但未能查到細(xì)節(jié)。中國農(nóng)業(yè)科學(xué)院科技文獻(xiàn)信息中心《中國農(nóng)林文獻(xiàn)數(shù)據(jù)庫》課題組研制一款SKD數(shù)控主題索引款目軟件,可自動生成主題索引款目、隨機(jī)附加非機(jī)檢用款目說明語[11]。王懷惠基于Micro CDS/ISIS 軟件和“科印”排版軟件開發(fā)程序自動形成主題索引款目,實(shí)現(xiàn)刊物索引編輯出版計(jì)算機(jī)化[12]。黃維佳等概括了醫(yī)藥類工具書索引現(xiàn)狀及產(chǎn)生原因,對此類工具書按用途不同設(shè)想了不同索引路徑[13]。劉翔以筆畫、拼音兩種索引方式探討了工具書單字索引表自動生成方法[14],未涉及更復(fù)雜的詞組排序。黃水清使用C語言編制程序,對雙行格式的漢字索引款目按拼音自動排序,適用于圖書情報(bào)部門主題款目自動排序[15]。黃麗霞等探討了使用Word編制工具書索引方法,提到Word在音序索引方面表現(xiàn)出色,但按筆畫索引多處需要手工干預(yù),效果不甚理想[16]。工具書排檢方法多樣性導(dǎo)致對款目索引排序中不論手工排序還是計(jì)算機(jī)自動排序都存在不同程度困難,杜翔選取了同按音序編排的《新華字典》和《現(xiàn)代漢語詞典》進(jìn)行考察論述了辭條索引排序難點(diǎn)[17]。筆者調(diào)研了包括國家圖書館出版社、山東科學(xué)技術(shù)出版社等在內(nèi)的13位現(xiàn)從事工具書或電子音像出版具體實(shí)務(wù)的編輯,結(jié)果表明國內(nèi)采用方正飛騰、InDesign、CorelDRAW、Publisher、FrameMaker等大型商業(yè)軟件排版居多,但這些軟件在辭條款目索引排序方面仍不能很好地滿足不同出版需求,特別是對繁體或異體中文字支持不夠友好,排序時(shí)往往借助Word、Excel現(xiàn)有功能,通過分步轉(zhuǎn)換或編制宏代碼實(shí)現(xiàn),過程復(fù)雜,出錯(cuò)率高,亂碼時(shí)有發(fā)生。本文以人名索引自動排序?yàn)槔接懢哂泄残缘淖謳靹?chuàng)建、組合參數(shù)進(jìn)行款目索引排序的方法,功能確切,擴(kuò)展性較好,期望得以拋磚引玉。

2 程序設(shè)計(jì)思路及實(shí)施方案

2.1 術(shù)語定義及系統(tǒng)功能架構(gòu)

為便于表述,將文中使用的術(shù)語定義制作成表2。系統(tǒng)總體目標(biāo)為,將介于十萬至百萬數(shù)量級人名索引類辭書款目按人名碼、路徑排序,自動生成印刷版所需的統(tǒng)一質(zhì)量的目錄。對于不同編撰人員產(chǎn)生的相同款目,合并去重;對同一人名不同路徑合并且以路徑升序排序。

表2 本文術(shù)語定義

2.2 系統(tǒng)模塊

系統(tǒng)由建庫機(jī)器人、字庫、排序機(jī)器人3層結(jié)構(gòu)組成,如圖1所示。建庫機(jī)器人負(fù)責(zé)字庫創(chuàng)建、新增、查詢及修改、刪除等。字庫每條記錄存儲人名單字元數(shù)據(jù),如“張”字記錄有“筆畫碼”“筆順碼”“特征碼”“拼音”“聲調(diào)”等字段,分別對應(yīng)“11”“51512111534”“001”“zhang”“1”等數(shù)據(jù)。排序機(jī)器人負(fù)責(zé)由作業(yè)抽取款目,分解其中漢字(人名)與非漢字部分(路徑),檢索字庫,將漢字映射為人名碼并分組、排序。

圖1 系統(tǒng)模塊

2.3 技術(shù)方案

主要流程如圖2所示。采用“按需建庫”原則,建庫機(jī)器人從作業(yè)抽提人名單字,先檢索本地字庫是否有此記錄,如沒有則提交給字典類網(wǎng)站檢索該字,使用網(wǎng)絡(luò)爬蟲技術(shù)收割筆畫碼、筆順碼等元數(shù)據(jù),追加至字庫。為保證排序工作連貫性,便利作業(yè),待建庫完成再移交任務(wù)給排序機(jī)器人。排序機(jī)器人格式化作業(yè),抽提并數(shù)碼化人名漢字執(zhí)行排序,同時(shí)關(guān)聯(lián)路徑并升序排列。

圖2 技術(shù)方案

3 關(guān)鍵方法與技術(shù)

3.1 建立字庫

建立數(shù)據(jù)表各字段后,可按《GB18030-2005信息技術(shù) 中文編碼字符集》和《現(xiàn)代漢語通用字筆順規(guī)范》[18]手工輸入漢字及其元數(shù)據(jù),但其工程量較大,質(zhì)量亦無法統(tǒng)一。有第三方接口開放API可獲取指定漢字Json格式元數(shù)據(jù)[19],但此類接口一般不免費(fèi)提供,且數(shù)據(jù)質(zhì)量參差不齊。為節(jié)約成本,統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),在作業(yè)漢字人名量不大前提下,本文采用“按需建庫”原則,取作業(yè)人名部分,各單字分別送至http://tool.httpcn.com執(zhí)行檢索,使用網(wǎng)絡(luò)爬蟲技術(shù)收割結(jié)果中筆畫碼、筆順碼等數(shù)據(jù),寫入數(shù)據(jù)庫。

從數(shù)字、符號和漢字混排的文本中抽提漢字時(shí),以判斷是否GBK漢字為例,算法描述如下:

3.2 分組及組內(nèi)排序

分類筆畫組和起筆組時(shí),取人名首字,由排序機(jī)器人從字庫中取對應(yīng)筆畫碼及首筆數(shù)碼,歸類即可。組內(nèi)排序時(shí),常規(guī)思路先做出兩段人名排序算法,進(jìn)而擴(kuò)展至全體。以排序“張五豐06·25;13·154”和“張九03·45”為例,暫去路徑,從字庫分別取“張五豐”“張九”筆畫碼、筆順碼,變?yōu)榕判颉?151512111534041251041112”和“11515121115340235”。很明顯前者大于后者,“張九”排在“張五豐”后。

此算法擴(kuò)展至全體作業(yè)時(shí)落入“冒泡法排序”窠臼,時(shí)間復(fù)雜度為O(n2),效率低,且人名碼長度不同易導(dǎo)致錯(cuò)誤產(chǎn)生。實(shí)踐中采用“補(bǔ)碼”法,修正每個(gè)人名碼長度相等。按作業(yè)實(shí)際需求,每個(gè)漢字,將筆畫碼、筆順碼和特征碼(參見3.3)加和,尾部補(bǔ)“0”,統(tǒng)一為相同長度(見表3),排序時(shí)既可對齊漢字位,又兼顧特征碼不與漢字混排??墒褂盟俣雀?、時(shí)間復(fù)雜度為O(log2n)的“二分排序法”或時(shí)間復(fù)雜度為O(nlog2n)的“快速排序法”排序。快速排序算法描述如下:

3.3 不同單字具相同數(shù)碼的處理

“士土工”“八入人”“兀尢”“込令”等,字形相似或相差甚遠(yuǎn),但筆順碼完全相同。如排序“張土込”“張士令”“張土入”“張士?!保蚯?字筆畫碼、筆順碼完全相同,再按第3字排序。按上述排序原則,“張土入”“張士?!狈謩e排在第1、2位,“張土込”“張士令”排在第3、4位但無法確定前后順序。不論3、4 位怎樣排,“土士”都發(fā)生了混排,達(dá)不到目的。

要解決此問題,首先考慮附加單字拼音以區(qū)分不同字,實(shí)踐中發(fā)現(xiàn)有些需要保留不同版本的異體字筆畫碼、筆順碼、拼音仍完全相同無法區(qū)分,最終采用附加碼方法解決此問題。建庫時(shí)每當(dāng)取回單字筆順碼,首先檢索字庫中是否已有相同筆順碼但漢字卻不同的情況,如有,則在具有相同筆順碼漢字的筆順碼尾部追加特征碼,如可參考《通用規(guī)范漢字表》[20]順序分別標(biāo)記“士土工”的筆順碼為“121001”“121002”“121003”?!皺M豎撇點(diǎn)折”分別對應(yīng)數(shù)字“12345”,故特征碼中“0”不會被程序誤讀為筆畫。相同筆順產(chǎn)生于折筆時(shí),按《GB13000.1字符集漢字折筆規(guī)范》[21]順序給定特征碼序號,如“乚”先于“ㄋ”。對同筆順繁體或異體字加特征碼時(shí),可隨機(jī)分配唯一確定特征碼,或由工作組集體表決定序,詳見表3。

表3 使用特征碼修正人名碼后排序示例

4 應(yīng)用效果評價(jià)

程序主體使用易語言編寫,過程調(diào)用了Python、AutoHotKey腳本,可穩(wěn)定運(yùn)行于32位和64位Windows7和Windows10操作系統(tǒng),連續(xù)處理20萬行款目,工作狀態(tài)正常。程序運(yùn)行于64位Windows7操作系統(tǒng)界面如圖3所示。

以含127,935條人名索引的某地方志款目索引為作業(yè),獨(dú)立重復(fù)操作3次。在Intel Pentium CPU 2.90GHz、RAM 4.00GB 電腦環(huán)境和字庫按需建設(shè)完畢前提下,預(yù)格式化文本平均耗時(shí)15分32秒,標(biāo)準(zhǔn)差48秒;正式排序平均耗時(shí)42分17秒,標(biāo)準(zhǔn)差75秒。程序可將無法排序的款目自動剪切為日志文件,供后續(xù)再使用程序處理或人工處理,挑出率100%。預(yù)處理文本時(shí),對形式上基本滿足程序入口要求但細(xì)節(jié)尚需調(diào)整的款目(如統(tǒng)一人名與路徑間空格數(shù)、半角字符化、固定路徑間隔字串等),處理失敗時(shí)寫出錯(cuò)誤日志,挑出率100%。預(yù)留“參數(shù)及優(yōu)先級”接口可使用筆畫碼、筆順碼、拼音等參數(shù)中的1個(gè)或多個(gè)自由組配排序規(guī)則,導(dǎo)出不同排序樣式、不同編碼(如GB2312、UTF-8、Big5等)的以排序后的款目索引為主要內(nèi)容的目錄項(xiàng)。對單次排序結(jié)果,采用不放回簡單隨機(jī)抽樣方法每次取200條、連取5次人工復(fù)核,3次獨(dú)立重復(fù)實(shí)驗(yàn)共抽樣3,000條,正確率100%。

圖3 程序主界面

5 結(jié)語

工具書款目索引排序工作,因工作量巨大,手工操作不便,又因排檢方式多樣,自動化處理

時(shí)需兼顧多種邏輯算法。本文基于《GB18030-2005信息技術(shù) 中文編碼字符集》語境和規(guī)范編制程序,近乎全自動對已確定款目索引進(jìn)行排序,大大減輕工具書編撰人員、出版社編輯人員工作負(fù)荷。實(shí)踐表明,程序所建字庫具通用性,可用以開發(fā)其他基于GB18030-2005的應(yīng)用軟件;程序預(yù)留接口可滿足不同排序規(guī)則和目錄導(dǎo)出格式需求,具推廣性。但是,因程序只在小范圍內(nèi)測試使用,界面較簡陋,部分功能尚未窗口化;使用爬蟲建設(shè)字庫時(shí)未采用多線程工作導(dǎo)致速度很慢;排序采用更穩(wěn)定的多進(jìn)程工作替代容易阻塞的多線程工作時(shí)作業(yè)分配不盡合理,這些都尚待完善。

猜你喜歡
字庫工具書筆順
No.2 喜茶聯(lián)合漢儀字庫推出微型書和書簽
詩詞工具書二種
中華詩詞(2019年2期)2019-11-15 08:27:56
詩詞工具書二種
中華詩詞(2019年1期)2019-08-23 08:24:20
筆順游戲:用手指描畫
孩子(2019年7期)2019-07-29 05:37:20
課本內(nèi)外
最易寫錯(cuò)筆順的字
某型號產(chǎn)品的字庫遷移優(yōu)化設(shè)計(jì)
電子世界(2018年7期)2018-04-26 08:51:35
好風(fēng)憑借力伴我泛書海
——小學(xué)語文閱讀教學(xué)中使用工具書的指導(dǎo)
相同字庫條件下激光打印文件特征的變化規(guī)律和特點(diǎn)
改變筆順
延川县| 云霄县| 定西市| 通州市| 平罗县| 高密市| 金山区| 甘孜县| 汪清县| 息烽县| 南通市| 南漳县| 翼城县| 木兰县| 沂南县| 东方市| 县级市| 甘谷县| 天水市| 西吉县| 仁布县| 德庆县| 睢宁县| 博客| 绥阳县| 宿松县| 本溪| 湘阴县| 洪泽县| 兴海县| 五河县| 太谷县| 凤山市| 齐齐哈尔市| 鄄城县| 克拉玛依市| 丰城市| 云龙县| 客服| 墨竹工卡县| 阜新市|