給nutch .8加中文分詞

原來nutch 的分詞是用javacc的,它是一個很高效的東東哦。
對於中日韓的文字是用單字分詞,
所以對中文要分詞,思路當然是把中文拿出來單獨對待了。

所以要對analysis.jj進行修改。

  // chinese, japanese and korean characters
| <SIGRAM: <OTHER_CJK>> 
                    
| <CNWORD: (<CHINESE>)+>//chinese word

   // irregular words
| <#IRREGULAR_WORD: (<C_PLUS_PLUS>|<C_SHARP>)>
| <#C_PLUS_PLUS: ("C"|"c") "++" >
| <#C_SHARP: ("C"|"c") "#" >

  // query syntax characters
| <PLUS: "+" >
| <MINUS: "-" >
| <QUOTE: "/"" >
| <COLON: ":" >
| <SLASH: "/" >
| <DOT: "." >
| <ATSIGN: "@" >
| <APOSTROPHE: "'" >

| <WHITE: ~[] >                                   // treat unrecognized chars
                                                  // as whitespace
// primitive, non-token patterns

| <#WORD_PUNCT: ("_"|"&")>                        // allowed anywhere in words

| < #LETTER:                      // alphabets
    [
        "/u0041"-"/u005a",
        "/u0061"-"/u007a",
        "/u00c0"-"/u00d6",
        "/u00d8"-"/u00f6",
        "/u00f8"-"/u00ff",
        "/u0100"-"/u1fff"
    ]
    >


|  <#OTHER_CJK: //japanese and korean characters                                       // non-alphabets
      [
       "/u3040"-"/u318f",
       "/u3300"-"/u337f",
       "/u3400"-"/u3d2d",
       "/uf900"-"/ufaff"
      ]
    >
   
|  <#CHINESE://chinese characters
   [
   "/u4e00"-"/u9fff"
   ]
   >
   
| <#DIGIT:                      // unicode digits
      [
       "/u0030"-"/u0039",
       "/u0660"-"/u0669",
       "/u06f0"-"/u06f9",
       "/u0966"-"/u096f",
       "/u09e6"-"/u09ef",
       "/u0a66"-"/u0a6f",
       "/u0ae6"-"/u0aef",
       "/u0b66"-"/u0b6f",
       "/u0be7"-"/u0bef",
       "/u0c66"-"/u0c6f",
       "/u0ce6"-"/u0cef",
       "/u0d66"-"/u0d6f",
       "/u0e50"-"/u0e59",
       "/u0ed0"-"/u0ed9",
       "/u1040"-"/u1049"
      ]
  >

}
這樣,就把中文單獨拿出來處理了,
後面就是要用自己的中文分詞方法對它進行處理了。
處理分詞是nutchAnalysis.java中的parse()方法,改它就可以了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章