إياد أحمد نشر 17 ديسمبر 2021 أرسل تقرير نشر 17 ديسمبر 2021 هل يمكننا القيام بعملية Text Summarization من خلال NLTK؟ أو أي طريقة أخرى؟ مع توضيح الطريقة.. اقتباس
1 Ali Haidar Ahmad نشر 17 ديسمبر 2021 أرسل تقرير نشر 17 ديسمبر 2021 لاتوجد دالة أو وحدة جاهزة في NLTK للقيام بذلك مباشرةً، لكن يمكنك استخدام NLTK العملية كما في المثال التالي: # استيراد الوحدات from nltk.tokenize import word_tokenize, sent_tokenize import nltk from nltk.corpus import stopwords # قم بتحديد النص المراد تلخيصه text = """ """ # nltk الحصول على كلمات التوقف المعرفة في stopWords = set(stopwords.words("english")) # تقسيم النص إلى وحدات tokens = word_tokenize(text) # إنشاء قاموس للاحتفاظ بنتيجة كل كلمة # score تسمى # نقصد بالنتيجة عدد المرات التي تظهر فيها كل كلمة بعد إزالة كلمات التوقف freq = dict() for w in tokens.lower(): if w in stopWords: continue if w in freq: freq[w] += 1 else: freq[w] = 1 # freqTable الخطوة التالية هي تعيين درجة لكل جملة بناءً على الكلمات التي تحتوي عليها وجدول التردد # score إنشاء قاموس للاحتفاظ بنتيجة كل جملة all_sentences = sent_tokenize(text) sentenceScore = dict() # الآن نقوم بالمرور على كل جملة for sentence in all_sentences: for w, freq in freq.items(): if w in sentence.lower(): if sentence in sentenceScore: sentenceScore[sentence] += freq else: sentenceScore[sentence] = freq """ # الآن الخطوة التالية هي بتعيين درجة معينة لمقارنة الجمل في النص # scores وتتمثل الطريقة الأبسط لمقارنة ال # الجملة score في إيجاد متوسط # مناسبة threshold ويمكن أن يكون المتوسط نفسه """ s = 0 for sent in sentenceScore: s += sentenceScore[sent] avg = s // len(sentenceScore) # نقوم الآن بتطبيق قيمة العتبة وتخزين الجمل بالترتيب في الملخص. smy = '' for sent in all_sentences: if (sent in sentenceScore) and (sentenceScore[sent] > (1.2 * average)): smy += " " + sent print(smy) اقتباس
السؤال
إياد أحمد
هل يمكننا القيام بعملية Text Summarization من خلال NLTK؟ أو أي طريقة أخرى؟ مع توضيح الطريقة..
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.