ÎncepețiÎncepe gratuit

Transformarea textului în format vectorial

Ai învățat cum să împarți propoziții și să transformi un array de cuvinte într-un vector numeric folosind un CountVectorizer.

Este furnizat un dataframe df cu următoarele coloane: sentence, in și out. Fiecare coloană este un array de șiruri de caractere. sentence este o listă de cuvinte care reprezintă o propoziție dintr-un manual. Coloana out conține ultimul cuvânt din sentence. Coloana in se obține prin eliminarea ultimului cuvânt din sentence.

CountVectorizer-ul model așteaptă un dataframe cu o coloană words și creează o coloană vec.

Vei efectua mai întâi o transformare care adaugă o coloană invec, care arată astfel:

+----------------------+-------+------------------------------------+
|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

Apoi vei efectua o a doua transformare, care arată astfel:

+------------------------------------+----------------+
|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

Acest exercițiu face parte din cursul

Introducere în Spark SQL în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un dataframe numit result folosind model pentru a aplica transform() pe df. result va conține coloanele sentence, in, out și invec. invec este transformarea vectorială a coloanei in.
  • Adaugă o coloană numită outvec la result. result va conține acum coloanele sentence, in, out, invec și outvec.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)	
Editează și rulează codul