做文本分析挖掘肯定离不开自然语言处理,以前就完全掌握过stanford的NLP工具包,里面是非常强大的,特别其支持多语言的自然语言处理,对话题模型、实体关系挖掘都有现成的产品。 看到网上有人做了spark + NLP结合的东东,于是自己也想试验一下。利用stanford nlp 3.6.0最新的进行了测试,对20news的文章进行命名实体抽取实验,这个过程还是非常简单的,其原理就是将每个文档进行句子划分,再对每个句子(RDD)进行句子中的命名实体抽取。 val entities = splitSentences.map({ case (fileName, content) => (fileName, NLPTools.classifier.getEntities(content.map(_.word()).mkString(" ")))}) .flatMap({ case (fileName, list) => list.map(x => (fileName, x))}).groupByKey
这样的话,其实可以将getEntities换成其它的NLP工具都可以实现的。