java输入汉语拼音,输出匹配的汉字!

如果要建库,请帮忙给个简单的例子(A-D各匹配一个就行),菜鸟级别的伤不起啊!高分求教!

  java输入汉语拼音,输出匹配的汉字,不借助客户的选择,匹配完全正确是几乎不可能的,尤其是人名,否则拼音输入法早就演变成无需在输入汉语拼音后还要选字选词的操作方式了。

  这个属于自然语言处理的范畴:NLP,暂时还没有看到过java上的相关应用。
  但是,可以参考一下拼音输入法,这个需求和输入法很相似啊,不过,现在成熟的输入法都不能够完全做到一次性将拼音和汉字匹配成功,这个很有难度,顶多只是匹配,尽量的匹配。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-11
一般都是这样的
ID 中文 拼音 拼音缩写 使用频率
1 视频 shipin sp 100
2 食品 shipin sp 80
3 游戏 youxi yx 151
4 伤不起 shangbuqi sbq 200
后台搜索的时候 中文,拼音,拼音缩写都要搜,只要开始部分符合,就按使用频率排序输出到前台,一般是前10个,每被选择一次,使用频率加1
第2个回答  推荐于2016-01-25
做个简单的 ,希望对你有启示:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Test{
private Map<String,String> map = new HashMap<String, String>();
public Test(){
map.put("a", "啊");
map.put("bu", "不");
map.put("bo", "博");
map.put("chao", "超");
map.put("cha", "查");
map.put("che", "车");
}

public void search(String keyName){
Set<String> keySet = map.keySet();//获取key 的set集合
Iterator<String> it = keySet.iterator();//获取iterator遍历
while(it.hasNext()){
String key = it.next();
if(key.indexOf(keyName)>-1){//开头为
show(key);
}else if(key.indexOf(keyName.substring(0, 1))>-1 && key.contains(keyName.substring(1))){//智能匹配首字母开头,内容包含剩余字母
show(key);
}
}
}
public void show(String keyName){
if(keyName!=null){
System.out.println(keyName+"\t"+map.get(keyName));
}else{
Set<String> keySet = map.keySet();
Iterator<String> it = keySet.iterator();
String key = "";
while(it.hasNext()){
key = it.next();
System.out.println(key+"\t"+map.get(key));
}
}
}
public static void main(String[]args){
Test test = new Test();
String key = "";
Scanner scan = new Scanner(System.in);//获取输入
while(true){//循环
System.out.println("*******************************");
System.out.println("1.显示所有 2.查询 9.退出");
System.out.println("*******************************");
int input = scan.nextInt();
switch(input){
case 1:{
test.show(null);
break;
}
case 2:{
System.out.print("请输入关键字:");
key = scan.next();
test.search(key);
break;
}
case 9:System.exit(1);
default:break;
}
}
}

}本回答被提问者采纳
第3个回答  2011-11-11
不会的路过
第4个回答  2011-11-11
.....我想知道....在各种输入法都很成熟好用的情况下.....开发这个有什么意义么?追问

搜索用的,你应该懂得了吧 !

相似回答