class NameChunkObfuscatorApproach extends AnnotatorApproach[NameChunkObfuscator] with NameChunkObfuscatorParams with DeidApproachParams with CheckLicense
Contains all the methods for training a NameChunkObfuscator model. This module can replace name entities with consistent fakers. Additionally, obfuscation names can be defined with setObfuscateRefFile, where each line is a mapping of name. The format and seperator can be speficied with setRefFileFormat and setRefSep.
George#NAME Taylor#NAME
The configuration params for that module are in trait NameChunkObfuscatorParams.
- See also
DeidApproachParams See Spark NLP Workshop for more examples of usage.
Example
val data = Seq("John Davies is a 62 y.o. patient admitted." + "He was seen by attending physician Dr. Lorand and was scheduled for emergency assessment.") .toDF("text") val documentAssembler = new DocumentAssembler() .setInputCol("text") .setOutputCol("sentence") val tokenizer = new Tokenizer() .setInputCols("sentence") .setOutputCol("token") val word_embeddings = WordEmbeddingsModel.pretrained("embeddings_clinical", "en", "clinical/models") .setInputCols(Array("sentence", "token")) .setOutputCol("embeddings") val clinical_ner = MedicalNerModel.pretrained("ner_deid_generic_augmented", "en", "clinical/models") .setInputCols(Array("sentence", "token", "embeddings")) .setOutputCol("ner") val ner_converter_name = new NerConverterInternal() .setInputCols(Array("sentence", "token", "ner")) .setOutputCol("ner_chunk")
NameChunkObfuscatorApproach
val nameChunkObfuscator = new NameChunkObfuscatorApproach() .setInputCols("ner_chunk") .setOutputCol("replacement") .setRefFileFormat("csv") .setObfuscateRefFile("obfuscator_names.txt") .setRefSep("#") .setObfuscateRefSource("both") .setLanguage("en") val replacer_name = new Replacer() .setInputCols("replacement", "sentence") .setOutputCol("obfuscated_document_name") .setUseReplacement(true)
Pipeline
val pipeline = new Pipeline().setStages(Array( documentAssembler, tokenizer, word_embeddings, clinical_ner, ner_converter_name, nameChunkObfuscator, replacer_name )) val result = pipeline.fit(data).transform(data) result.select("text").show(false) result.selectExpr("explode(document_normalized.result) as normalized_text").show(false) +-----------------------------------------------------------------------------------------------------------------------------------+ |text | +-----------------------------------------------------------------------------------------------------------------------------------+ |John Davies is a 62 y.o. patient admitted.He was seen by attending physician Dr. Lorand and was scheduled for emergency assessment.| +-----------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------------------------+ |result | +-------------------------------------------------------------------------------------------------------------------------------------+ |[Charlestine is a 62 y.o. patient admitted.He was seen by attending physician Dr. Lowery and was scheduled for emergency assessment.]| +-------------------------------------------------------------------------------------------------------------------------------------+
- Grouped
- Alphabetic
- By Inheritance
- NameChunkObfuscatorApproach
- CheckLicense
- DeidApproachParams
- NameChunkObfuscatorParams
- AnnotatorApproach
- CanBeLazy
- DefaultParamsWritable
- MLWritable
- HasOutputAnnotatorType
- HasOutputAnnotationCol
- HasInputAnnotationCols
- Estimator
- PipelineStage
- Logging
- Params
- Serializable
- Serializable
- Identifiable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Type Members
-
type
AnnotatorType = String
- Definition Classes
- HasOutputAnnotatorType
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
-
def
_fit(dataset: Dataset[_], recursiveStages: Option[PipelineModel]): NameChunkObfuscator
- Attributes
- protected
- Definition Classes
- AnnotatorApproach
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
beforeTraining(spark: SparkSession): Unit
- Definition Classes
- AnnotatorApproach
-
final
def
checkSchema(schema: StructType, inputAnnotatorType: String): Boolean
- Attributes
- protected
- Definition Classes
- HasInputAnnotationCols
-
def
checkValidEnvironment(spark: Option[SparkSession], scopes: Seq[String]): Unit
- Definition Classes
- CheckLicense
-
def
checkValidScope(scope: String): Unit
- Definition Classes
- CheckLicense
-
def
checkValidScopeAndEnvironment(scope: String, spark: Option[SparkSession], checkLp: Boolean): Unit
- Definition Classes
- CheckLicense
-
def
checkValidScopesAndEnvironment(scopes: Seq[String], spark: Option[SparkSession], checkLp: Boolean): Unit
- Definition Classes
- CheckLicense
-
final
def
clear(param: Param[_]): NameChunkObfuscatorApproach.this.type
- Definition Classes
- Params
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
copy(extra: ParamMap): Estimator[NameChunkObfuscator]
- Definition Classes
- AnnotatorApproach → Estimator → 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
-
val
description: String
- Definition Classes
- NameChunkObfuscatorApproach → AnnotatorApproach
-
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
fit(dataset: Dataset[_]): NameChunkObfuscator
- Definition Classes
- AnnotatorApproach → Estimator
-
def
fit(dataset: Dataset[_], paramMaps: Seq[ParamMap]): Seq[NameChunkObfuscator]
- Definition Classes
- Estimator
- Annotations
- @Since( "2.0.0" )
-
def
fit(dataset: Dataset[_], paramMap: ParamMap): NameChunkObfuscator
- Definition Classes
- Estimator
- Annotations
- @Since( "2.0.0" )
-
def
fit(dataset: Dataset[_], firstParamPair: ParamPair[_], otherParamPairs: ParamPair[_]*): NameChunkObfuscator
- Definition Classes
- Estimator
- Annotations
- @Since( "2.0.0" ) @varargs()
-
val
genderAwareness: BooleanParam
Whether to use gender-aware names or not during obfuscation.
Whether to use gender-aware names or not during obfuscation. This param effects only names. If value is true, it might decrease performance. Default: False
- Definition Classes
- NameChunkObfuscatorParams
-
final
def
get[T](param: Param[T]): Option[T]
- Definition Classes
- Params
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
getDefault[T](param: Param[T]): Option[T]
- Definition Classes
- Params
-
def
getInputCols: Array[String]
- Definition Classes
- HasInputAnnotationCols
-
def
getLazyAnnotator: Boolean
- Definition Classes
- CanBeLazy
-
final
def
getOrDefault[T](param: Param[T]): T
- Definition Classes
- Params
-
final
def
getOutputCol: String
- Definition Classes
- HasOutputAnnotationCol
-
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
inputAnnotatorTypes: Array[String]
- Definition Classes
- NameChunkObfuscatorApproach → HasInputAnnotationCols
-
final
val
inputCols: StringArrayParam
- Attributes
- protected
- Definition Classes
- HasInputAnnotationCols
-
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
-
val
language: Param[String]
The language used to select some faker names The values are the following: 'en'(English), 'de'(German), 'es'(Spanish), 'fr'(French), 'ar'(Arabic) or 'ro'(Romanian).
The language used to select some faker names The values are the following: 'en'(English), 'de'(German), 'es'(Spanish), 'fr'(French), 'ar'(Arabic) or 'ro'(Romanian). Default:'en'
- Definition Classes
- NameChunkObfuscatorParams
-
val
lazyAnnotator: BooleanParam
- Definition Classes
- CanBeLazy
-
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
-
def
msgHelper(schema: StructType): String
- Attributes
- protected
- Definition Classes
- HasInputAnnotationCols
-
val
nameEntities: StringArrayParam
The nameEntities used to select entities during obfuscation.
The nameEntities used to select entities during obfuscation. The supported name entities are NAME, PATIENT, and DOCTOR. Default: NAME
- Definition Classes
- NameChunkObfuscatorParams
-
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
obfuscateRefFile: Param[String]
File with the terms to be used for Obfuscation
File with the terms to be used for Obfuscation
- Definition Classes
- DeidApproachParams
-
val
obfuscateRefSource: Param[String]
The source of obfuscation to obfuscate the names.
The source of obfuscation to obfuscate the names. The values are the following: "file": Takes the names from the obfuscatorRefFile. "faker": Takes the names from the Faker module. "both": Takes the names from the obfuscatorRefFile and the faker module randomly. Default: "both"
- Definition Classes
- NameChunkObfuscatorParams
-
def
onTrained(model: NameChunkObfuscator, spark: SparkSession): Unit
- Definition Classes
- AnnotatorApproach
-
val
optionalInputAnnotatorTypes: Array[String]
- Definition Classes
- HasInputAnnotationCols
-
val
outputAnnotatorType: AnnotatorType
- Definition Classes
- NameChunkObfuscatorApproach → HasOutputAnnotatorType
-
final
val
outputCol: Param[String]
- Attributes
- protected
- Definition Classes
- HasOutputAnnotationCol
-
lazy val
params: Array[Param[_]]
- Definition Classes
- Params
-
val
refFileFormat: Param[String]
Format of the reference file for Obfuscation the default value for that is "csv"
Format of the reference file for Obfuscation the default value for that is "csv"
- Definition Classes
- DeidApproachParams
-
val
refSep: Param[String]
Separator character for the csv reference file for Obfuscation de default value is "#"
Separator character for the csv reference file for Obfuscation de default value is "#"
- Definition Classes
- DeidApproachParams
-
val
sameLength: BooleanParam
The sameLength used to select the same length names as original ones during obfuscation.
The sameLength used to select the same length names as original ones during obfuscation. Example: 'John' --> 'Mike'. Default: true
- Definition Classes
- NameChunkObfuscatorParams
-
def
save(path: String): Unit
- Definition Classes
- MLWritable
- Annotations
- @Since( "1.6.0" ) @throws( ... )
-
val
seed: IntParam
It is the seed to select the names.With the seed you can reply an execution several times with the same output.
It is the seed to select the names.With the seed you can reply an execution several times with the same output.
- Definition Classes
- NameChunkObfuscatorParams
-
final
def
set(paramPair: ParamPair[_]): NameChunkObfuscatorApproach.this.type
- Attributes
- protected
- Definition Classes
- Params
-
final
def
set(param: String, value: Any): NameChunkObfuscatorApproach.this.type
- Attributes
- protected
- Definition Classes
- Params
-
final
def
set[T](param: Param[T], value: T): NameChunkObfuscatorApproach.this.type
- Definition Classes
- Params
-
final
def
setDefault(paramPairs: ParamPair[_]*): NameChunkObfuscatorApproach.this.type
- Attributes
- protected
- Definition Classes
- Params
-
final
def
setDefault[T](param: Param[T], value: T): NameChunkObfuscatorApproach.this.type
- Attributes
- protected[org.apache.spark.ml]
- Definition Classes
- Params
-
def
setGenderAwareness(value: Boolean): NameChunkObfuscatorApproach.this.type
Whether to use gender-aware names or not during obfuscation.
Whether to use gender-aware names or not during obfuscation. This param effects only names. If value is true, it might decrease performance. Default: False
- Definition Classes
- NameChunkObfuscatorParams
-
final
def
setInputCols(value: String*): NameChunkObfuscatorApproach.this.type
- Definition Classes
- HasInputAnnotationCols
-
def
setInputCols(value: Array[String]): NameChunkObfuscatorApproach.this.type
- Definition Classes
- HasInputAnnotationCols
-
def
setLanguage(s: String): NameChunkObfuscatorApproach.this.type
The language used to select some faker names.
The language used to select some faker names. The values are the following: 'en'(English), 'de'(German), 'es'(Spanish), 'fr'(French), 'ar'(Arabic) or 'ro'(Romanian). Default:'en'
- Definition Classes
- NameChunkObfuscatorParams
-
def
setLazyAnnotator(value: Boolean): NameChunkObfuscatorApproach.this.type
- Definition Classes
- CanBeLazy
-
def
setNameEntities(value: Array[String]): NameChunkObfuscatorApproach.this.type
The nameEntities used to select entities during obfuscation.
The nameEntities used to select entities during obfuscation. The supported name entities are NAME, PATIENT, and DOCTOR. Default: NAME
- Definition Classes
- NameChunkObfuscatorParams
-
def
setObfuscateRefFile(f: String): NameChunkObfuscatorApproach.this.type
File with the terms to be used for Obfuscation
File with the terms to be used for Obfuscation
- Definition Classes
- DeidApproachParams
-
def
setObfuscateRefSource(s: String): NameChunkObfuscatorApproach.this.type
The source of obfuscation to obfuscate the names.
The source of obfuscation to obfuscate the names. The values are the following: "file": Takes the names from the obfuscatorRefFile. "faker": Takes the names from the Faker module. "both": Takes the names from the obfuscatorRefFile and the faker module randomly. Default: "both"
- Definition Classes
- NameChunkObfuscatorParams
-
final
def
setOutputCol(value: String): NameChunkObfuscatorApproach.this.type
- Definition Classes
- HasOutputAnnotationCol
-
def
setRefFileFormat(f: String): NameChunkObfuscatorApproach.this.type
File with the terms to be used for Obfuscation
File with the terms to be used for Obfuscation
- Definition Classes
- DeidApproachParams
-
def
setRefSep(f: String): NameChunkObfuscatorApproach.this.type
Separator character for the csv reference file for Obfuscation de default value is "#"
Separator character for the csv reference file for Obfuscation de default value is "#"
- Definition Classes
- DeidApproachParams
-
def
setSameLength(value: Boolean): NameChunkObfuscatorApproach.this.type
The sameLength used to select the same length names as original ones during obfuscation.
The sameLength used to select the same length names as original ones during obfuscation. Example: 'John' --> 'Mike'. Default: true
- Definition Classes
- NameChunkObfuscatorParams
-
def
setSeed(s: Int): NameChunkObfuscatorApproach.this.type
It is the seed to select the names.With the seed you can reply an execution several times with the same output.
It is the seed to select the names.With the seed you can reply an execution several times with the same output.
- Definition Classes
- NameChunkObfuscatorParams
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- Identifiable → AnyRef → Any
-
def
train(dataset: Dataset[_], recursivePipeline: Option[PipelineModel]): NameChunkObfuscator
- Definition Classes
- NameChunkObfuscatorApproach → AnnotatorApproach
-
final
def
transformSchema(schema: StructType): StructType
- Definition Classes
- AnnotatorApproach → PipelineStage
-
def
transformSchema(schema: StructType, logging: Boolean): StructType
- Attributes
- protected
- Definition Classes
- PipelineStage
- Annotations
- @DeveloperApi()
-
val
uid: String
- Definition Classes
- NameChunkObfuscatorApproach → Identifiable
-
def
validate(schema: StructType): Boolean
- Attributes
- protected
- Definition Classes
- AnnotatorApproach
-
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