الثلاثاء، 29 أكتوبر 2024

كيفية إنشاء سحابة الكلمات باستخدام بايثون؟

 إحدى الطرق لتحليل المعلومات النصية هي استخدام سحابة الكلمات:


تم إنشاء سحابة الكلمات هذه بواسطة الكود الذي سنقوم بمناقشته في هذه المقالة:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import pandas as pd
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
 
path = "/Users/Downloads/DisneylandReviews.csv"
df = pd.read_csv(path, encoding='ISO-8859-1')
STOPWORDS.update(['Disneyland', 'went', 'will',
                  'go', 'park', 'day', 'one'])
 
wordcloud = WordCloud(width = 350,
                      height = 350,
                      max_words = 1000,
                      min_font_size = 5,
                      max_font_size = 200,
                      stopwords = STOPWORDS,
                      background_color="white").generate(
                          ' '.join(df['Review_Text']))
 
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

سأوضح لك كيفية عمل هذا الكود بطريقة سهلة المتابعة خطوة بخطوة. لنبدأ!

هناك العديد من الطرق لإنشاء سحابة الكلمات، لكننا سنستخدم مكتبة WordCloud في هذا الدرس. WordCloud هي مكتبة Python تقوم بإنشاء سحابات الكلمات من ملفات نصية.

ما هي سحابة الكلمات؟

💬 التعريف: سحابة الكلمات (المعروفة أيضًا باسم سحابة العلامات) هي تمثيل مرئي للكلمات التي تظهر بشكل متكرر في نص معين. ويمكن استخدامها لتلخيص أجزاء كبيرة من النص أو لتوضيح مشاعر المستند.

السحابة الكلماتية هي تمثيل رسومي لبيانات نصية حيث يكون حجم كل كلمة متناسبًا مع عدد المرات التي تظهر فيها في النص.

يمكن استخدامها لتوضيح الكلمات الأكثر أهمية في مستند بسرعة أو للحصول على نظرة عامة حول مشاعر جزء من النص.

ما هي مكتبة WordCloud في بايثون؟

تعتبر مكتبة WordCloud مفتوحة المصدر وسهلة الاستخدام لإنشاء سحابات الكلمات في Python. تتيح لك إنشاء سحابات كلمات بتنسيقات مختلفة، بما في ذلك ملفات PDF وSVG وملفات الصور.

بالإضافة إلى ذلك، فهو يوفر عدة خيارات لتخصيص سحابة الكلمات الخاصة بك، بما في ذلك القدرة على التحكم في الخط واللون والتخطيط.

يمكنك تثبيته باستخدام الأمر التالي في الطرفية:

1
pip install wordcloud

كيفية تثبيت واستعمال pip في بايثون

أين يتم استخدام سحابة الكلمات؟

تعد سحابة الكلمات طريقة ممتعة وسهلة لتصور البيانات.

من خلال عرض الكلمات الأكثر شيوعًا في نص معين، يمكنهم تقديم رؤى حول الموضوعات العامة ونبرة النص.

  • يمكن استخدام سحابة الكلمات لأغراض مختلفة، بدءًا من التعليم وحتى التسويق.
  • يمكنهم استخدام سحابة الكلمات لبناء المفردات وتحليل النصوص في الفصل الدراسي.
  • يمكنك أيضًا استخدام سحابات الكلمات لإنشاء عملاء محتملين أو تتبع مشاعر العملاء.
  • بالنسبة للشركات، يمكن استخدام سحابة الكلمات لإنشاء مواد تسويقية، مثل منشورات المدونات والرسوم البيانية ومحتوى الوسائط الاجتماعية.
  • يمكن لسحابة الكلمات أيضًا مراقبة تعليقات العملاء أو تحديد المشاعر السلبية.
  • يمكن للطلاب أيضًا استخدام “سحابة الكلمات” للمشاركة في تحليل جزء من النص. من خلال تسليط الضوء بصريًا على الكلمات الأكثر أهمية، يمكن للسحابات مساعدة الطلاب على تحديد الأفكار الرئيسية وإقامة الروابط بين المفاهيم المختلفة.

إيجابيات سحابة الكلمات

مزايا استخدام سحابة الكلمات هي:

  • أولاً، يمكنك استخدامها لتلخيص نص كبير بسرعة وسهولة. إن تحديد الكلمات الأكثر استخدامًا في النص يمكن أن يوفر نظرة عامة سريعة على النقاط الرئيسية.
  • ثانيًا، باستخدام سحابة الكلمات، يمكنك تصور المشاعر في مستند بسرعة. يمكن أن يمنحك حجم الكلمات وموضعها في سحابة الكلمات نظرة ثاقبة على النغمة العامة للمستند. تعد هذه الأداة مفيدة عند تحليل نص كبير، مثل تعليقات العملاء أو المراجعات.
  • ثالثًا، يمكن أن تكون سحابة الكلمات أداة قيمة لتحديد الكلمات الرئيسية الأكثر أهمية في النص. من خلال تحليل توزيع الكلمات، يمكنك تحديد المصطلحات الأكثر بروزًا بسرعة. يمكن أن تكون سحابة الكلمات مفيدة عند مراقبة الاتجاهات المتغيرة أو تقييم الأهمية العامة.
  • رابعاً، يمكن استخدام سحابة الكلمات لإنشاء تصميمات تتضمن عناصر مرئية ونصية. من خلال مزج الكلمات والصور، يمكن لسحب الكلمات إضافة طبقة أخرى من المعنى إلى التصميم المثير بالفعل.

