久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

基于逆向最大化詞表中文分詞法,。

 duduwolf 2005-09-16
 

    以前做知識管理系統(tǒng)的時候,由于需要建立全文檢索和統(tǒng)計(jì)詞頻,,需要對中文文本進(jìn)行分詞。對于中文分詞,

國內(nèi)做到好的應(yīng)該是中科院自然研究所,但是相對比較復(fù)雜,我看了幾次沒有看明白. :)  ,由于平常我們的知識系統(tǒng)

對分詞的要求沒有這么高,所以 就選擇了最大化的詞表分詞法.  詞表選擇的是人民日報97版的詞表.

實(shí)際效果可以達(dá)到90%以上,基本可以滿足需要,。支持 Lucene.net分詞,,詞表是啟動時一次性載入,;

   具體代碼如下:

  public sealed class LtWordTokenizer : Tokenizer
 {
  private String bufferText;
  private ArrayList wordArray; 
  private int  intIndex=0;  
  public static Hashtable hsDic=new Hashtable();  

  public LtWordTokenizer(TextReader _in)
  {
   input = _in;
   bufferText=input.ReadToEnd().ToLower();   
   wordArray=new ArrayList();   
   wordSegment(bufferText);  
   
  }  

  public void wordSegment(String Sentence)
  {
   int senLen = Sentence.Length;
   int i=0, j=0;
   int M=12;
   string word;    
   while(i < senLen)
   {
    int N= i+M<senLen ? i+M : senLen+1;
    bool bFind=false;
    for(j=N-1; j>i; j--)
    {
     word = Sentence.Substring(i, j-i).Trim();     
     if(hsDic.ContainsKey(word.Trim()))
     {
      wordArray.Add(new Token(word,i,i+word.Length));      
      bFind=true;
      i=j;
      break;
     }     
    }
    if(!bFind)
    {
     word = Sentence.Substring(i, 1).Trim();
     i=j+1;
     if(word.Trim()!="")
     {
      wordArray.Add(new Token(word,i,i+word.Length));     
     }     
    }
   } 
  }


 
  public override Token Next()
  { 
   
   if(intIndex<wordArray.Count)
   { 
    intIndex++;
    return (Token)(wordArray[intIndex-1]);           
   }
   else
    return null;   
  }
  
 }
}

下次可以在分詞的時候更改一下,不必先分好保存到arraylist,動態(tài)速度更好,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多