مقدمة
في هذا الدليل، سنقدم لك طريقة فعّالة لإعداد ملخص للنصوص باستخدام لغة البرمجة Python. يعد هذا الأسلوب أحد الطرق المبتكرة لتوفير الوقت وتسهيل عمليات القراءة والفهم للمحتوى النصي.
التحضير واستخراج البيانات
لنبدأ بإعداد البيئة، يُفضل استخدام مكتبة goose3 لاستخراج البيانات من الإنترنت. يمكنك تثبيت هذه المكتبة بسهولة في بيئة Google Colab.
!pip install goose3
ثم يمكننا استيراد المكتبات اللازمة:
import nltk
from goose3 import Goose
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize, sent_tokenize
from nltk.probability import FreqDist
import heapq
مرحلة معالجة النصوص
بعد الحصول على النص من الموقع المستهدف، يجب أولاً التخلص من الكلمات الزائدة وتنظيف النص. نقوم بإزالة الفراغات الزائدة، والكلمات التي لا تضيف قيمة كالتوقف، والعلامات الترقيمية.
def preprocess_text(raw_text):
# إزالة الفراغات الزائدة
cleaned_text = ' '.join(raw_text.split())
# إزالة التوقف والعلامات الترقيمية
stop_words = set(stopwords.words('portuguese'))
word_tokens = word_tokenize(cleaned_text)
filtered_text = [word for word in word_tokens if word.lower() not in stop_words and word.isalpha()]
# إعادة تشكيل النص
processed_text = ' '.join(filtered_text)
return processed_text
تحليل توزيع الكلمات
نقوم بحساب توزيع الكلمات في النص، حيث يساعدنا ذلك في فهم الكلمات الأكثر تكرارًا وأهميتها.
def word_frequency_analysis(processed_text):
# حساب توزيع الكلمات
freq_dist = FreqDist(word_tokenize(processed_text))
# حساب التوزيع النسبي لكل كلمة
total_words = len(word_tokenize(processed_text))
proportional_freq = {word: freq / total_words for word, freq in freq_dist.items()}
return proportional_freq
تقسيم النص إلى جمل
نقوم بتقسيم النص إلى جمل لتسهيل عملية تقييم أهمية كل جملة.
def tokenize_sentences(raw_text):
return sent_tokenize(raw_text)
تقييم الجمل وترتيبها
نخصص درجة لكل جملة استنادًا إلى تراكم التوزيع النسبي لكل كلمة فيها. ثم نقوم بترتيب الجمل حسب تلك الدرجات.
def rate_and_order_sentences(sentences, proportional_freq):
sentence_scores = {}
for sentence in sentences:
for word, freq in proportional_freq.items():
if word in sentence.lower():
if sentence not in sentence_scores:
sentence_scores[sentence] = freq
else:
sentence_scores[sentence] += freq
# ترتيب الجمل حسب الدرجات
summary_sentences = heapq.nlargest(10, sentence_scores, key=sentence_scores.get)
return summary_sentences
إنشاء الملخص
أخيرًا، نقوم بتجميع الجمل الأفضل لإنشاء الملخص وتنسيقه بشكل مناسب للعرض.
def generate_summary(original_text, summary_sentences):
# إعداد النص النهائي
summary_text = ' '.join(summary_sentences)
# إظهار الملخص بتنسيق HTML
display(HTML(summary_text))
return summary_text
الختام
هذا هو دليلنا الشامل لإعداد ملخص للنصوص باستخدام Python. يمكنك استخدام هذه الأداة لتوفير الوقت وتسهيل فهم المحتوى النصي. جرّبها وشاركنا تجربتك وتعليقاتك في الأسفل.