不使用tokenizer创建spark管道

时间:2015-09-11 18:44:28

标签: scala apache-spark logistic-regression apache-spark-mllib

我正在考虑创建一个在spark中运行逻辑回归的管道,并且我遇到了一个问题,即是否有一种方法可以扩展或绕过" Tokenizer"对象

基本上,我遇到的问题是,令牌器对于我试图创建的向量(即词干,词形还原,二元组等)来说不够精确,但是在每个火花管道的例子我看到了以下几点:

val tokenizer = new Tokenizer()
  .setInputCol("text")
  .setOutputCol("words")
val hashingTF = new HashingTF()
  .setNumFeatures(1000)
  .setInputCol(tokenizer.getOutputCol)
  .setOutputCol("features")
val lr = new LogisticRegression()
  .setMaxIter(10)
  .setRegParam(0.001)
val pipeline = new Pipeline()
  .setStages(Array(tokenizer, hashingTF, lr))

我必须有一个标记器阶段吗?将Tokenizer类扩展为我想要的字符串修改是否是微不足道的?任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:0)

所以我找到了一个在这里扩展tokenizer类的相当不错的例子。这应该为需要重载的内容提供一个非常好的路线图,以便进行正确的标记化。

https://github.com/fyrz/spark-java-text-classifier/blob/master/src/main/java/org/fyrz/textclassifier/tokenizer/SparkLuceneTokenizer.java