Kom igångKom igång gratis

Pipeline för SMS-skräppost

Du har inte tittat på SMS-data på ett tag. Senast du gjorde det utförde du följande steg:

  • delade upp texten i tokens
  • tog bort stoppord
  • tillämpade hashing-tricket
  • konverterade data från räkningar till IDF och
  • tränade en logistisk regressionsmodell.

Varje steg utfördes oberoende av de andra. Det här verkar vara ett perfekt tillfälle att använda en pipeline!

Klasserna Pipeline och LogisticRegression har redan importerats till sessionen, så det behöver du inte tänka på!

Den här övningen är en del av kursen

Maskininlärning med PySpark

Visa kurs

Övningsinstruktioner

  • Skapa ett objekt för att dela upp text i tokens.
  • Skapa ett objekt för att ta bort stoppord. Använd metoden getOutputCol() på det föregående objektet i stället för att ange indatakolumnens namn explicit.
  • Skapa objekt för att tillämpa hashing-tricket och omvandla data till TF-IDF. Använd metoden getOutputCol() igen.
  • Skapa en pipeline som kapslar in alla ovanstående steg samt ett objekt för att skapa en logistisk regressionsmodell.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF

# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')

# Remove stop words
remover = ____(inputCol=____, outputCol='terms')

# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")

# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])
Redigera och kör kod