发明内容
本发明旨在提供对大文本中术语自动翻译的方法,以解决上述现有技术中匹配的时间耗费大、速度慢的问题。
本发明公开了一种对文本中术语自动翻译的方法,包括:
提取文本中不重复的语素,并记录每个语素在所述文本中出现的位置;
在多种语言的术语库中匹配所述提取的语素,将匹配成功的语素或语素的组合标注为术语;
在所述术语库中找到相应的术语,按照预先确定的翻译方向,找到并显示该术语的目标语言。
优选地,还包括:
按照所述预先确定的翻译方向,确定作为源语言的所述提取的语素的语种;
将所述术语库中的术语,按照所述确定的语种的字符顺序排序。
优选地,还包括:
根据所述提取的语素、及其出现的位置建立一个索引表;
该表中包括:所述提取的语素、语素所属的文本编号和语素在每篇文本中出现的位置。
优选地,还包括:
按照所述索引表中的语素的顺序,采用二分法与所述术语库中的术语执行所述匹配操作。
优选地,所述在多种语言的术语库中匹配所述提取的语素的过程包括:
将所述索引表中的每个语素与所述术语库中的每个术语的首个语素进行字符串模式匹配,将匹配成功的语素定义为疑是术语字头。
优选地,还包括:
判断所述术语库中与所述疑是术语字头的匹配成功的术语的长度;
术语的长度为一个语素,将该疑是术语字头标注为术语,并显示该术语的目标语言;
术语的长度大于一个语素,进行二次匹配,将匹配成功的语素组合标注为术语,并显示该术语的目标语言。
优选地,所述二次匹配的过程包括:
计算术语的长度,设定该术语的长度为TermLen[],且TermLen[]为大于1的整数;
根据所述索引表,取与该术语匹配成功的疑是术语字头在相应文本中各个位置的后TermLen[]-1个语素,分别于所述术语中的后TermLen[]-1个语素进行逐个匹配;
匹配成功的,将从该疑是术语字头至其后第TermLen[]-1个语素的所有语素的组合标注为术语,并显示该术语的目标语言。
本发明中的对大文本中术语自动翻译的方法,具有以下优点:
1、采用一种反向思路,以文本集合中的语素为模式串在术语库中进行字符串匹配,极大的减少了相同字符重复进行匹配的次数,同时由于术语库是个有序空间,在其中使用二分法进行查询匹配可以大量减少查询操作;
2、通过对文本集合的所有语素建立一个索引表,文本集合中的同一个语素在术语库中只进行一次搜索匹配操作,节省了大量重复的字符串模式匹配操作;
3、通过索引表,可以查找到在文本集合中的每个语素的位置信息,及字与字的位置关系,可以方便实现术语库中术语的每个语素和文本集合中的相关语素的匹配,而不用将术语和文本集合中不相关的语素进行匹配操作。
4、本方法特别适用于大文本或文本集合的术语查找、标注和翻译,文本的容量越大本方法的效率值越高,与多语术语库相结合,可以显著的提高辅助翻译效率。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
待译文本中的字根据其语种的不同,可以分为有字形结构的字或字母组成的单词;为了方便表述以下将一个字或一个单词统称为语素;
同理,术语库中的术语,为一个或多个的单个字或单个单词组成,为了方便表述以下将术语的首字或首单词统称为术语的首个语素,多个语素称为语素组合。
如图1所示,本发明提供了一个实施例,公开了对大文本中术语自动翻译的方法,包括:
S11、提取文本中不重复的语素,并记录每个语素在所述文本中出现的位置;
S12、在多种语言的术语库中匹配所述提取的语素,将匹配成功的语素或语素的组合标注为术语;
S13、在所述术语库中找到相应的术语,按照预先确定的翻译方向,找到并显示该术语的目标语言。
进一步的,在步骤S11前,还包括:
提取文本集合中的每篇文本,并对所述每篇文本按照单个语素进行拆分,对其中相同的语素进行去重处理,得到文本集合中所有不重复的语素;
进一步的,在步骤S12前,还包括:
按照所述预先确定的翻译方向,确定作为源语言的所述提取的语素的语种;
将所述术语库中的术语,按照所述确定的语种的字符顺序排序索引。
进一步的,在多种语言的术语库中匹配所述提取的语素前,还包括:
对所述每篇文本进行编号;
记录每个语素在每篇文本中的位置;
根据所述提取的语素、及其出现的位置建立一个索引表,该表如下:
表中所示,wordID1和wordID2代表着相应的语素,docID(i)、docID(j)和docID(k)、docID(I)分别为wordID1和wordID2所出现的文档,pos1、post2为该语素出现在相应文档中的相应位置。
进一步的,按照所述索引表中的语素的顺序,采用二分法与所述术语库中的术语执行所述匹配操作。
进一步的,所述在多种语言的术语库中匹配所述提取的语素的过程包括:
将所述索引表中的每个语素与所述术语库中的每个术语的首个语素进行字符串模式匹配,将匹配成功的语素定义为疑是术语字头。
进一步的,还包括:
判断所述术语库中与所述疑是术语字头的匹配成功的术语的长度;
术语的长度为一个语素,将该疑是术语字头标注为术语,并显示该术语的目标语言;
术语的长度大于一个语素,进行二次匹配,将匹配成功的语素组合标注为术语,并显示该术语的目标语言。
进一步的,所述二次匹配的过程包括:
计算术语的长度,设定该术语的长度为TermLen[],且TermLen[]为大于1的整数;
根据所述索引表,取与该术语匹配成功的疑是术语字头在相应文本中各个位置的后TermLen[]-1个语素,分别于所述术语中的后TermLen[]-1个语素进行逐个匹配;
匹配成功的,将从该疑是术语字头至其后第TermLen[]-1个语素的所有语素的组合标注为术语,并显示该术语的目标语言。
如图2所示,其中,整体匹配的具体过程如下:
S21、将所述索引表中的所有语素的个数定义为WordNum,设定一个变量i,其中,i为大于0,小于等于WordNum的整数;
S22、将i进行初始化,设定i=WordNum;
S23、取索引表中第i个语素,采用二分法在术语库中与术语的首个语素进行字符串模式匹配;
匹配成功进入步骤S24;
匹配失败,则进入步骤S25;
S24、匹配成功,将该语素定义为疑是术语字头TermHead,并计算与TermHead匹配成功的术语数MatchNum,进入步骤S26;
S25、匹配失败,执行i-1,若i不等于0,返回步骤S23,否则结束匹配;
S26、计算术语库中与相应的TermHead匹配成功的所有术语的长度,将该长度定义为TermLen[];如:TermLen[1],TermLen[2],…,TermLen[MatchNum];
当TermLen[]=1进入步骤S27;
当TermLen[]>1,则进入步骤S28;
其中,“1”表示一个语素。
S27、术语的长度TermLen[]=1,将TermHead标注为术语,并显示该术语的目标语言,执行i-1,若i不等于0,返回步骤S23,否则结束匹配;
S28、术语的长度TermLen[]>1,取该TermHead在相应文本中各个位置的后TermLen[]-1个语素,分别与术语的后TermLen[]-1个语素进行逐个匹配,匹配成功将该疑是术语字头与其相应文本中的后TermLen[]-1个语素的组合标注为术语,并显示该术语的目标语言,执行i-1,若i不等于0,返回步骤S23,否则结束匹配;
其中,如图3所示,步骤S28具体为,对所有TermLen[]大于1的术语执行如下过程:
S2801、取所有TermLen[]大于1的术语中的一个术语;
S2802、定义一个变量N,且N为满足0<N<TermLen[]的整数,并对N赋值1;
S2803、将TermHead在相应文本中的各个位置后的第N个语素与该术语中第N+1个语素进行匹配;
匹配成功,进入步骤S2804;
匹配失败,进入步骤S2807。
S2804、匹配成功的,判定该术语长度TermLen[]-1是否等于N;
TermLen[]-1等于N,进入步骤S2805;
TermLen[]–1不等于N,进入步骤S2806;
S2805、将该TermHead至相应文本中其后匹配成功的后N个语素的组合标注为术语,并显示该术语的目标语言,进入步骤2807;
S2806、执行N+1操作,返回步骤S2803;
S2807、若所有TermLen[]大于1的术语都匹配完毕,执行i-1操作,并返回步骤S23;
否则,返回步骤S2801,换下个TermLen[]大于1的术语进行匹配。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。