كيفية إعداد ملخص نصوص باستخدام Python: دليل شامل (2023)

مقدمة

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

Top Articles
Latest Posts
Article information

Author: Msgr. Refugio Daniel

Last Updated: 04/12/2023

Views: 5893

Rating: 4.3 / 5 (54 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Msgr. Refugio Daniel

Birthday: 1999-09-15

Address: 8416 Beatty Center, Derekfort, VA 72092-0500

Phone: +6838967160603

Job: Mining Executive

Hobby: Woodworking, Knitting, Fishing, Coffee roasting, Kayaking, Horseback riding, Kite flying

Introduction: My name is Msgr. Refugio Daniel, I am a fine, precious, encouraging, calm, glamorous, vivacious, friendly person who loves writing and wants to share my knowledge and understanding with you.