LoslegenKostenlos loslegen

Text in Vektorformat umwandeln

Du hast gelernt, wie man Sätze aufteilt und ein Array von Wörtern mit einem CountVectorizer in einen numerischen Vektor umwandelt.

Es wird ein DataFrame df bereitgestellt mit den Spalten sentence, in und out. Jede Spalte ist ein Array von Strings. sentence ist eine Liste von Wörtern, die einen Satz aus einem Lehrbuch darstellen. Die Spalte out enthält das letzte Wort von sentence. Die Spalte in entsteht, indem das letzte Wort aus sentence entfernt wird.

Das CountVectorizer-model erwartet ein DataFrame mit einer Spalte words und erstellt eine Spalte vec.

Zuerst führst du eine Transformation durch, die eine Spalte invec hinzufügt. Das sieht wie folgt aus:

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

Dann führst du eine zweite Transformation durch, die so aussieht:

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

Diese Übung ist Teil des Kurses

Einführung in Spark SQL mit Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein DataFrame namens result, indem du model verwendest, um transform() auf df anzuwenden. result hat die Spalten sentence, in, out und invec. invec ist die Vektortransformation der Spalte in.
  • Füge result eine Spalte namens outvec hinzu. result hat jetzt die Spalten sentence, in, out, invec und outvec.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)	
Code bearbeiten und ausführen