كتابة سكربت لتحليل النصوص باستخدام مكتبة NLTK في Python
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 10 سبتمبر 2024محتوى المقال
- ما هي مكتبة NLTK؟
- كيفية تثبيت NLTK
- تحليل النصوص باستخدام NLTK
- تطبيقات متقدمة لتحليل النصوص باستخدام NLTK
- مقارنة بين NLTK والمكتبات الأخرى
- الخلاصة
تحليل النصوص هو أحد المجالات الهامة في معالجة اللغة الطبيعية (NLP)، ويُستخدم لفهم وتحليل النصوص المكتوبة بلغة بشرية. في Python، تُعد مكتبة NLTK (Natural Language Toolkit) من أقوى الأدوات المتاحة لتحليل النصوص. في هذا المقال، سنتعلم كيفية كتابة سكربت بسيط لتحليل النصوص باستخدام NLTK، بما في ذلك تقسيم النصوص، إزالة الكلمات الشائعة، وتصنيف الكلمات.
ما هي مكتبة NLTK؟
مكتبة NLTK هي مكتبة شاملة في Python تُستخدم لمعالجة اللغة الطبيعية. توفر NLTK أدوات لتحليل النصوص، مثل تقسيم الكلمات والجمل، إزالة الكلمات الشائعة (stop words)، تصنيف النصوص، وتنفيذ عمليات تحليل متقدمة. إنها أداة قوية تُستخدم بشكل واسع في البحث الأكاديمي وتطبيقات الصناعة.
كيفية تثبيت NLTK
لتثبيت مكتبة NLTK، يمكنك استخدام pip عبر سطر الأوامر:
pip install nltk
بعد تثبيت المكتبة، يجب عليك تنزيل بعض الحزم والموارد التي توفرها NLTK مثل الكلمات الشائعة وقاموس التصنيفات. يمكنك القيام بذلك داخل Python:
import nltk
nltk.download('punkt')
nltk.download('stopwords')
في هذا المثال، نقوم بتنزيل الحزم اللازمة لتقسيم النصوص إلى جمل وكلمات، بالإضافة إلى مجموعة الكلمات الشائعة.
تحليل النصوص باستخدام NLTK
سنبدأ بكتابة سكربت لتحليل نص بسيط. الخطوات الأساسية تتضمن تقسيم النص إلى جمل، تقسيم الجمل إلى كلمات، وإزالة الكلمات الشائعة. لنبدأ بهذه الخطوات الأساسية:
تقسيم النص إلى جمل وكلمات
أول خطوة في تحليل النص هي تقسيمه إلى جمل ثم تقسيم كل جملة إلى كلمات. NLTK توفر أدوات بسيطة للقيام بذلك:
from nltk.tokenize import sent_tokenize, word_tokenize
text = "أحب البرمجة بلغة Python. معالجة اللغة الطبيعية مجال مثير!"
# تقسيم النص إلى جمل
sentences = sent_tokenize(text)
print(sentences)
# تقسيم الجمل إلى كلمات
words = word_tokenize(text)
print(words)
في هذا المثال، نقوم أولاً بتقسيم النص إلى جمل باستخدام sent_tokenize
، ثم نقسم كل جملة إلى كلمات باستخدام word_tokenize
. ناتج هذا الكود هو قائمة بالجمل وقائمة بالكلمات.
إزالة الكلمات الشائعة (Stop Words)
الكلمات الشائعة مثل "و"، "في"، و "من" لا تحمل عادةً معنىً كبيرًا عند تحليل النصوص، لذا من المفيد إزالتها. توفر NLTK قائمة بالكلمات الشائعة التي يمكن استخدامها لهذا الغرض:
from nltk.corpus import stopwords
stop_words = set(stopwords.words('arabic'))
filtered_words = [word for word in words if word not in stop_words]
print(filtered_words)
في هذا المثال، نقوم بتحميل قائمة الكلمات الشائعة باللغة العربية باستخدام stopwords.words
، ثم نقوم بتصفية الكلمات الموجودة في النص لإزالة الكلمات الشائعة.
تصنيف الكلمات
بعد تقسيم الكلمات وإزالة الكلمات الشائعة، يمكننا تصنيف الكلمات حسب نوعها (مثل فعل، اسم، ...). توفر NLTK أدوات لتصنيف الكلمات بناءً على سياقها في الجملة:
from nltk import pos_tag
tagged_words = pos_tag(filtered_words)
print(tagged_words)
في هذا المثال، نستخدم pos_tag
لتصنيف الكلمات المتبقية بعد إزالة الكلمات الشائعة. كل كلمة تحصل على تصنيف يشير إلى نوعها النحوي.
تطبيقات متقدمة لتحليل النصوص باستخدام NLTK
بجانب التحليل الأساسي، توفر مكتبة NLTK أدوات متقدمة لتحليل النصوص. إليك بعض الأمثلة:
تحليل الترددات (Word Frequencies)
يمكنك تحليل تردد الكلمات في النص لمعرفة الكلمات الأكثر استخدامًا:
from nltk.probability import FreqDist
freq_dist = FreqDist(filtered_words)
print(freq_dist.most_common(5))
في هذا المثال، نستخدم FreqDist
لحساب تردد الكلمات وعرض الكلمات الخمس الأكثر شيوعًا في النص.
تحليل العواطف (Sentiment Analysis)
تحليل العواطف هو أحد التطبيقات المتقدمة لتحليل النصوص، حيث يمكن تحديد ما إذا كان النص يحمل مشاعر إيجابية أو سلبية:
from nltk.sentiment import SentimentIntensityAnalyzer
sia = SentimentIntensityAnalyzer()
sentiment = sia.polarity_scores(text)
print(sentiment)
في هذا المثال، نستخدم SentimentIntensityAnalyzer
لتحليل العواطف في النص وعرض نتيجة التحليل.
مقارنة بين NLTK والمكتبات الأخرى
تُعتبر NLTK من المكتبات الرائدة في معالجة اللغة الطبيعية، ولكن هناك مكتبات أخرى مثل spaCy
و TextBlob
تقدم ميزات مختلفة:
- NLTK: مكتبة شاملة ومناسبة للأبحاث الأكاديمية، ولكنها قد تكون بطيئة بعض الشيء في التطبيقات الكبيرة.
- spaCy: مكتبة سريعة وحديثة، مناسبة للتطبيقات الصناعية وتدعم تحليل النصوص بكفاءة عالية.
- TextBlob: مكتبة سهلة الاستخدام ومناسبة للتطبيقات البسيطة، خاصة في تحليل العواطف.
الخلاصة
مكتبة NLTK توفر مجموعة قوية من الأدوات لتحليل النصوص في Python. بدءًا من تقسيم النصوص وإزالة الكلمات الشائعة، وصولًا إلى تصنيف الكلمات وتحليل العواطف، يمكنك استخدام NLTK لتنفيذ مجموعة واسعة من المهام في معالجة اللغة الطبيعية. بفهم أساسيات NLTK، يمكنك تطوير تطبيقات قوية لتحليل النصوص بفعالية.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- كيفية التعامل مع البيانات من قواعد البيانات باستخدام Python و SQLite
- بناء نماذج تعلم الآلة باستخدام مكتبة Scikit-Learn في Python
- كيفية استخدام مكتبة Pandas لتحليل البيانات في Python
- كيفية إنشاء وتنفيذ عمليات التزامن باستخدام asyncio في Python
- كتابة سكربت لاستخراج البيانات من مواقع الويب باستخدام Beautiful Soup في Python
- إنشاء واجهات رسومية باستخدام مكتبة PyQt في Python
- كيفية التعامل مع ملفات JSON في Python
- كيفية استخدام مكتبة Matplotlib لإنشاء الرسوم البيانية في Python
- بناء واجهة برمجة تطبيقات (API) باستخدام Flask في Python
- كيفية استخدام مكتبة NumPy لإجراء العمليات الحسابية في Python