汉语转拼音Pinyin

利用汉语转拼音可以采用内码和拼音的对应关系进行转码,例: 汉字→机内码→简体中文GB→unicode码 我 →CED2 →52946 →25105 爱 →B0AE →45230 →29233 楼 →C2A5 →49829 →27004 主 →D6F7 →55031 →20027 , →A3AC →41900 →65292 因 →D2F2 →54002 →22240 为 →CEAA →52906 →20026 楼 →C2A5 →49829 →27004 主 →D6F7 →55031 →20027 就 →BECD … 继续阅读

QA中文查询词纠错初级模型框架

一:中文查询词纠错框架 中文处理的难点: 1, 字符有8W左右; 2, 词汇有6W左右; 3,一词多义; 4,书写不分词; 5,发音与字形(同音词,形近词) 对于初级模型来说可以把输入的字符和数据库中的现有实体名词进行字符串匹配. 如果匹配的上就直接采用用户输入查询词, 如果没有匹配上就需要进行纠错处理. 模型的建立可基于拼音,基于编辑距离,基于N-gram模型,基于统计等. 中文纠错有多种原因, 我们先仅考虑键盘录入错误. 中文查询词纠错的目的主要是推测用户输入, 确定查询信息, 给出纠错意见. 中文查询信息有两大特点: 1. 不包含错字; 2. 错误信息最多的是同音别字错误. 例: 要命-姚明. 这是由于输入法日益流行导致的. 因为拼音输入法学习成本低,思维干扰的最少,普及广,所以出现了大量的同音词错误,而多字漏字的情况多是由于不小心的输入造成的。根据这种错误的特点,设计中文查询词纠错模块使用基于拼音hash词典的纠错算法,和多字驱动词典+字符串匹配的纠错算法,利用前者处理包含同音别字的查询信息,利用后者处理包含多字漏字的查询信息。纠错模块结构如下: 二:同音别字查询词纠错 2.1 对于同音别字查询,首先第一要做的是把输入的字符串转换为拼音 Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 Pinyin 4j介绍:有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用 的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字的拼音 “caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译成“caomengde”呢?很简单的办法就是建立一个大的对照表(比如用关联容器 Map),比如<”曹”,”cao”>,<” 孟”,”meng”>,<” 德”,”de”>…但这样的做法,需要维护好一个比较大的对照表,同时一个汉字可能有多个发音,也就是说Map这样的容器时不行的,因为 其<key,value>必须是一一对应的。在C++中可以用STL里面的multimap来解决这个问题,但Java中没有类似 multimap这样的东西,除非自己实现一个。 … 继续阅读