實(shí)驗(yàn)報(bào)告-中文分詞_第1頁(yè)
實(shí)驗(yàn)報(bào)告-中文分詞_第2頁(yè)
實(shí)驗(yàn)報(bào)告-中文分詞_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

3/3實(shí)驗(yàn)報(bào)告-中文分詞實(shí)驗(yàn)報(bào)告1雙向匹配中文分詞

?小組信息

目錄

stringCHzSeg::SegmentHzStrMM(CDict//保存句子s1的分詞結(jié)果

while(!s1.empty())

{

unsignedintlen=s1.size();

//如果待切分的句子大于最大切分單元

//len=最大切分單元,否則len=句子的長(zhǎng)度

if(len>MAX_WORD_LENGTH)

len=MAX_WORD_LENGTH;

//取s1句子最左邊長(zhǎng)度len為的子句子

stringw=s1.substr(0,len);

//判斷剛剛?cè)〕鰜?lái)的子句子是不是一個(gè)詞

boolisw=dict.IsWord(w);

//當(dāng)w中至少有一個(gè)中文字

w=w.substr(0,len);

//再次判斷減字后的w是不是構(gòu)成一個(gè)詞

isw=dict.IsWord(w);

}

s2+=w+SEPARATOR;

s1=s1.substr(w.size());

}//endwhile

returns2;

}

逆向最大匹配算法RMM:

//對(duì)純中文句子s1的逆向減字最大匹配分詞

stringCHzSeg::SegmentHzStrRMM(CDict//保存句子s1的分詞結(jié)果

while(!s1.empty())

{

unsignedintlen=s1.size();

//如果待切分的句子大于最大切分單元

//len=最大切分單元,否則len=句子的長(zhǎng)度

if(len>MAX_WORD_LENGTH)

len=MAX_WORD_LENGTH;

//取s1句子最右邊長(zhǎng)度len為的子句子

stringw=s1.substr(s1.length()-len,len);

//判斷剛剛?cè)〕鰜?lái)的子句子是不是一個(gè)詞

boolisw=dict.IsWord(w);

//當(dāng)w中至少有一個(gè)中文字

w=s1.substr(s1.length()-len,len);

//再次判斷減字后的w是不是構(gòu)成一個(gè)詞

isw=dict.IsWord(w);

}

w=w+SEPARATOR;

s2=w+s2;

//分出一個(gè)詞后的s1

s1=s1.substr(0,s1.length()-len);

}

returns2;

}

?詳例描述:

逆向最大匹配思想是從右向左切分,以“對(duì)外經(jīng)濟(jì)技術(shù)合作與交流不斷擴(kuò)大”為例,詳細(xì)描述算法如下:

輸入例句:S1=“對(duì)外經(jīng)濟(jì)技術(shù)合作與交流不斷擴(kuò)大”;

定義:最大詞長(zhǎng)MaxLen=6;S2=“”;分隔符=“/”;

逆向減字最大匹配分詞算法過(guò)程如下:

(1)S2=“”;S1不為空,從S1右邊取出候選子串W=“斷擴(kuò)大”;

(2)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“擴(kuò)大”;(3)查詞表,“擴(kuò)大”在詞表中,將W加入到S2中,S2=“擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)技術(shù)合作與交流不斷”;

(4)S1不為空,于是從S1左邊取出候選子串W=“流不斷”;

(5)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“不斷”;(6)查詞表,“不斷”在詞表中,將W加入到S2中,S2=“不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)技術(shù)合作與交流”;

(7)S1不為空,于是從S1左邊取出候選子串W=“與交流”;

(8)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“交流”;(9)查詞表,“交流”在詞表中,將W加入到S2中,S2=“交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)技術(shù)合作與”;

(10)S1不為空,于是從S1左邊取出候選子串W=“合作與”;

(11)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“作與”;(12)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“與”;(13)查詞表,“與”在詞表中,將W加入到S2中,S2=“與/交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)技術(shù)合作”;

(14)S1不為空,于是從S1左邊取出候選子串W=“術(shù)合作”;

(15)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“合作”;(16)查詞表,“交流”在詞表中,將W加入到S2中,S2=“合作/與/交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)技術(shù)”;

(17)S1不為空,于是從S1左邊取出候選子串W=“濟(jì)技術(shù)”;

(18)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“技術(shù)”;(19)查詞表,“交流”在詞表中,將W加入到S2中,S2=“技術(shù)/合作/與/交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外經(jīng)濟(jì)

(20)S1不為空,于是從S1左邊取出候選子串W=“外經(jīng)濟(jì)”;

(21)查詞表,W不在詞表中,將W最左邊一個(gè)字去掉,得到W=“經(jīng)濟(jì)”;(22)查詞表,“交流”在詞表中,將W加入到S2中,S2=“經(jīng)濟(jì)/技術(shù)/合作/與/交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“對(duì)外”;(23)S1不為空,由于此時(shí)S1只剩下“對(duì)外”于是從S1左邊取出候選子串W=“對(duì)外”;

(24)查詞表,“對(duì)外”在詞表中,將W加入到S2中,S2=“對(duì)外/經(jīng)濟(jì)/技術(shù)/合作/與/交流/不斷/擴(kuò)大/”,并將W從S1中去掉,此時(shí)S1=“”;(25)S1為空,輸出S2作為分詞結(jié)果,分詞過(guò)程結(jié)束。

正向匹配法思想與逆向一樣,只是從左向右切分,因此只舉例逆向最大匹配算法描述。

?軟件演示:

軟件界面:

選擇分詞所要的方式(正向或逆向),然后輸入所要分詞的內(nèi)容,分詞結(jié)果就會(huì)在右邊顯示出來(lái)。

正向最大匹配分詞結(jié)果:

逆向最大匹配分詞結(jié)果:

?總結(jié):

1.使用哈希表存儲(chǔ)字典,啟動(dòng)時(shí)間

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論