import com.johnsnowlabs.nlp.{DocumentAssembler, Finisher} import com.johnsnowlabs.nlp.annotators.{Normalizer, Stemmer, Tokenizer} import com.johnsnowlabs.nlp.annotator._ import com.johnsnowlabs.nlp.base._ import com.johnsnowlabs.nlp.util.io.ExternalResource import com.johnsnowlabs.util.{Benchmark, PipelineModels, Version} import org.apache.spark.ml.feature.NGram import org.apache.spark.ml.Pipeline
import com.johnsnowlabs.nlp.{DocumentAssembler, Finisher}
import com.johnsnowlabs.nlp.annotators.{Normalizer, Stemmer, Tokenizer}
import com.johnsnowlabs.nlp.annotator._
import com.johnsnowlabs.nlp.base._
import com.johnsnowlabs.nlp.util.io.ExternalResource
import com.johnsnowlabs.util.{Benchmark, PipelineModels, Version}
import org.apache.spark.ml.feature.NGram
import org.apache.spark.ml.Pipeline
%sh curl -O 'https://s3.amazonaws.com/auxdata.johnsnowlabs.com/public/resources/it/lemma/dxc.technology/lemma_italian.txt'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
32 6739k 32 2198k 0 0 2657k 0 0:00:02 --:--:-- 0:00:02 2655k
100 6739k 100 6739k 0 0 6856k 0 --:--:-- --:--:-- --:--:-- 6855k
%sh head lemma_italian.txt
abate -> abate abati
abbacchiare -> abbacchiare abbacchi abbacchia abbacchiai abbacchiammo abbacchiamo abbacchian abbacchiando abbacchiano abbacchiante abbacchianti abbacchiar abbacchiaron abbacchiarono abbacchiasse abbacchiasser abbacchiassero abbacchiassi abbacchiassimo abbacchiaste abbacchiasti abbacchiata abbacchiate abbacchiati abbacchiato abbacchiava abbacchiavamo abbacchiavan abbacchiavano abbacchiavate abbacchiavi abbacchiavo abbacchierà abbacchierai abbacchieran abbacchieranno abbacchierebbe abbacchierebber abbacchierebbero abbacchierei abbacchieremmo abbacchieremo abbacchiereste abbacchieresti abbacchierete abbacchierò abbacchin abbacchino abbacchio abbacchiò
abbacinare -> abbacinare abbacina abbacinai abbacinammo abbacinan abbacinando abbacinano abbacinante abbacinanti abbacinar abbacinaron abbacinarono abbacinasse abbacinasser abbacinassero abbacinassi abbacinassimo abbacinaste abbacinasti abbacinata abbacinate abbacinati abbacinato abbacinava abbacinavamo abbacinavan abbacinavano abbacinavate abbacinavi abbacinavo abbacinerà abbacinerai abbacineran abbacineranno abbacinerebbe abbacinerebber abbacinerebbero abbacinerei abbacineremmo abbacineremo abbacinereste abbacineresti abbacinerete abbacinerò abbacini abbaciniamo abbaciniate abbacinin abbacinino abbacino abbacinò
abbagliante -> abbagliante abbaglianti
abbagliare -> abbagliare abbagli abbaglia abbagliai abbagliammo abbagliamo abbaglian abbagliando abbagliano abbagliante abbaglianti abbagliar abbagliaron abbagliarono abbagliasse abbagliasser abbagliassero abbagliassi abbagliassimo abbagliaste abbagliasti abbagliata abbagliate abbagliati abbagliato abbagliava abbagliavamo abbagliavan abbagliavano abbagliavate abbagliavi abbagliavo abbaglierà abbaglierai abbaglieran abbaglieranno abbaglierebbe abbaglierebber abbaglierebbero abbaglierei abbaglieremmo abbaglieremo abbagliereste abbaglieresti abbaglierete abbaglierò abbaglin abbaglino abbaglio abbagliò
abbaglio -> abbaglio abbagli
abbaiare -> abbaiare abbai abbaia abbaiai abbaiammo abbaiamo abbaian abbaiando abbaiano abbaiante abbaianti abbaiar abbaiaron abbaiarono abbaiasse abbaiasser abbaiassero abbaiassi abbaiassimo abbaiaste abbaiasti abbaiata abbaiate abbaiati abbaiato abbaiava abbaiavamo abbaiavan abbaiavano abbaiavate abbaiavi abbaiavo abbaierà abbaierai abbaieran abbaieranno abbaierebbe abbaierebber abbaierebbero abbaierei abbaieremmo abbaieremo abbaiereste abbaieresti abbaierete abbaierò abbain abbaino abbaio abbaiò
abbaino -> abbaino abbaini
abbandonare -> abbandonare abbandona abbandonai abbandonammo abbandonan abbandonando abbandonano abbandonante abbandonanti abbandonar abbandonaron abbandonarono abbandonasse abbandonasser abbandonassero abbandonassi abbandonassimo abbandonaste abbandonasti abbandonata abbandonate abbandonati abbandonato abbandonava abbandonavamo abbandonavan abbandonavano abbandonavate abbandonavi abbandonavo abbandonerà abbandonerai abbandoneran abbandoneranno abbandonerebbe abbandonerebber abbandonerebbero abbandonerei abbandoneremmo abbandoneremo abbandonereste abbandoneresti abbandonerete abbandonerò abbandoni abbandoniamo abbandoniate abbandonin abbandonino abbandono abbandonò
abbandonata -> abbandonata abbandonate
val documentAssembler = new DocumentAssembler() .setInputCol("text") .setOutputCol("document") val sentenceDetector = new SentenceDetector() .setInputCols(Array("document")) .setOutputCol("sentence") val tokenizer = new Tokenizer() .setInputCols(Array("sentence")) .setOutputCol("token") val normalizer = new Normalizer() .setInputCols("token") .setOutputCol("normal") val lemmatizer = new Lemmatizer() .setInputCols("normal") .setOutputCol("lemma") .setDictionary( ExternalResource( path = "file:/databricks/driver/lemma_italian.txt", readAs = "LINE_BY_LINE", Map("valueDelimiter" -> "\\s+" , "keyDelimiter" -> "->" ) ) ) val pipeline = new Pipeline() .setStages(Array( documentAssembler, sentenceDetector, tokenizer, normalizer, lemmatizer )) val pipeLineModelNLP = Benchmark.time("Time to train model") { pipeline.fit(Seq.empty[String].toDF("text")) }
Time to train model: 10.595582466sec
documentAssembler: com.johnsnowlabs.nlp.DocumentAssembler = document_a33dd74b1733
sentenceDetector: com.johnsnowlabs.nlp.annotators.sbd.pragmatic.SentenceDetector = SENTENCE_98872f9f071a
tokenizer: com.johnsnowlabs.nlp.annotators.Tokenizer = REGEX_TOKENIZER_d16c7378e0df
normalizer: com.johnsnowlabs.nlp.annotators.Normalizer = NORMALIZER_11be16d47e15
lemmatizer: com.johnsnowlabs.nlp.annotators.Lemmatizer = LEMMATIZER_802f4b8eb592
pipeline: org.apache.spark.ml.Pipeline = pipeline_56c964f91ba5
pipeLineModelNLP: org.apache.spark.ml.PipelineModel = pipeline_56c964f91ba5
val testDataset = List( "Finchè non avevo la linea ADSL di fastweb potevo entrare nel router e configurare quelle pochissime cose configurabili (es. nome dei device), da ieri che ho avuto la linea niente è più configurabile...", " L'uomo è insoddisfatto del prodotto.", " La coppia contenta si abbraccia sulla spiaggia.") .toDF("text")
testDataset: org.apache.spark.sql.DataFrame = [text: string]
pipeLineModelNLP.transform(testDataset).select($"token.result".as("tokens")).show(1, false) pipeLineModelNLP.transform(testDataset).select($"normal.result".as("normalized")).show(1, false) pipeLineModelNLP.transform(testDataset).select($"lemma.result".as("lemmatized")).show(1, false)
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|tokens |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|[Finchè, non, avevo, la, linea, ADSL, di, fastweb, potevo, entrare, nel, router, e, configurare, quelle, pochissime, cose, configurabili, (, es, ., nome, dei, device, ), ,, da, ieri, che, ho, avuto, la, linea, niente, è, più, configurabile, ., ., .]|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
only showing top 1 row
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|normalized |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|[Finchè, non, avevo, la, linea, ADSL, di, fastweb, potevo, entrare, nel, router, e, configurare, quelle, pochissime, cose, configurabili, es, nome, dei, device, da, ieri, che, ho, avuto, la, linea, niente, è, più, configurabile]|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
only showing top 1 row
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|lemmatized |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|[Finchè, non, avere, la, lineare, ADSL, di, fastweb, potere, entrare, nel, router, e, configurare, quello, pochissime, cosa, configurabile, es, nome, dio, device, da, ieri, che, avere, avere, la, lineare, niente, essere, molto, configurabile]|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
only showing top 1 row
SDS-2.x, Scalable Data Engineering Science
This is a minor augnmentation/update of:
Last refresh: Never