本篇文章的呢主要写的使用spark ml 中的lda算法提取文档的主题的方法思路,不牵扯到lda的 算法原理。至于算法请参照http://www.aboutyun.com/thread-20130-1-1.html 这篇文章
使用lda算法对中文文本聚类并提取主题,大体上需要这么几个过程:
1.首先采用中文分词工具对中文分词,这里采用开源的IK分词。
2.从分词之后的词表中去掉停用词,生成新的词表。
3.利用文档转向量的工具将文档转换为向量。
4.对向量使用lda算法运算,运算完成之后取出主题的详情,以及主题在文档中的分布详情。
具体代码如下:
public class IkAnalyzerTool{
public String call(String line) throws Exception {
StringReader sr=new StringReader(line);
IKSegmenter ik=new IKSegmenter(sr, true);
Lexeme lex=null;
StringBuffer sb = new StringBuffer();
while((lex=ik.next())!=null){
sb.append(lex.getLexemeText());
sb.append(" ");
}
return sb.toString();
}
public static void main(String[] args) throws Exception {
IkAnalyzerTool a = new