Packages

class WordEmbeddings extends AnnotatorApproach[WordEmbeddingsModel] with HasStorage with HasEmbeddingsProperties

Word Embeddings lookup annotator that maps tokens to vectors.

For instantiated/pretrained models, see WordEmbeddingsModel.

A custom token lookup dictionary for embeddings can be set with setStoragePath. Each line of the provided file needs to have a token, followed by their vector representation, delimited by a spaces.

...
are 0.39658191506190343 0.630968081620067 0.5393722253731201 0.8428180123359783
were 0.7535235923631415 0.9699218875629833 0.10397182122983872 0.11833962569383116
stress 0.0492683418305907 0.9415954572751959 0.47624463167525755 0.16790967216778263
induced 0.1535748762292387 0.33498936903209897 0.9235178224122094 0.1158772920395934
...

If a token is not found in the dictionary, then the result will be a zero vector of the same dimension. Statistics about the rate of converted tokens, can be retrieved with WordEmbeddingsModel.withCoverageColumn and WordEmbeddingsModel.overallCoverage.

For extended examples of usage, see the Examples and the WordEmbeddingsTestSpec.

Example

In this example, the file random_embeddings_dim4.txt has the form of the content above.

import spark.implicits._
import com.johnsnowlabs.nlp.base.DocumentAssembler
import com.johnsnowlabs.nlp.annotators.Tokenizer
import com.johnsnowlabs.nlp.embeddings.WordEmbeddings
import com.johnsnowlabs.nlp.util.io.ReadAs
import com.johnsnowlabs.nlp.EmbeddingsFinisher
import org.apache.spark.ml.Pipeline

val documentAssembler = new DocumentAssembler()
  .setInputCol("text")
  .setOutputCol("document")

val tokenizer = new Tokenizer()
  .setInputCols(Array("document"))
  .setOutputCol("token")

val embeddings = new WordEmbeddings()
  .setStoragePath("src/test/resources/random_embeddings_dim4.txt", ReadAs.TEXT)
  .setStorageRef("glove_4d")
  .setDimension(4)
  .setInputCols("document", "token")
  .setOutputCol("embeddings")

val embeddingsFinisher = new EmbeddingsFinisher()
  .setInputCols("embeddings")
  .setOutputCols("finished_embeddings")
  .setOutputAsVector(true)
  .setCleanAnnotations(false)

val pipeline = new Pipeline()
  .setStages(Array(
    documentAssembler,
    tokenizer,
    embeddings,
    embeddingsFinisher
  ))

val data = Seq("The patient was diagnosed with diabetes.").toDF("text")
val result = pipeline.fit(data).transform(data)

result.selectExpr("explode(finished_embeddings) as result").show(false)
+----------------------------------------------------------------------------------+
|result                                                                            |
+----------------------------------------------------------------------------------+
|[0.9439099431037903,0.4707513153553009,0.806300163269043,0.16176554560661316]     |
|[0.7966810464859009,0.5551124811172485,0.8861005902290344,0.28284206986427307]    |
|[0.025029370561242104,0.35177749395370483,0.052506182342767715,0.1887107789516449]|
|[0.08617766946554184,0.8399239182472229,0.5395117998123169,0.7864698767662048]    |
|[0.6599600911140442,0.16109347343444824,0.6041093468666077,0.8913561105728149]    |
|[0.5955275893211365,0.01899011991918087,0.4397728443145752,0.8911281824111938]    |
|[0.9840458631515503,0.7599489092826843,0.9417727589607239,0.8624503016471863]     |
+----------------------------------------------------------------------------------+
See also

SentenceEmbeddings to combine embeddings into a sentence-level representation

Annotators Main Page for a list of transformer based embeddings

Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. WordEmbeddings
  2. HasEmbeddingsProperties
  3. HasProtectedParams
  4. HasStorage
  5. HasCaseSensitiveProperties
  6. HasStorageOptions
  7. HasStorageRef
  8. ParamsAndFeaturesWritable
  9. HasFeatures
  10. AnnotatorApproach
  11. CanBeLazy
  12. DefaultParamsWritable
  13. MLWritable
  14. HasOutputAnnotatorType
  15. HasOutputAnnotationCol
  16. HasInputAnnotationCols
  17. Estimator
  18. PipelineStage
  19. Logging
  20. Params
  21. Serializable
  22. Serializable
  23. Identifiable
  24. AnyRef
  25. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Parameters

