如何给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()方法,改它就可以了。