读拼音算法
Ⅰ 算法是什么意思
算法_词语解释
【拼音】:suàn fǎ
【解释】:1.算术的旧称。2.计算的方法。
【例句】:研究了系统体系结构、数据模型、数据远程访问、配号及配线算法。
Ⅱ 有谁能较详细的介绍下拼音输入法的算法实现。。
我介绍一种Java的简单GUI实现过程(主要组件是jlist)。
1.数据库:首先建立汉字与拼音字母字符串的对应数据字典,同音对应一组汉字数组。
2.数据结构:然后建立动态结构jlist存储要显示的拼音字符串,没有输入时不显示,输入字母后依次开始筛选,每次只显示可能的拼音(数据库已有的)。
3.汉字选取:选定拼音字符串后,从数据库读取对应汉字数组,jlist显示。选定,得到汉字。 不设联想输入。
选取过程jlist已经提供了方法。
Ⅲ 拼音分词算法 C语言
#include <stdio.h>
#define M_JUZI 200
// 树图的链表验证结构
// 用图的链式存储来构造树,子树均记录串的静态位置(索引)
typedef struct ST_FenCi{
int LeiBie; // 连什么类别?1 : 韵母,2 : 声母
int SuoYin; // 声母后的韵母索引 或者 词语中韵母后一个字的声母索引
struct ST_FenCi *pN; // 兄弟
} FenCi;
typedef struct ST_Ci{
int SuoYin; // 在原始串内的子串(字)索引
int Chang; // 子串长度
} Ci; // 记录结果的结构
typedef struct ST_ShengMu {
char Pin[3]; // 声母字符串
FenCi *pLian; // 分词树的子树
} ShengMu; // 用来定义声母的静态集合
typedef struct ST_YunMu {
char Yin[5]; // 韵母字符串,区别于声母
FenCi *pLian; // 分词树的子树
} YunMu; // 用来定义韵母的静态集合
// 声母开字头
ShengMu smJiHe[29] = {{""},{"b"},{"c"},{"d"},{""},{"f"},{"g"},
{"h"},{""},{"j"},{"k"},{"l"},{"m"},{"n"},
{""},{"p"},{"q"},{"r"},{"s"},{"t"},{""},
{""},{"w"},{"x"},{"y"},{"z"},{"ch"},{"sh"},{"zh"}};
// 韵母收字尾
YunMu ymJiHe[24] = {{"a"},{"o"},{"e"},{"i"},{"u"},{"v"},
{"ai"},{"ei"},{"ui"},{"ao"},{"ou"},
{"iu"},{"ie"},{"ue"},
{"er"},
{"an"},{"en"},{"in"},{"un"},{"vn"},
{"ang"},{"eng"},{"ing"},{"ong"}};
// 关于分字树,完全可以按照“现代汉语词典”的音节表来构造
// 某分字子树的构造
void InitFenZiShu0() {
}
int main() {
char JuZi[M_JUZI];
//scanf("%s",JuZi);
// 算法1. 首字哈希查找,链表连字,链表连词
// 如果需要查找的表有限,可以用if ,else,也可以用哈希查找
// 待解决的问题:
// 1.1. 声母头与声母尾的混淆,两个字头之间至少相差三个位置
// 1.2. 韵母尾与声母头的混淆,上下文,回退
// 1.3. 超前搜索,首先,如果韵母可以扩展到更长的另一个韵母,
// 1.3.1 从韵母收字的时候,
// 不仅要尝试韵母的"扩展",而且要判断扩展后新韵母的后缀,
// 如果这个后缀为声母头,那么在声母头的后面是否有合适的韵母构成一个新字?
// 如果有,就需要记录这种可能,而且做好提前收尾的准备
// 如果没有,理所当然要把新的韵母继续"扩展"
// 这样的韵母比如:e->er, a->an->ang, e->en->eng, i->in->ing, u->un,
// 这样的声母比如:e, r, g
// 1.3.2 从声母找字的时候,
// 如果后面找不到声母头链表里所有的韵母,就可以扩展匹配更长的声母
// 算法2. 渐进地找到所有声母点,上下文分析,修正,分析到结构,显示
// 算法2.1 对原文的每个字,逐个匹配已知声母
// 算法2.2 已知声母,在一定范围里搜集在原文里出现的每个声母点
getchar(); // enter
return 1;
}