كتابة سكربت لتحليل النصوص باستخدام مكتبة NLTK في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 10 سبتمبر 2024

محتوى المقال

كتابة سكربت لتحليل النصوص باستخدام مكتبة NLTK في Python

تحليل النصوص هو أحد المجالات الهامة في معالجة اللغة الطبيعية (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، يمكنك تطوير تطبيقات قوية لتحليل النصوص بفعالية.

طور مهاراتك: مقالات يجب قراءتها في البرمجة