टेक्स्ट को वेक्टर फॉर्मेट में ट्रांसफॉर्म करना
आपने सीखा कि वाक्यों को कैसे बाँटा जाता है और शब्दों की array को CountVectorizer की मदद से संख्यात्मक वेक्टर में कैसे बदला जाता है.
एक डेटाफ़्रेम df दिया गया है जिसमें ये कॉलम हैं: sentence, in, और out. हर कॉलम strings की एक array है. sentence टेक्स्टबुक के एक वाक्य के शब्दों की सूची है. out कॉलम sentence का आखिरी शब्द देता है. in कॉलम sentence से आखिरी शब्द हटाकर प्राप्त किया गया है.
CountVectorizer का model ऐसे डेटाफ़्रेम की अपेक्षा करता है जिसमें words नाम का कॉलम हो और यह vec नाम का कॉलम बनाता है.
आप पहले एक transform चलाएँगे जो invec कॉलम जोड़ता है, जो कुछ इस तरह दिखेगा:
+----------------------+-------+------------------------------------+
|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
इसके बाद आप दूसरा transform चलाएँगे, जो इस तरह दिखेगा:
+------------------------------------+----------------+
|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
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Spark SQL परिचय
अभ्यास निर्देश
modelका उपयोग करकेdfपरtransform()चलाकरresultनाम का डेटाफ़्रेम बनाएँ.resultमेंsentence,in,out, औरinvecकॉलम होंगे.invec,inकॉलम का वेक्टर ट्रांसफॉर्मेशन है.resultमेंoutvecनाम का एक कॉलम जोड़ें. अबresultमेंsentence,in,out,invec, औरoutvecकॉलम होंगे.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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)