[100分]求汉字转拼音声母的最佳算法

csShooter 2005-09-06 10:59:56
who的算法好,分就给who!

要求:
(1) 认识率最大化,比如最好能达到认识如"踵zhong"这样的汉字!
(2) 最好能解决部份多音字问题:如"行 xing\hang"..
...全文
282 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
iheshi 2005-10-07
http://iheshi.cnblogs.com/archive/2005/10/07/249782.html
  • 打赏
  • 举报
回复
ybzsu 2005-09-06
我操
关注!!!

  • 打赏
  • 举报
回复
iloveyour 2005-09-06
还要解决多音字怕是没办法,难
  • 打赏
  • 举报
回复
orin_chan 2005-09-06
up~~~~~
  • 打赏
  • 举报
回复
csShooter 2005-09-06


在线等待..
  • 打赏
  • 举报
回复
csShooter 2005-09-06


jinjazz兄,对自己的代码太不负责了!...受批评哈!
  • 打赏
  • 举报
回复
csShooter 2005-09-06
兄弟们,努力啊!.....

jinjazz兄提供的方法也太老套,问题没解决!
  • 打赏
  • 举报
回复
jinjazz 2005-09-06
static public string GetChineseSpell(string strText)
{
int len = strText.Length;
string myStr = "";
for(int i=0;i<len;i++)
{
myStr += getSpell(strText.Substring(i,1));
}
return myStr;
}

static public string getSpell(string cnChar)
{
byte[] arrCN = Encoding.Default.GetBytes(cnChar);
if(arrCN.Length > 1)
{
int area = (short)arrCN[0];
int pos = (short)arrCN[1];
int code = (area<<8) + pos;

int[] areacode = {45217,45253,45761,46318,46826,47010,47297,47614,48119,48119,49062,49324,49896,50371,50614,50622,50906,51387,51446,52218,52698,52698,52698,52980,53689,54481};
for(int i=0;i<26;i++)
{
int max = 55290;
if(i != 25) max = areacode[i+1];
if(areacode[i]<=code && code<max)
{
return Encoding.Default.GetString(new byte[]{(byte)(65+i)});
}
}
return cnChar;
}
else return cnChar;
}
  • 打赏
  • 举报
回复
xamaizi 2005-09-06
mark!!
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2005-09-06 10:59
社区公告

让您成为最强悍的C#开发者