كيفية إنشاء سحابة الكلمات في بايثون؟

سوف نستخدم مراجعات ديزني لاند التي تم تنزيلها من Kaggle لإنشاء تصور بيانات سحابة الكلمات.

يمكنك تحميل الملف من هنا .

في هذا الملف، سنركز على عمود Review_Text لإنشاء سحابة كلمات. يمكنك تجاهل الأعمدة الأخرى.

أولاً، عليك تثبيت مكتبة WordCloud. يمكنك القيام بذلك بتشغيل الأمر التالي في الطرفية:

1
pip install wordcloud

بمجرد تثبيت WordCloud، يجب عليك استيراد مكتبات pandas وmatplotlib.pyplot وwordcloud.

1
2
3
import pandas as pd
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt

تقوم مكتبة pandas بقراءة ملف CSV الخاص بمراجعات Disneyland في إطار بيانات.

سنعرض لكم استخدام STOPWORDS في القسم القادم.

يقوم متغير إطار البيانات “df” بتخزين البيانات من ملف disneylandreviews.csv باستخدام الأمر التالي.

1
df = pd.read_csv("/Users/Downloads/DisneylandReviews.csv")

الآن قم بتشغيل البرنامج وشاهد النتيجة.

تحصل على خطأ فك تشفير Unicode التالي.

1
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 121844: invalid continuation byte

يعني خطأ فك ترميز Unicode أنه لم يتم فك ترميز السلسلة بشكل صحيح إلى UTF-8. يمكن أن يحدث هذا عند تنزيل ملف من Kaggle، وهو ليس بتنسيق الترميز الصحيح.

لحل هذه المشكلة، تحتاج إلى تحديد تنسيق الترميز للملف. يمكنك كتابة الأمر التالي في الطرفية:

1
df = pd.read_csv("/Users/Downloads/DisneylandReviews.csv",encoding='ISO-8859-1')

يخبر الترميز = ‘ISO-8859-1’ أن الملف موجود في تنسيق الترميز ISO-8859-1.

بعد ذلك، قم بإنشاء سحابة كلمات باستخدام مكتبة WordCloud.

1
wordcloud = WordCloud().generate(['Review_Text'])

في الكود أعلاه، يتم استخدام WordCloud().generate() لإنشاء كائن سحابة كلمات.

تأخذ الدالة generate() قائمة من السلاسل كمدخلات. القائمة التي نهتم بها هي Review_Text والتي تحتوي على مراجعات حول Disney Land. الكلمات من المراجعة التي تريد ظهورها في سحابة الكلمات الخاصة بك.

تفضل وقم بتشغيل الكود.

تحصل مرة أخرى على الخطأ التالي.

1
TypeError: expected string or bytes-like object

خطأ النوع يعني أن كائن سحابة الكلمات يتوقع سلسلة أو كائنًا يشبه البايتات. ولكن نوع البيانات هو سلسلة Pandas.

لحل هذه المشكلة، عليك كتابة الأمر التالي

1
wordcloud = WordCloud().generate(' '.join(df['Review_Text']))

يقوم الأمر أعلاه بتحويل السلسلة إلى نوع بيانات السلاسل.

1
plt.imshow(wordcloud)

سيؤدي استدعاء plt.imshow() إلى إنشاء صورة سحابة كلمات ثنائية الأبعاد.

ثم قم بإزالة المحور باستخدام الأمر التالي:

1
plt.axis("off")

تؤدي معلمة "off" إلى إزالة المحور من الرسم البياني.

وأخيرًا، تعرض الأوامر أدناه صورة سحابة الكلمات.

1
plt.show()

بمجرد تشغيل البرنامج سوف ترى صورة سحابة الكلمات كما هو موضح أدناه:

كلمة “Park” أكبر حجمًا، مما يشير إلى ظهور هذه الكلمة بشكل أكبر في المراجعات.

ولكن هناك كلمات مثل "Disneyland""went""will""park""go""day", و "One" التي لا علاقة لها بالتحليل.

لذا، يمكننا استبعادهم من سحابة الكلمات باستخدام الأمر التالي باستخدام معلمة stopwords.

