MulaiMulai sekarang secara gratis

Mengonversi teks ke format vektor

Anda telah mempelajari cara memecah kalimat dan mengonversi sebuah array kata menjadi vektor numerik menggunakan CountVectorizer.

Sebuah dataframe df disediakan dengan kolom berikut: sentence, in, dan out. Setiap kolom berisi array string. sentence adalah daftar kata yang merepresentasikan sebuah kalimat dari buku teks. Kolom out berisi kata terakhir dari sentence. Kolom in diperoleh dengan menghapus kata terakhir dari sentence.

model CountVectorizer mengharapkan sebuah dataframe dengan kolom words dan akan membuat kolom vec.

Anda akan terlebih dahulu melakukan transform yang menambahkan kolom invec, yang tampilannya seperti berikut:

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

Kemudian Anda akan melakukan transform kedua, yang tampilannya seperti berikut:

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

Latihan ini adalah bagian dari kursus

Pengantar Spark SQL dalam Python

Lihat Kursus

Petunjuk latihan

  • Buat sebuah dataframe bernama result dengan menggunakan model untuk transform() df. result memiliki kolom sentence, in, out, dan invec. invec adalah hasil transformasi vektor dari kolom in.
  • Tambahkan kolom ke result bernama outvec. result sekarang memiliki kolom sentence, in, out, invec, dan outvec.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)	
Edit dan Jalankan Kode