Metni vektör biçimine dönüştürme
Bir cümleyi nasıl böleceğini ve bir sözcük dizisini CountVectorizer kullanarak sayısal bir vektöre dönüştürmeyi öğrendin.
sentence, in ve out sütunlarına sahip bir df dataframe'i veriliyor. Her sütun birer string dizisidir. sentence, bir ders kitabındaki bir cümleyi oluşturan sözcüklerin listesidir. out sütunu, sentence içindeki son sözcüğü verir. in sütunu ise sentence içinden son sözcüğün çıkarılmasıyla elde edilir.
CountVectorizer modeli words adlı bir sütunu olan bir dataframe bekler ve vec adlı bir sütun oluşturur.
Önce aşağıdakine benzeyen bir invec sütunu ekleyen bir dönüşüm uygulayacaksın:
+----------------------+-------+------------------------------------+
|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
Sonra aşağıdakine benzeyen ikinci bir dönüşüm uygulayacaksın:
+------------------------------------+----------------+
|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
Bu egzersiz
Python ile Spark SQL'e Giriş
kursunun bir parçasıdırEgzersiz talimatları
modeliledfüzerindetransform()uygulayarakresultadlı bir dataframe oluştur.resultşu sütunlara sahip olsun:sentence,in,outveinvec.invec,insütununun vektör dönüşümüdür.resultaoutvecadlı bir sütun ekle. Artıkresultşu sütunlara sahip:sentence,in,out,invecveoutvec.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)