1
2
STOPWORDS.update(['Disneyland', 'went','will,'go',"park", "day","one"])
wordcloud = WordCloud(stopwords = STOPWORDS).generate(' '.join(df['Review_Text']))

ستقوم STOPWORDS بإزالة جميع الكلمات المحددة من النص قبل إنشاء سحابة الكلمات. تقوم وظيفة سحابة الكلمات بإدراج معلمة STOPWORDS.

الآن قم بإعادة تشغيل البرنامج، وسوف تحصل على صورة سحابة الكلمات التالية.

يمكنك أيضًا تخصيص مظهر سحابة الكلمات الخاصة بك عن طريق تغيير حجم الخط ولون الخلفية.

يمكن ضبط الحد الأقصى لحجم الخط باستخدام خيار max_font_size، ويمكن ضبط الحد الأدنى لحجم الخط باستخدام خيار min_font_size. ويمكن ضبط لون خلفية سحابة الكلمات باستخدام خيار background_color.

1
2
wordcloud = WordCloud(min_font_size = 10, max_font_size = 70,
                      stopwords = STOPWORDS, background_color="white").generate(' '.join(df['Review_Text']))

يقوم الكود بتعيين حجم الخط إلى حد أدنى 10 نقاط وحد أقصى 70 نقطة، ولون الخلفية إلى الأبيض.

أعد تشغيل البرنامج، وسوف تحصل على صورة سحابة الكلمات التالية.

بالإضافة إلى ذلك، يمكنك تحديد الحد الأقصى لعدد الكلمات التي سيتم إنشاؤها باستخدام معلمة max_words.

1
2
wordcloud = WordCloud(min_font_size = 5, max_font_size = 100,
                      max_words = 1000, stopwords = STOPWORDS, background_color="white").generate(' '.join(df['Review_Text']))

يحدد الكود أعلاه الحد الأقصى لعدد الكلمات التي يتم إنشاؤها في سحابة الكلمات إلى 1000. كما يجب تغيير حجم الخط إلى 5 و100.

أعد تشغيل البرنامج، وسوف تحصل على سحابة الكلمات التالية.

كما ترى، عندما تزيد عدد الكلمات إلى 1000، فإن الكلمات التي تتكرر أكثر في المراجعات تظهر بحجم أكبر.

وهذا يجعل من السهل معرفة الكلمات البارزة. في سحابة الكلمات هذه، يمكنك أن ترى أن كلمة “ride” هي الكلمة الأكبر.

يمكنك تحديد العرض والارتفاع لصورة سحابة الكلمات.

1
2
3
wordcloud = WordCloud(width=350, height=350, min_font_size=5,
                      max_font_size=100, max_words=1000,
                      stopwords=STOPWORDS, background_color="white").generate(' '.join(df['Review_Text']))

يضبط الكود أعلاه عرض وارتفاع سحابة الكلمات إلى 350.

أعد تشغيل البرنامج، وسوف تحصل على صورة سحابة الكلمات التالية.

الآن دعونا نقوم بتحليل سحابة الكلمات للحصول على بعض الأفكار.

تظهر كلمة “ride” بحجم كبير في سحابة الكلمات لأنها الكلمة الأكثر تكرارًا في النص. يحب معظم الأشخاص ركوب الخيل في ديزني لاند، وهو ما ينعكس في سحابة الكلمات.

بعد ذلك، أصبحت كلمة “attraction” شائعة أيضًا. فهي تشير إلى أن الناس ينجذبون إلى الألعاب والمعالم السياحية في ديزني لاند.

كما تظهر كلمة “time” بشكل متكرر، حيث تشير الكلمة إلى أن الناس يقضون وقتًا طويلاً في ديزني لاند.

كان موظفو ديزني لاند رائعين للغاية. وينعكس ذلك في سحابة الكلمات حيث تظهر كلمة “nice” بشكل متكرر. ومن خلال المراجعات، يمكننا أن نرى أن هناك المزيد من الطوابير وأن الناس ينتظرون لفترة طويلة، وهو ما ينعكس أيضًا في سحابة الكلمات.

وتُعد كلمتا “lines” و”queue” أيضًا أكثر بروزًا في النص.

لكن كلمة “hotel” ليست شائعة في النص وتمثل أن الناس لا يفضلون البقاء في الفندق والعودة إلى المنزل بعد قضاء اليوم بأكمله في ديزني لاند.

تُعد سحابة الكلمات طريقة رائعة لتلخيص أجزاء كبيرة من النص أو تصور المشاعر الموجودة في المستند.

تعد سحابة الكلمات طريقة رائعة لفهم النصوص الكبيرة ويمكن استخدامها لأغراض مختلفة.

أظهرت هذه التدوينة كيفية إنشاء سحابات الكلمات باستخدام مكتبة WordCloud.

لقد ناقشنا أيضًا كيفية تخصيص مظهر سحابة الكلمات وقمنا بتحليل بيانات سحابة الكلمات للحصول على رؤى حول النص.

ليست هناك تعليقات:

إرسال تعليق

😂11 مكتبة بايثون ممتعة لجعل يومك أفضل☀️

  في هذه المقالة سأقدم لك 11 مكتبة استمتعت باللعب بها وفكرت في مشاركتها معك.