CountVectorizer和IDF的Spark自定义词汇表

时间:2018-03-13 00:36:56

标签: apache-spark pyspark spark-dataframe

CountVectorizer将根据条目生成自己的索引列表,例如

"I Spark"
"Spark need boy"

将产生

(4, idicies=(1,2), values=(1,1))
(4, indicies=(2,3,4), values=(1,1,1))

但是我想用自己的词汇表示,比如说,(“我”:10,“火花”:123,“需要”:3,“男孩”:99)所以:

(4, idicies=(10, 123), values=(1,1))
(4, indicies=(123,3,99), values=(1,1,1))

这可能吗? IDF也一样吗?

1 个答案:

答案 0 :(得分:0)

我也研究了这个问题。可以这样完成:

new CountVectorizerModel(uid, vocab).setParent(<Some CountVectorizer>)

我以here为例。您可以删除uid,并且vocab的类型为Array[String],如CountVectorizerModel的定义所示:

@Since("1.5.0")
class CountVectorizerModel(
    @Since("1.5.0") override val uid: String,
    @Since("1.5.0") val vocabulary: Array[String])
  extends Model[CountVectorizerModel] with CountVectorizerParams with MLWritable {

  import CountVectorizerModel._

  @Since("1.5.0")
  def this(vocabulary: Array[String]) = {
    this(Identifiable.randomUID("cntVecModel"), vocabulary)
    set(vocabSize, vocabulary.length)
  }`