讀拼音演算法-ag真人国际官网
ⅰ 演算法是什麼意思
演算法_詞語解釋
【拼音】:suàn fǎ
【解釋】:1.算術的舊稱。2.計算的方法。
【例句】:研究了系統體系結構、數據模型、數據遠程訪問、配號及配線演算法。
ⅱ 有誰能較詳細的介紹下拼音輸入法的演算法實現。。
我介紹一種java的簡單gui實現過程(主要組件是jlist)。
1.資料庫:首先建立漢字與拼音字母字元串的對應數據字典,同音對應一組漢字數組。
2.數據結構:然後建立動態結構jlist存儲要顯示的拼音字元串,沒有輸入時不顯示,輸入字母後依次開始篩選,每次只顯示可能的拼音(資料庫已有的)。
3.漢字選取:選定拼音字元串後,從資料庫讀取對應漢字數組,jlist顯示。選定,得到漢字。 不設聯想輸入。
選取過程jlist已經提供了方法。
ⅲ 拼音分詞演算法 c語言
#include
#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;
}