文/赵建平 陈建新 穆杰 李永虎
因为对新技术的一知半解,无形中强化了屏幕取词的难度,很多人对屏幕取词和翻译技术望而却步。但是随着互联网信息技术的发展普及,各种藏文网站、软件产品和网页等不断涌现,在网络信息的获取中,我们随时随地都会浏览搜索到各种各样的藏文网络资源,在应用这些资源时,很可能遇到一些生僻的藏文词语,因此藏文屏幕取词和翻译技术已成为近些年软件开发的热门项目。目前日臻成熟的中英文屏幕取词和翻译技术已经在生活中逐渐普及,给我们的生活带来了实质性的帮助,以此为鉴开发藏文屏幕取词和翻译软件技术,能优化用户的阅读效率,促进文化的发展与传播。
屏幕取词与翻译是基于Windows系统,而Windows的所有应用程序都是通过应用程序编程接口进行系统功能调用的,屏幕取词相关的字符显示程序也不例外。在Windows系统中,能通过Win32子系统中的gdi32.dll来截取系统对四个API函数的调用以进行屏幕取词。所以,要实现屏幕取词必须要注重两个方面,其一是要截获某个系统对Text等API函数的调用,通过自定义函数对目标函数进行内部调用,并将目标函数的结果作为自定义函数结果返还给目标进程。其二是需要分析截获函数的入口参数等,得到要截取的词。一般来说,为了截获到目标函数,Win32操作系统都会保留2-4GB的地址空间由Win32的所有进程共享。
截获系统要对API函数进行调用有两种方式:
(1)直接改写API函数的内存映像,在其中嵌入汇编代码,使其调用时能调到指定的地址运用以便截获;
(2)改写输入地址表(IAT),通过重新定向API函数的调用来截获信息。总的来说只有打破进程边界,在目标进程中输入需截获的API代码,才能截获API函数调用。
从屏幕取词与翻译的性能来看,其关键技术的核心内容包括两个部分,即藏汉文词典库与藏文分词信息。要对屏幕上选择和截获的词语进行翻译就需要查询多语种词典库,经过查询后的结果就是翻译的最终结果。所以,为了实现多语种、多内容的翻译,词典库的数据必须要包含学科术语、语言种类、语法词汇信息、例句、读音、词性等基本需求,这些信息是否完善直接关系到屏幕取词和翻译系统的适用范围和使用价值。因为是藏文屏幕取词,所以相关词典库至少需要具备藏汉英三种语言,除了基本的词汇表达外,还需要包括特殊词汇、人名地名等相关信息。
在不同的上下文组合中,同一个词汇会有不同的词性和词意,此时即便是通过屏幕截取了词语,也不一定能准确判断词汇的词性词意。为了掌握词汇的组合性与交集性,减少词汇歧义的出现,就需要利用藏文自动分词的方法对捕获截取的文本做分词,以确定目前截取词汇的真实意义。一般来说,藏语词汇由一个或多个音节组成,其词语的序列构成了藏文的句子和语块,但由于藏文格助词的连续特征,如主格、属格、于格通常与前词紧密黏结,因此所有音节在按字预切分之时,还需对黏结词的音节进行预切分。
要完成对目标函数的寻找和修改,从而实现屏幕取词与翻译,就必须依赖于以下两种技术的应用:
Win32进程的私有空间地址只有0-2GB,且所有进程的地址空间都是相对独立的,要实现屏幕取词,就要利用钩子技术打破进程边界,突破空间独立性。钩子技术的本质是Win32系统中用于处理系统消息或者特定程序的函数,它能通过系统调用挂入到系统中。根据消息监管范围的不同,钩子技术能分为线程局部与系统全局钩子两类,线程局部只能监视本进程中的指定线程,全局钩子的监视范围可以扩展到当前系统运行的所有线程,而在藏文屏幕取词中所用到的是系统鼠标钩子。相比其他钩子技术而言,鼠标钩子需要提供一个位于动态链接库中的鼠标钩子回调函数,系统会在安装完成后将这个动态链接库加载到进程的私有空间内,这样在每次移动鼠标的时候,系统就会调动输掉钩子来回调函数,当鼠标停留在屏幕某一处一定时间,就会自动截取鼠标所处位置的藏文。
利用PE文件来截获目标函数是常见的屏幕取词技术之一,其主要内容包括Win32中的EXE和DLL文件。PE文件格式定义了多个数据结构,其应用范围十分广泛,包括文件保存代码、数据、输入输出的函数等相关信息,而利用这些结构也能便于操作PE文件。前文提到截获API函数调用的关键是修改输入地址表,而PE文件中的.idata节就包含了相关的DLL数据及函数信息。利用PE文件修改输入地址表以截获API函数需要涉及进程私有地址空间中的DLL板块,包括NT摄像头、定位输入表等相关内容,通过改变进程中私有空间的目标函数调用,以实现目标函数调用的截获。
综上可知,目前藏文屏幕取词课翻译关键技术已经得到了一定的开发,基于C/S模式的Win32操作系统中藏文屏幕自动取词与翻译的核心技术,能有效实现屏幕文本获取。在Win32操作系统中通过拦截API函数调用来进行屏幕取词,需要充分考虑程序系统的稳定性和兼容性。利用钩子技术和PE格式技术,通过加载动态链接库和修改输入地址等方式,结合藏文自动分词和词典库,在最新的互联平台上进行词典编撰、信息抽取和语料库建设等相关工作,能有效实现藏文资源的屏幕取词与翻译工作,对用户学习和掌握藏文资源的相关内容具有重要的实用价值。