锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
铏界劧鍦↖CTCLAS鐨勭郴緇熶腑娌℃湁瀹屾暣鐨勬枃妗h鏄?浣嗘槸鎴戜滑鍙互閫氳繃鏌ラ槄寮犲崕騫沖拰鍒樼兢鍙戣〃鐨勪竴浜涚浉鍏寵鏂囪祫鏂?榪樻槸鍙互紿ユ帰鍑轟富瑕佺殑鎬濊礬.
璇ュ垎璇嶇郴緇熺殑涓昏鏄濇兂鏄厛閫氳繃CHMM(灞傚彔褰㈤┈灝斿彲澶ā鍨?榪涜鍒嗚瘝,閫氳繃鍒嗗眰,鏃㈠鍔犱簡鍒嗚瘝鐨勫噯紜?鍙堜繚璇佷簡鍒嗚瘝鐨勬晥鐜?鍏卞垎浜斿眰,濡備笅鍥句竴鎵紺?
鍩烘湰鎬濊礬:鍏堣繘琛屽師瀛愬垏鍒?鐒跺悗鍦ㄦ鍩虹涓婅繘琛孨-鏈鐭礬寰勭矖鍒囧垎,鎵懼嚭鍓峃涓渶絎﹀悎鐨勫垏鍒嗙粨鏋?鐢熸垚浜屽厓鍒嗚瘝琛?鐒跺悗鐢熸垚鍒嗚瘝緇撴灉,鎺ョ潃榪涜璇嶆ф爣娉ㄥ茍瀹屾垚涓昏鍒嗚瘝姝ラ.
涓嬮潰鏄婧愪唬鐮佺殑涓昏鍐呭鐨勭爺絀訛細
錛?棣栧厛錛孖CTCLAS鍒嗚瘝紼嬪簭棣栧厛璋冪敤CICTCLAS_WinDlg::OnBtnRun()寮濮嬬▼搴忕殑鎵ц.騫朵笖鍙互浠庣湅鍑哄畠鐨勫鐞嗘柟娉曟槸鎶婃簮瀛楃涓插垎孌靛鐞嗐傚茍涓斿湪鍒嗚瘝鍓嶏紝瀹屾垚璇嶅吀鐨勫姞杞借繃紼嬶紝鍗崇敓鎴恗_ICTCLAS瀵硅薄鏃惰皟鐢ㄦ瀯閫犲嚱鏁板畬鎴愯瘝鍏稿簱鐨勫姞杞姐傚叧浜庤瘝鍏哥粨鏋勭殑鍒嗘瀽錛岃鍙傚姞鍒嗚瘝緋葷粺鐮旂┒錛堜簩錛夈?/p>
void CICTCLAS_WinDlg::OnBtnRun()
{
......
//鍦ㄦ澶勮繘琛屽垎璇嶅拰璇嶆ф爣璁?/font>
if(!m_ICTCLAS.ParagraphProcessing((char *)(LPCTSTR)m_sSource,sResult))
m_sResult.Format("閿欒錛氱▼搴忓垵濮嬪寲寮傚父錛?);
else
m_sResult.Format("%s",sResult);//杈撳嚭鏈緇堝垎璇嶇粨鏋?/font>
......
}
錛?鍦∣nBtnRun()鏂規硶閲岄潰璋冪敤鍒嗘鍒嗚瘝澶勭悊鏂規硶bool CResult::ParagraphProcessing(char *sParagraph,char *sResult)瀹屾垚鍒嗚瘝鐨勬暣涓鐞嗚繃紼嬶紝鍖呮嫭鍒嗚瘝鐨勮瘝鎬ф爣娉?鍏朵腑絎竴涓弬鏁頒負婧愬瓧絎︿覆錛岀浜屼釜鍙傛暟涓哄垎璇嶅悗鐨勫瓧絎︿覆.鍦ㄨ繖涓や釜鏂規硶涓嵆瀹屾垚浜嗘暣涓垎璇嶅鐞嗚繃紼嬶紝涓嬮潰闇瑕佷簡瑙g殑鏄湪姝ゆ柟娉曚腑錛屽浣曡皟鐢ㄥ叾瀹冩柟娉曚竴姝ユ鎸夌収涓婂浘鎵紺虹殑鍒嗘瀽妗嗘灦瀹屾垚鍒嗚瘝榪囩▼.涓轟簡綆鍗曡搗瑙侊紝鎴戜滑鍏堜笉鍋氭湭鐧誨綍璇嶇殑鍒嗘瀽銆?/p>
//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
.......
}
錛?涓昏鐨勫垎璇嶅鐞嗘槸鍦≒rocessing()鏂規硶閲岄潰鍙戠敓鐨勶紝涓嬮潰鎴戜滑瀵瑰畠榪涜榪涗竴姝ョ殑鍒嗘瀽.
bool CResult::Processing(char *sSentence,unsigned int nCount)
{
......
//榪涜浜屽弶鍒嗚瘝
m_Seg.BiSegment(sSentence, m_dSmoothingPara,m_dictCore,m_dictBigram,nCount);
......
//鍦ㄦ澶勮繘琛岃瘝鎬ф爣娉?/font>
m_POSTagger.POSTagging(m_Seg.m_pWordSeg[nIndex],m_dictCore,m_dictCore);
......
}
錛?鐜板湪鎴戜滑鍏堜笉綆¤瘝鎬ф爣娉紝鎶婃敞鎰忓姏闆嗕腑鍦ㄤ簩鍙夊垎璇嶄笂錛屽洜涓鴻繖涓槸鍒嗚瘝鐨勪袱澶у叧閿楠ょ殑絎竴姝?
鍙傝冩枃绔?
1.<<鍩轟簬灞傚彔闅愰┈妯″瀷鐨勬眽璇瘝娉曞垎鏋?gt;>,鍒樼兢 寮犲崕騫崇瓑
2.<<鍩轟簬N-鏈鐭礬寰勭殑涓枃璇嶈綺楀垎妯″瀷>>,寮犲崕騫?鍒樼兢
鏉ユ簮錛?a >http://blog.csdn.net/sinboy/archive/2006/03/12/622596.aspx