A list of (hyper-)parameter keys this annotator can take. Users can set and get the parameter values through setters and getters, respectively.

  1. val caseSensitive: BooleanParam

    Whether to ignore case in index lookups (Default depends on model)

    Whether to ignore case in index lookups (Default depends on model)

    Definition Classes
    HasCaseSensitiveProperties
  2. val dimension: ProtectedParam[Int]

    Number of embedding dimensions (Default depends on model)

    Number of embedding dimensions (Default depends on model)

    Definition Classes
    HasEmbeddingsProperties
  3. val readCacheSize: IntParam

    Cache size for items retrieved from storage.

    Cache size for items retrieved from storage. Increase for performance but higher memory consumption

  4. val storagePath: ExternalResourceParam

    Path to the external resource.

    Path to the external resource.

    Definition Classes
    HasStorage
  5. val storageRef: Param[String]

    Unique identifier for storage (Default: this.uid)

    Unique identifier for storage (Default: this.uid)

    Definition Classes
    HasStorageRef
  6. val writeBufferSize: IntParam

    Buffer size limit before dumping to disk storage while writing

Annotator types

Required input and expected output annotator types

  1. val inputAnnotatorTypes: Array[String]

    Input annotation type : DOCUMENT, TOKEN

    Input annotation type : DOCUMENT, TOKEN

    Definition Classes
    WordEmbeddingsHasInputAnnotationCols
  2. val outputAnnotatorType: AnnotatorType

    Output annotation type : WORD_EMBEDDINGS

    Output annotation type : WORD_EMBEDDINGS

    Definition Classes
    WordEmbeddingsHasOutputAnnotatorType

