Začněte nyníZačněte zdarma

Převod textu do vektorového formátu

Naučil/a ses rozdělovat věty a převádět pole slov na číselný vektor pomocí CountVectorizer.

K dispozici máš dataframe df s následujícími sloupci: sentence, in a out. Každý sloupec je pole řetězců. sentence je seznam slov představující větu z učebnice. Sloupec out obsahuje poslední slovo z sentence. Sloupec in vznikne odstraněním posledního slova z sentence.

CountVectorizer model očekává dataframe se sloupcem words a vytváří sloupec vec.

Nejprve provedeš transformaci, která přidá sloupec invec, jenž vypadá takto:

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

Poté provedeš druhou transformaci, která vypadá takto:

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

Toto cvičení je součástí kurzu

Úvod do Spark SQL v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř dataframe s názvem result tak, že použiješ model a zavoláš transform() na df. Dataframe result bude mít sloupce sentence, in, out a invec. invec je vektorová transformace sloupce in.
  • Přidej do result sloupec outvec. Dataframe result bude mít nyní sloupce sentence, in, out, invec a outvec.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)	
Upravit a spustit kód