لتصوير بيانات النصوص العربية في بايثون بإستخدام سحابة الكلمات (word cloud) يمكن إتباع الخطوات التالية:
اولاً: تفعيل الحزم (packages) اللازمة وهي:
In:
import pandas as pd
from wordcloud import WordCloud
from arabic_reshaper import arabic_reshaper
from bidi.algorithm import get_display
ملاحظة: لتحميل حزمة bidi.algorithm إستخدم الكود:
In:
python -m pip install python-bidi
ثانيا: في مجلد الحزمة wordcloud استبدل ملف الخط DroidSansMono بأي ملف خط عربي مع أبقاء نفس الأسم. مثلاً استخدم الخط.
ثالثاً: استخدام الأكواد الموضحة في المثال التالي:
سوف نستخدم بيانات تقييم الفنادق التي تم سحبها من TripAdvisor والمتوفرة على الرابط. بعد حفظ البيانات يمكن قراءتها في بايثون بإستخدام الكود:
In: import os os.chdir('****') hotel_data = pd.read_csv('HTL.txt',sep=',')
حيث يتم إستبدال **** بدليل النظام الذي يحدد موقع البيانات. بعد ذلك نعمل تهيئة بسيطة للبيانات بواسطة الكود التالي:
In:
text = hotel_data['text']
text = [''.join(sentence) for sentence in text]
text = ''.join(text)
بعد ذلك يمكن تصوير البيانات النصية كما يلي:
In:
reshaped_text = arabic_reshaper.reshape(text)
arabic_text = get_display(reshaped_text)
wordcloud = WordCloud(width=700, height=300, background_color="white").generate(arabic_text)
wordcloud.to_image()
والذي يعطي الشكل التالي:
ملاحظة: هناك عدد من الخيارات الخاصة بالدالة WordCloud التي يمكنها التحكم في شكل سحابة الكلمات مثل:
البارامتر | الوصف | الإفتراضي |
max_words | الحد الأقصى من الكلمات | 200 |
max_font_size | حجم الخط لأكبر كلمة | ارتفاع الصورة |