spark scala 用ansj分词
来源:互联网 发布:淘宝客服招聘网站 编辑:程序博客网 时间:2024/06/05 16:17
本文编辑于2017.4.15,使用ansj最新的版本5.1.1分词
先要将ansj_seg-5.1.1.jar和nlp-lang-1.7.2.jar加入工程
ansj源码github:https://github.com/NLPchina/ansj_seg
ansj下载链接:https://oss.sonatype.org/content/repositories/releases/org/ansj/ansj_seg/
nlp-lang下载链接:https://oss.sonatype.org/content/repositories/releases/org/nlpcn/nlp-lang/
下面的scala代码展示:从一个文本文件中读入用户自定义的词、停用标点、用spark的RDD分词:
import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.io.Sourceimport org.ansj.splitWord.analysis.DicAnalysisimport org.ansj.library.DicLibraryimport org.ansj.recognition.impl.StopRecognitionimport org.nlpcn.commons.lang.tire.libraryobject TextClassificationDemo { def main (args: Array[String]) { Logger.getLogger("org").setLevel(Level.OFF) System.setProperty("spark.ui.showConsoleProgress","False") //----添加自定义词典---- val dicfile = raw"/xxx/xxx/ExtendDic" //ExtendDic为一个文本文件的名字,里面每一行存放一个词 for (word <- Source.fromFile(dicfile).getLines) { DicLibrary.insert(DicLibrary.DEFAULT,word)} //逐行读入文本文件,将其添加到自定义词典中 println("done") //----添加停用词---- val filter = new StopRecognition() filter.insertStopNatures("w") //过滤掉标点 //----先分一句话测试---- val testsentence = DicAnalysis.parse("好喜欢《武林外传》这部电视剧!"). //用DicAnalysis分词,这是一个优先用户自定义词典分词的分词方式 recognition(filter). // 过滤停用词 toStringWithOutNature("|") // 分词默认会打出词性,此语句用于不打出词性,并且分好的词用“|”隔开 println(testsentence) // ----构建spark对象---- val conf = new SparkConf().setAppName("TextClassificationDemo").setMaster("local[2]") val sc = new SparkContext(conf) //----读入要分词的文件---- val filename = raw"/WorkSpace/TextClassificationDemo/data/SampleText.csv" val CSVFile = sc.textFile(filename) // 用sc读入文件,此时文件的数据是RDD结构,注意textFile只能读UTF-8编码 val splited = CSVFile.map( x => DicAnalysis.parse(x).recognition(filter).toStringWithOutNature("|") ) splited.foreach(println) println("done") } }
0 0
- spark scala 用ansj分词
- 使用Spark、Ansj分词进行词频统计
- SPARK+ANSJ 中文分词基本操作
- ansj 分词
- ansj 分词
- Ansj分词
- ansj分词
- spark + ansj 对大数据量中文进行分词
- Spark + ansj 对大数据量中文进行分词
- spark + ansj 对大数据量中文进行分词
- Ansj中文分词说明
- ansj分词使用
- 分词工具-ansj
- ANSJ中文分词使用方法
- Ansj中文分词说明
- ansj分词教程
- ansj分词使用
- java,scala通过ansj分词 并做去除停词处理
- MySQ基础L知识-基本操作
- JDK5新特性_枚举的注意事项
- 20170415STL014_STL_迭代器
- (转)Android自定义View 之 View的测量
- [Github] git push "提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。"的解决办法
- spark scala 用ansj分词
- 训练营第一天学习笔记
- 为什么内存不足应用变卡
- 基于88E6095的链路冗余协议开发(一)
- docker搭建python环境并打包镜像然后使用镜像启动python程序和flask程序
- 免费wifi共享软件开发记录
- Exercise 2.2-2
- 关于ES5之前不支持Object.create(proto)解决办法
- spring入门教程