如果建立起汉语的基本句型数据库,设拼音输入、语音输入中有拼音串“zheren de yingyu shuo de bu liuli”,在数据库中找出“zheren*shuo*yingyu/这人说英语”,“yingyu*liuli/英语流利”、“bu*liuli /不流利”等作为参考句型。从多个参考句型中,首先选用最长的“这人说英语”,第2步以其中的“英语”去联想“英语流利”,第3步用“流利”去联想“不流利”,则处理为“这人de英语说得不流利”,最后用语法、词频等方法作补充,应能大幅度提高准确率。
计算机处理语言给出参考句型,就好比绘图中给出模板:要徒手画一个2厘米的等腰三角形是很难的,更别说复杂的图案,如果给出许许多多的大小不一的各种形状模板,利用这些模板可以组合出千变万化的图案,再复杂的图案也可以画得八九不离十。同样,对于一种语言如果给出数百万乃至数千万的基本句型,利用这些基本句型交叉重叠就可能很好地解决音字转换问题。
如果我们说“dayin di bashijiu ye”,设在数据库中找到“打印第*页/dayindi*ye”作为参考句型,分析的处理为“打印第89页”,则有语音操作系统的功能了。
5.音字转换分析
对于汉语来说,三音节、四音节中,“同音多义”的概率越来越少,并且出现大量“有音无义”现象,所以我提出将将单音节词语、双音节词语,按语义搭配组成三、四字乃至五字以上的短语、句型,给出相应的拼音,建立数据库,根据这种数据库进行音字转换,以提高音字转换的正确率。但是对于拼音串“zheren de yingyu shuo de bu liuli”,用质数代换整除筛选,除了在数据库中找出“zheren*shuo*yingyu/这人说英语”、“yingyu*liuli/英语流利”、“bu*liuli /不流利”等参考句型之外,无疑会出现由这10个音节构成的、但不是我们所想要句型,比如“zhe*liyu/这利于”之类。我们会问,这种句型有多少,又如何从中找出我们想要的句型。
理论上,10个音节选3的排列有1000个,按上文分析,汉语中三音节有意义的概率应该小于0.06-0.08,也就是说,小于60-80个。汉语中tian和re可以构成“天热”“热天”,我们加*号标记为“tian*re/天*热”,但多数时候语序是不能调换,且中间不能插入其他词语。音为liyu的词语有“礼遇、利于、鲤鱼、俚语”,yuli词语有“渔利、余沥、余利、狱吏”,而“zheren de yingyu shuo de bu liuli”中yu和li有其他音节,所以“liyu”和“yuli”所有的8个词语均无效,由它们扩展构成的句型如“zhe*liyu/这利于”之类也无效,可以剔除。考虑语序计算,10个音节选3可构成的组合有120个,按上文分析的概率0.06-0.08,则有意义的句型为7-10个。用这些句型可能合成2-3个语句,可以用语法分析、频率确定最优、次优结果供用户选择,也可以通过上下文分析直接确定结果。
汉语中连续2个音节有意义的平均概率约为0.375,就“zheren de yingyu shuo de bu liuli”来说,其中“deying”“debu”“buliu”无意义,而yingyu的词有“英语、赢余、盈余、萦纡、硬玉”5个,liuli的词有“流利、流离、流丽、琉璃”4个。设数据库中没有“zheren*shuo*yingyu/这人说英语”,找到的最长句型是“yingyu”与“liuli”可以互证为“英语流利”,那么“yingyu”“liuli”与其它音节互证为4音节句型的概率有多大?