Kom igångKom igång gratis

Omvandla text till vektorformat

Du har lärt dig att dela upp meningar och omvandla en array av ord till en numerisk vektor med hjälp av en CountVectorizer.

En dataram df tillhandahålls med följande kolumner: sentence, in och out. Varje kolumn är en array av strängar. sentence är en lista med ord som representerar en mening från en lärobok. Kolumnen out ger det sista ordet i sentence. Kolumnen in skapas genom att ta bort det sista ordet från sentence.

CountVectorizer-modellen model förväntar sig en dataram med en kolumn words och skapar en kolumn vec.

Du börjar med att utföra en transformation som lägger till en kolumn invec, vilket ser ut så här:

+----------------------+-------+------------------------------------+
|in                    |out    |invec                               |
+----------------------+-------+------------------------------------+
|[then, how, many, are]|[there]|(126,[3,18,28,30],[1.0,1.0,1.0,1.0])|
|[how]                 |[many] |(126,[28],[1.0])                    |
|[i, donot]            |[know] |(126,[15,78],[1.0,1.0])             |
+----------------------+-------+------------------------------------+
only showing top 3 rows

Därefter utför du en andra transformation, vilket ser ut så här:

+------------------------------------+----------------+
|invec                               |outvec          |
+------------------------------------+----------------+
|(126,[3,18,28,30],[1.0,1.0,1.0,1.0])|(126,[11],[1.0])|
|(126,[28],[1.0])                    |(126,[18],[1.0])|
|(126,[15,78],[1.0,1.0])             |(126,[21],[1.0])|
+------------------------------------+----------------+
only showing top 3 rows

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

Introduktion till Spark SQL i Python

Visa kurs

Övningsinstruktioner

  • Skapa en dataram kallad result genom att använda model för att anropa transform()df. result har kolumnerna sentence, in, out och invec. invec är vektortransformationen av kolumnen in.
  • Lägg till en kolumn i result kallad outvec. result har nu kolumnerna sentence, in, out, invec och outvec.

Interaktiv övning med praktiskt arbete

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

# Transform df using model
result = model.____(df.withColumnRenamed('in', 'words'))\
        .withColumnRenamed('words', 'in')\
        .withColumnRenamed('vec', 'invec')
result.drop('sentence').show(3, False)

# Add a column based on the out column called outvec
result = model.transform(result.withColumnRenamed('out', 'words'))\
        .withColumnRenamed('words', 'out')\
        .withColumnRenamed('vec', '____')
result.select('invec', 'outvec').show(3, False)	
Redigera och kör kod