class EmbeddingsFinisher extends Transformer with DefaultParamsWritable
Extracts embeddings from Annotations into a more easily usable form.
This is useful for example: WordEmbeddings, BertEmbeddings, SentenceEmbeddings and ChunkEmbeddings.
By using EmbeddingsFinisher you can easily transform your embeddings into array of floats or
vectors which are compatible with Spark ML functions such as LDA, K-mean, Random Forest
classifier or any other functions that require featureCol.
For more extended examples see the Examples.
Example
import spark.implicits._ import org.apache.spark.ml.Pipeline import com.johnsnowlabs.nlp.{DocumentAssembler, EmbeddingsFinisher} import com.johnsnowlabs.nlp.annotator.{Normalizer, StopWordsCleaner, Tokenizer, WordEmbeddingsModel} val documentAssembler = new DocumentAssembler() .setInputCol("text") .setOutputCol("document") val tokenizer = new Tokenizer() .setInputCols("document") .setOutputCol("token") val normalizer = new Normalizer() .setInputCols("token") .setOutputCol("normalized") val stopwordsCleaner = new StopWordsCleaner() .setInputCols("normalized") .setOutputCol("cleanTokens") .setCaseSensitive(false) val gloveEmbeddings = WordEmbeddingsModel.pretrained() .setInputCols("document", "cleanTokens") .setOutputCol("embeddings") .setCaseSensitive(false) val embeddingsFinisher = new EmbeddingsFinisher() .setInputCols("embeddings") .setOutputCols("finished_sentence_embeddings") .setOutputAsVector(true) .setCleanAnnotations(false) val data = Seq("Spark NLP is an open-source text processing library.") .toDF("text") val pipeline = new Pipeline().setStages(Array( documentAssembler, tokenizer, normalizer, stopwordsCleaner, gloveEmbeddings, embeddingsFinisher )).fit(data) val result = pipeline.transform(data) val resultWithSize = result.selectExpr("explode(finished_sentence_embeddings)") .map { row => val vector = row.getAs[org.apache.spark.ml.linalg.DenseVector](0) (vector.size, vector) }.toDF("size", "vector") resultWithSize.show(5, 80) +----+--------------------------------------------------------------------------------+ |size| vector| +----+--------------------------------------------------------------------------------+ | 100|[0.1619900017976761,0.045552998781204224,-0.03229299932718277,-0.685609996318...| | 100|[-0.42416998744010925,1.1378999948501587,-0.5717899799346924,-0.5078899860382...| | 100|[0.08621499687433243,-0.15772999823093414,-0.06067200005054474,0.395359992980...| | 100|[-0.4970499873161316,0.7164199948310852,0.40119001269340515,-0.05761000141501...| | 100|[-0.08170200139284134,0.7159299850463867,-0.20677000284194946,0.0295659992843...| +----+--------------------------------------------------------------------------------+
- See also
 Finisher for finishing Strings
- Grouped
 - Alphabetic
 - By Inheritance
 
- EmbeddingsFinisher
 - DefaultParamsWritable
 - MLWritable
 - Transformer
 - PipelineStage
 - Logging
 - Params
 - Serializable
 - Serializable
 - Identifiable
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - All
 
Instance Constructors
Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        $[T](param: Param[T]): T
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      
- Definition Classes
 - Any
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        cleanAnnotations: BooleanParam
      
      
      
Whether to remove all the existing annotation columns (Default:
true) - 
      
      
      
        
      
    
      
        final 
        def
      
      
        clear(param: Param[_]): EmbeddingsFinisher.this.type
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... ) @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        copy(extra: ParamMap): Transformer
      
      
      
- Definition Classes
 - EmbeddingsFinisher → Transformer → PipelineStage → Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        copyValues[T <: Params](to: T, extra: ParamMap): T
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        defaultCopy[T <: Params](extra: ParamMap): T
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        explainParam(param: Param[_]): String
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        explainParams(): String
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        extractParamMap(): ParamMap
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        extractParamMap(extra: ParamMap): ParamMap
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( classOf[java.lang.Throwable] )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        get[T](param: Param[T]): Option[T]
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        getCleanAnnotations: Boolean
      
      
      
Whether to remove all the existing annotation columns (Default:
true) - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getDefault[T](param: Param[T]): Option[T]
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        getInputCols: Array[String]
      
      
      
Name of EmbeddingsFinisher output cols
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getOrDefault[T](param: Param[T]): T
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        getOutputAsVector: Boolean
      
      
      
If enabled it will output the embeddings as Vectors instead of arrays (Default:
false) - 
      
      
      
        
      
    
      
        
        def
      
      
        getOutputCols: Array[String]
      
      
      
Name of input annotation cols containing embeddings
 - 
      
      
      
        
      
    
      
        
        def
      
      
        getParam(paramName: String): Param[Any]
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        hasDefault[T](param: Param[T]): Boolean
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        hasParam(paramName: String): Boolean
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        initializeLogIfNecessary(isInterpreter: Boolean): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        inputCols: StringArrayParam
      
      
      
Name of input annotation cols containing embeddings
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        isDefined(param: Param[_]): Boolean
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      
- Definition Classes
 - Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        isSet(param: Param[_]): Boolean
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        isTraceEnabled(): Boolean
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        log: Logger
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logDebug(msg: ⇒ String, throwable: Throwable): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logDebug(msg: ⇒ String): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logError(msg: ⇒ String, throwable: Throwable): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logError(msg: ⇒ String): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logInfo(msg: ⇒ String, throwable: Throwable): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logInfo(msg: ⇒ String): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logName: String
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logTrace(msg: ⇒ String, throwable: Throwable): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logTrace(msg: ⇒ String): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logWarning(msg: ⇒ String, throwable: Throwable): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        logWarning(msg: ⇒ String): Unit
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Logging
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        outputAsVector: BooleanParam
      
      
      
If enabled it will output the embeddings as Vectors instead of arrays (Default:
false) - 
      
      
      
        
      
    
      
        
        val
      
      
        outputCols: StringArrayParam
      
      
      
Name of EmbeddingsFinisher output cols
 - 
      
      
      
        
      
    
      
        
        lazy val
      
      
        params: Array[Param[_]]
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        save(path: String): Unit
      
      
      
- Definition Classes
 - MLWritable
 - Annotations
 - @Since( "1.6.0" ) @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        set(paramPair: ParamPair[_]): EmbeddingsFinisher.this.type
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        set(param: String, value: Any): EmbeddingsFinisher.this.type
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        set[T](param: Param[T], value: T): EmbeddingsFinisher.this.type
      
      
      
- Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        setCleanAnnotations(value: Boolean): EmbeddingsFinisher.this.type
      
      
      
Whether to remove all the existing annotation columns (Default:
true) - 
      
      
      
        
      
    
      
        final 
        def
      
      
        setDefault(paramPairs: ParamPair[_]*): EmbeddingsFinisher.this.type
      
      
      
- Attributes
 - protected
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        setDefault[T](param: Param[T], value: T): EmbeddingsFinisher.this.type
      
      
      
- Attributes
 - protected[org.apache.spark.ml]
 - Definition Classes
 - Params
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        setInputCols(value: String*): EmbeddingsFinisher.this.type
      
      
      
Name of input annotation cols containing embeddings
 - 
      
      
      
        
      
    
      
        
        def
      
      
        setInputCols(value: Array[String]): EmbeddingsFinisher.this.type
      
      
      
Name of input annotation cols containing embeddings
 - 
      
      
      
        
      
    
      
        
        def
      
      
        setOutputAsVector(value: Boolean): EmbeddingsFinisher.this.type
      
      
      
If enabled it will output the embeddings as Vectors instead of arrays (Default:
false) - 
      
      
      
        
      
    
      
        
        def
      
      
        setOutputCols(value: String*): EmbeddingsFinisher.this.type
      
      
      
Name of EmbeddingsFinisher output cols
 - 
      
      
      
        
      
    
      
        
        def
      
      
        setOutputCols(value: Array[String]): EmbeddingsFinisher.this.type
      
      
      
Name of EmbeddingsFinisher output cols
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      
- Definition Classes
 - Identifiable → AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        transform(dataset: Dataset[_]): Dataset[Row]
      
      
      
- Definition Classes
 - EmbeddingsFinisher → Transformer
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        transform(dataset: Dataset[_], paramMap: ParamMap): DataFrame
      
      
      
- Definition Classes
 - Transformer
 - Annotations
 - @Since( "2.0.0" )
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        transform(dataset: Dataset[_], firstParamPair: ParamPair[_], otherParamPairs: ParamPair[_]*): DataFrame
      
      
      
- Definition Classes
 - Transformer
 - Annotations
 - @Since( "2.0.0" ) @varargs()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        transformSchema(schema: StructType): StructType
      
      
      
- Definition Classes
 - EmbeddingsFinisher → PipelineStage
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        transformSchema(schema: StructType, logging: Boolean): StructType
      
      
      
- Attributes
 - protected
 - Definition Classes
 - PipelineStage
 - Annotations
 - @DeveloperApi()
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        uid: String
      
      
      
- Definition Classes
 - EmbeddingsFinisher → Identifiable
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... ) @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        write: MLWriter
      
      
      
- Definition Classes
 - DefaultParamsWritable → MLWritable
 
 
Inherited from DefaultParamsWritable
Inherited from MLWritable
Inherited from Transformer
Inherited from PipelineStage
Inherited from Logging
Inherited from Params
Inherited from Serializable
Inherited from Serializable
Inherited from Identifiable
Inherited from AnyRef
Inherited from Any
Parameters
A list of (hyper-)parameter keys this annotator can take. Users can set and get the parameter values through setters and getters, respectively.