Members

  1. implicit class ProtectedParam[T] extends Param[T]
    Definition Classes
    HasProtectedParams
  2. type AnnotatorType = String
    Definition Classes
    HasOutputAnnotatorType
  1. def beforeTraining(spark: SparkSession): Unit
    Definition Classes
    AnnotatorApproach
  2. final def clear(param: Param[_]): WordEmbeddings.this.type
    Definition Classes
    Params
  3. final def copy(extra: ParamMap): Estimator[WordEmbeddingsModel]
    Definition Classes
    AnnotatorApproach → Estimator → PipelineStage → Params
  4. def createDatabaseConnection(database: Name): RocksDBConnection
    Definition Classes
    HasStorageRef
  5. val databases: Array[Name]
    Definition Classes
    WordEmbeddingsHasStorage
  6. val description: String

    Word Embeddings lookup annotator that maps tokens to vectors

    Word Embeddings lookup annotator that maps tokens to vectors

    Definition Classes
    WordEmbeddingsAnnotatorApproach
  7. val enableInMemoryStorage: BooleanParam
    Definition Classes
    HasStorageOptions
  8. def explainParam(param: Param[_]): String
    Definition Classes
    Params
  9. def explainParams(): String
    Definition Classes
    Params
  10. final def extractParamMap(): ParamMap
    Definition Classes
    Params
  11. final def extractParamMap(extra: ParamMap): ParamMap
    Definition Classes
    Params
  12. val features: ArrayBuffer[Feature[_, _, _]]
    Definition Classes
    HasFeatures
  13. final def fit(dataset: Dataset[_]): WordEmbeddingsModel
    Definition Classes
    AnnotatorApproach → Estimator
  14. def fit(dataset: Dataset[_], paramMaps: Seq[ParamMap]): Seq[WordEmbeddingsModel]
    Definition Classes
    Estimator
    Annotations
    @Since( "2.0.0" )
  15. def fit(dataset: Dataset[_], paramMap: ParamMap): WordEmbeddingsModel
    Definition Classes
    Estimator
    Annotations
    @Since( "2.0.0" )
  16. def fit(dataset: Dataset[_], firstParamPair: ParamPair[_], otherParamPairs: ParamPair[_]*): WordEmbeddingsModel
    Definition Classes
    Estimator
    Annotations
    @Since( "2.0.0" ) @varargs()
  17. final def get[T](param: Param[T]): Option[T]
    Definition Classes
    Params
  18. final def getDefault[T](param: Param[T]): Option[T]
    Definition Classes
    Params
  19. def getEnableInMemoryStorage: Boolean
    Definition Classes
    HasStorageOptions
  20. def getIncludeStorage: Boolean
    Definition Classes
    HasStorageOptions
  21. def getInputCols: Array[String]

    returns

    input annotations columns currently used

    Definition Classes
    HasInputAnnotationCols
  22. def getLazyAnnotator: Boolean
    Definition Classes
    CanBeLazy
  23. final def getOrDefault[T](param: Param[T]): T
    Definition Classes
    Params
  24. final def getOutputCol: String

    Gets annotation column name going to generate

    Gets annotation column name going to generate

    Definition Classes
    HasOutputAnnotationCol
  25. def getParam(paramName: String): Param[Any]
    Definition Classes
    Params
  26. def getStorageRef: String
    Definition Classes
    HasStorageRef
  27. final def hasDefault[T](param: Param[T]): Boolean
    Definition Classes
    Params
  28. def hasParam(paramName: String): Boolean
    Definition Classes
    Params
  29. val includeStorage: BooleanParam
    Definition Classes
    HasStorageOptions
  30. def indexStorage(fitDataset: Dataset[_], resource: Option[ExternalResource]): Unit
    Definition Classes
    HasStorage
  31. final def isDefined(param: Param[_]): Boolean
    Definition Classes
    Params
  32. final def isSet(param: Param[_]): Boolean
    Definition Classes
    Params
  33. val lazyAnnotator: BooleanParam
    Definition Classes
    CanBeLazy
  34. def onTrained(model: WordEmbeddingsModel, spark: SparkSession): Unit
    Definition Classes
    AnnotatorApproach
  35. val optionalInputAnnotatorTypes: Array[String]
    Definition Classes
    HasInputAnnotationCols
  36. lazy val params: Array[Param[_]]
    Definition Classes
    Params
  37. def save(path: String): Unit
    Definition Classes
    MLWritable
    Annotations
    @Since( "1.6.0" ) @throws( ... )
  38. def set[T](param: ProtectedParam[T], value: T): WordEmbeddings.this.type

    Sets the value for a protected Param.

    Sets the value for a protected Param.

    If the parameter was already set, it will not be set again. Default values do not count as a set value and can be overridden.

    T

    Type of the parameter

    param

    Protected parameter to set

    value

    Value for the parameter

    returns

    This object

    Definition Classes
    HasProtectedParams
  39. final def set[T](param: Param[T], value: T): WordEmbeddings.this.type
    Definition Classes
    Params
  40. def setEnableInMemoryStorage(value: Boolean): WordEmbeddings.this.type
    Definition Classes
    HasStorageOptions
  41. def setIncludeStorage(value: Boolean): WordEmbeddings.this.type
    Definition Classes
    HasStorageOptions
  42. final def setInputCols(value: String*): WordEmbeddings.this.type
    Definition Classes
    HasInputAnnotationCols
  43. def setInputCols(value: Array[String]): WordEmbeddings.this.type

    Overrides required annotators column if different than default

    Overrides required annotators column if different than default

    Definition Classes
    HasInputAnnotationCols
  44. def setLazyAnnotator(value: Boolean): WordEmbeddings.this.type
    Definition Classes
    CanBeLazy
  45. final def setOutputCol(value: String): WordEmbeddings.this.type

    Overrides annotation column name when transforming

    Overrides annotation column name when transforming

    Definition Classes
    HasOutputAnnotationCol
  46. def setStorageRef(value: String): WordEmbeddings.this.type
    Definition Classes
    HasStorageRef
  47. def toString(): String
    Definition Classes
    Identifiable → AnyRef → Any
  48. def train(dataset: Dataset[_], recursivePipeline: Option[PipelineModel]): WordEmbeddingsModel
    Definition Classes
    WordEmbeddingsAnnotatorApproach
  49. final def transformSchema(schema: StructType): StructType

    requirement for pipeline transformation validation.

    requirement for pipeline transformation validation. It is called on fit()

    Definition Classes
    AnnotatorApproach → PipelineStage
  50. val uid: String
    Definition Classes
    WordEmbeddings → Identifiable
  51. def validateStorageRef(dataset: Dataset[_], inputCols: Array[String], annotatorType: String): Unit
    Definition Classes
    HasStorageRef
  52. def write: MLWriter
    Definition Classes
    ParamsAndFeaturesWritable → DefaultParamsWritable → MLWritable

Parameter setters

  1. def setCaseSensitive(value: Boolean): WordEmbeddings.this.type

    Definition Classes
    HasCaseSensitiveProperties
  2. def setDimension(value: Int): WordEmbeddings.this.type

    Definition Classes
    HasEmbeddingsProperties
  3. def setReadCacheSize(value: Int): WordEmbeddings.this.type

    Cache size for items retrieved from storage.

    Cache size for items retrieved from storage. Increase for performance but higher memory consumption.

  4. def setStoragePath(path: String, readAs: util.io.ReadAs.Value): WordEmbeddings.this.type

    Definition Classes
    HasStorage
  5. def setStoragePath(path: String, readAs: String): WordEmbeddings.this.type

    Definition Classes
    HasStorage
  6. def setWriteBufferSize(value: Int): WordEmbeddings.this.type

    Buffer size limit before dumping to disk storage while writing.

Parameter getters

  1. def getCaseSensitive: Boolean

    Definition Classes
    HasCaseSensitiveProperties
  2. def getDimension: Int

    Definition Classes
    HasEmbeddingsProperties
  3. def getStoragePath: Option[ExternalResource]

    Definition Classes
    HasStorage