對於中日韓的文字是用單字分詞,
所以對中文要分詞,思路當然是把中文拿出來單獨對待了。
所以要對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()方法,改它就可以了。