當前位置:成語大全網 - 書法字典 - 拼音分詞算法c語言

拼音分詞算法c語言

# include & ltstdio.h & gt

#定義M_JUZI 200

//樹形圖的鏈表驗證結構

//通過圖的鏈式存儲構造壹棵樹,所有子樹記錄字符串的靜態位置(索引)。

typedef結構ST_FenCi{

int LeiBie//什麽類別?1:元音,2:首字母

int索音;//在壹個單詞中,首字母之後的首字母索引或首字母之後的單詞的首字母索引。

struct ST _ FenCi * pN//兄弟

} FenCi

typedef結構ST_Ci{

int索音;//原始字符串中的子字符串(單詞)索引

int Chang//子串長度

} Ci//記錄結果的結構

typedef結構ST_ShengMu {

char引腳[3];//初始字符串

FenCi * pLian//分詞樹的子樹

}聖木;//用於定義首字母的靜態集合。

typedef結構ST _慕雲{

char Yin[5];//元音字符串,不同於聲母。

FenCi * pLian//分詞樹的子樹

}慕雲;//用於定義元音的靜態集合。

//首字母開始。

生母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 " };

//元音後綴

慕雲ymJiHe[24] = {{"a"},{"o"},{"e"},{"i"},{"u"},{"v"},

{"ai"},{"ei"},{"ui"},{"ao"},{"ou"},

{"iu"},{"ie"},{"ue"},

{“呃”},

{"an"},{"en"},{"in"},{"un"},{"vn"},

{"ang"},{"eng"},{"ing"},{ " ong " } }

//關於分詞樹,可以根據《現代漢語詞典》的音節表來構造。

//fenzi子樹的構造

void InitFenZiShu0() {

}

int main() {

char JuZi[M _ JuZi];

//scanf("%s ",JuZi);

//算法1。首字哈希搜索,鏈表合取,鏈表合取。

//如果要搜索的表數有限,可以使用If、else或hash進行搜索。

//需要解決的問題:

// 1.1.聲母和韻母混淆,兩個前綴相差至少三個位置。

// 1.2.元音和聲母、上下文、回退之間的混淆

// 1.3.向前搜索,首先,如果元音可以擴展到另壹個更長的元音,

// 1.3.1從元音接收單詞時,

//不僅要嘗試“擴展”元音,還要判斷擴展後新元音的後綴。

//如果這個後綴是聲母,那麽聲母後面有沒有合適的元音組成新詞?

//如果有,需要記錄下這種可能性,提前做好完成的準備。

//如果沒有,當然要繼續“拓展”新元音。

//這樣的元音是e-& gt;呃,a-& gt;安-& gt;ang,e-& gt;en-& gt;eng,I-& gt;在-& gt;ing,u-& gt;聯合國,

//如e,r,g這樣的首字母

// 1.3.2從聲母找字的時候,

//如果在初始鏈表中找不到所有元音,可以擴展匹配更長的聲母。

//算法二。逐步找到所有初始點,分析上下文,修改,分析到結構化,展示。

//算法2.1將原文的每個單詞與已知的聲母壹壹匹配。

//算法2.2已知聲母,收集壹定範圍內出現在原文中的每壹個聲母點。

getchar();//回車

返回1;

}