日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

分词系统

發(fā)布時間:2023/12/10 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分词系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ICTClAS分詞系統(tǒng)是由中科院計算所的張華平、劉群所開發(fā)的一套獲得廣泛好評的分詞系統(tǒng),難能可貴的是該版的Free版開放了源代碼,為我們很多初學(xué)者提供了寶貴的學(xué)習(xí)材料。

????? 但有一點不完美的是,該源代碼沒有配套的文檔,閱讀起來可能有一定的障礙,尤其是對C/C++不熟的人來說.本人就一直用Java/VB作為主要的開發(fā)語言,C/C++上大學(xué)時倒是學(xué)過,不過工作之后一直沒有再使用過,語法什么的忘的幾乎一干二凈了.但語言這東西,基本的東西都相通的,況且Java也是在C/C++的基礎(chǔ)上形成的,有一定的相似處.閱讀一遍源代碼,主要的語法都應(yīng)該不成問題了.

????雖然在ICTCLAS的系統(tǒng)中沒有完整的文檔說明,但是我們可以通過查閱張華平和劉群發(fā)表的一些相關(guān)論文資料,還是可以窺探出主要的思路.

?? 該分詞系統(tǒng)的主要是思想是先通過CHMM(層疊形馬爾可夫模型)進行分詞,通過分層,既增加了分詞的準確性,又保證了分詞的效率.共分五層,如下圖一所示:

基本思路:先進行原子切分,然后在此基礎(chǔ)上進行N-最短路徑粗切分,找出前N個最符合的切分結(jié)果,生成二元分詞表,然后生成分詞結(jié)果,接著進行詞性標注并完成主要分詞步驟.

下面是對源代碼的主要內(nèi)容的研究:

1.首先,ICTCLAS分詞程序首先調(diào)用CICTCLAS_WinDlg::OnBtnRun()開始程序的執(zhí)行.并且可以從看出它的處理方法是把源字符串分段處理。并且在分詞前,完成詞典的加載過程,即生成m_ICTCLAS對象時調(diào)用構(gòu)造函數(shù)完成詞典庫的加載。關(guān)于詞典結(jié)構(gòu)的分析,請參加分詞系統(tǒng)研究(二)。

void CICTCLAS_WinDlg::OnBtnRun()
{

?? ......

?//在此處進行分詞和詞性標記

? if(!m_ICTCLAS.ParagraphProcessing((char *)(LPCTSTR)m_sSource,sResult))
??????? ?m_sResult.Format("錯誤:程序初始化異常!");
???else
?????? ?m_sResult.Format("%s",sResult);//輸出最終分詞結(jié)果

????......

}

2.在OnBtnRun()方法里面調(diào)用分段分詞處理方法bool CResult::ParagraphProcessing(char *sParagraph,char *sResult)完成分詞的整個處理過程,包括分詞的詞性標注.其中第一個參數(shù)為源字符串,第二個參數(shù)為分詞后的字符串.在這兩個方法中即完成了整個分詞處理過程,下面需要了解的是在此方法中,如何調(diào)用其它方法一步步按照上圖所示的分析框架完成分詞過程.為了簡單起見,我們先不做未登錄詞的分析。

//Paragraph Segment and POS Tagging
bool CResult::ParagraphProcessing(char *sParagraph,char *sResult)
{

?? ........

?? Processing(sSentence,1); //Processing and output the result of current sentence.
??Output(m_pResult[0],sSentenceResult,bFirstIgnore); //Output to the imediate result

? .......

}

3.主要的分詞處理是在Processing()方法里面發(fā)生的,下面我們對它進行進一步的分析.

bool CResult::Processing(char *sSentence,unsigned int nCount)
{

......

?//進行二叉分詞

m_Seg.BiSegment(sSentence, m_dSmoothingPara,m_dictCore,m_dictBigram,nCount);

......

?//在此處進行詞性標注

m_POSTagger.POSTagging(m_Seg.m_pWordSeg[nIndex],m_dictCore,m_dictCore);

......

}

4.現(xiàn)在我們先不管詞性標注,把注意力集中在二叉分詞上,因為這個是分詞的兩大關(guān)鍵步驟的第一步.

參考文章:

1.<<基于層疊隱馬模型的漢語詞法分析>>,劉群 張華平等

2.<<基于N-最短路徑的中文詞語粗分模型>>,張華平 劉群

總結(jié)

以上是生活随笔為你收集整理的分词系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。