القائمة الرئيسية

الصفحات

برمجة تطبيق البحث عن النصوص باستخدام بايثون ومكتبة NLTK

بايثون، NLTK، معالجة اللغة الطبيعية (NLP)، تحليل النصوص، البحث عن الكلمات، استخراج الكلمات المفتاحية، التجذير (Stemming)، التصريف (Lemmatization)، TF-IDF، واجهة المستخدم، tkinter، كيفية برمجة البحث عن الكلمات في النصوص باستخدام بايثون و NLTK، البحث عن كلمات مفتاحية باستخدام TF-IDF في بايثون و NLTK، NLP، tkinter، Stemming، Lemmatization، برمجة تطبيق البحث عن النصوص باستخدام بايثون ومكتبة NLTK، كيفية برمجة البحث عن الكلمات في النصوص باستخدام بايثون و NLTK، خطوات برمجة تطبيق البحث عن النصوص باستخدام بايثون ومكتبة NLTK، تحميل النص وتحضيره للبحث باستخدام بايثون و NLTK، البحث عن كلمة معينة في النص باستخدام بايثون و NLTK، البحث عن الكلمات المشابهة باستخدام التجذير والتصريف في بايثون و NLTK، البحث عن الكلمات الأكثر تكرارًا في النص باستخدام بايثون و NLTK، البحث عن كلمات مفتاحية باستخدام TF-IDF في بايثون و NLTK، استخراج الكلمات المفتاحية باستخدام بايثون ومكتبة NLTK، إنشاء واجهة مستخدم بسيطة لتطبيق البحث عن النصوص باستخدام tkinter، تحليل النصوص واستخراج الكلمات المفتاحية باستخدام بايثون و NLTK، بناء تطبيق Python لاستخراج الكلمات المفتاحية من النصوص باستخدام NLTK، معالجة اللغة الطبيعية (NLP) وأهميتها في الذكاء الاصطناعي، تحميل الموارد المطلوبة من مكتبة NLTK لتطبيق البحث عن النصوص، إزالة كلمات التوقف (stopwords) وعلامات الترقيم من النص باستخدام بايثون و NLTK، حساب تكرار الكلمات في النص باستخدام بايثون و NLTK، دمج طريقتي البحث عن الكلمات في تطبيق واحد باستخدام tkinter، Programming، create text search app in Python and NLTK، Programming a text search application using Python and the NLTK library، معالجة اللغة الطبيعية (NLP)، البحث عن الكلمات باستخدام بايثون، مكتبة NLTK في بايثون، البحث في النصوص الكبيرة، تحليل النصوص في بايثون، البحث عن الكلمات المفتاحية، استخراج الكلمات من النصوص، البحث الذكي في النصوص، تحليل النصوص باستخدام الذكاء الاصطناعي، شرح برمجة تطبيق لتحليل المشاعر من النصوص باستخدام بايثون ومكتبة NLTK،



برمجة تطبيق البحث عن النصوص باستخدام بايثون ومكتبة NLTK



تُعتبر معالجة اللغة الطبيعية (NLP) من المجالات المهمة في الذكاء الاصطناعي،
 وتستخدم لتحليل النصوص واستخراج المعلومات منها، في هذا المقال سنتعرف على 
كيفية برمجة البحث عن الكلمات في النصوص باستخدام لغة بايثون ومكتبة NLTK
 التي توفر أدوات قوية لمعالجة النصوص.


الخطوات الاساسية لبرمجة تطبيق البحث عن النصوص باستخدام بايثون ومكتبة NLTK



قبل أن نبدأ، تأكد من تثبيت بايثون والمكتبات المطلوبة. 
يمكنك تثبيت NLTK باستخدام الأمر التالي:
pip install nltk
* ثم نقوم بتحميل الموارد المطلوبة من مكتبة NLTK:
import nltk
nltk.download('punkt')
nltk.download('stopwords')
nltk.download('wordnet')

الخطوة 1: تحميل النص وتحضيره للبحث
* نبدأ بقراءة النصوص ومعالجتها:

        

from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import string

def preprocess_text(text):
    # تحويل النص إلى حروف صغيرة
    text = text.lower()
    
    # إزالة علامات الترقيم
    text = text.translate(str.maketrans('', '', string.punctuation))
    
    # تقسيم النص إلى كلمات
    words = word_tokenize(text)
    
    # إزالة كلمات التوقف (stopwords)
    stop_words = set(stopwords.words('english'))
    filtered_words = [word for word in words if word not in stop_words]
    
    return filtered_words

# مثال على نص
text = "Natural Language Processing (NLP) is a fascinating field in AI!"
processed_words = preprocess_text(text)
print(processed_words)


الخطوة 2: البحث عن كلمة معينة في النص
بعد تجهيز النصوص، يمكننا البحث عن الكلمات المستهدفة:

        

def search_word(text, target_word):
    words = preprocess_text(text)
    return target_word.lower() in words

# مثال على البحث
word_to_search = "ai"
is_found = search_word(text, word_to_search)
print(f'الكلمة "{word_to_search}" موجودة؟ {is_found}')


الخطوة 3: البحث عن الكلمات المشابهة باستخدام التجذير (Stemming) و
التصريف (Lemmatization)
لتوسيع البحث، نستخدم التجذير (Stemming) والتصريف (Lemmatization):

        


from nltk.stem import PorterStemmer, WordNetLemmatizer

def advanced_search(text, target_word):
    words = preprocess_text(text)
    
    # التجذير
    stemmer = PorterStemmer()
    stemmed_words = [stemmer.stem(word) for word in words]
    
    # التصريف
    lemmatizer = WordNetLemmatizer()
    lemmatized_words = [lemmatizer.lemmatize(word) for word in words]
    
    # البحث عن الكلمة في أي من القائمتين
    return target_word.lower() in words or target_word in stemmed_words or target_word in lemmatized_words

# مثال على البحث المتقدم
is_found_advanced = advanced_search(text, word_to_search)
print(f'الكلمة "{word_to_search}" موجودة بطريقة متقدمة؟ {is_found_advanced}')


الخطوة 4: البحث عن الكلمات الأكثر تكرارًا في النص

        

from collections import Counter

def get_most_frequent_words(text, num_words=5):
    words = preprocess_text(text)
    word_freq = Counter(words)
    return word_freq.most_common(num_words)

# مثال
most_frequent = get_most_frequent_words(text)
print("أكثر الكلمات تكرارًا:", most_frequent)





الخطوة 5: البحث عن كلمات مفتاحية باستخدام TF-IDF




    from sklearn.feature_extraction.text import TfidfVectorizer

def extract_keywords(texts, num_keywords=5):
    vectorizer = TfidfVectorizer()
    tfidf_matrix = vectorizer.fit_transform(texts)
    feature_names = vectorizer.get_feature_names_out()
    scores = tfidf_matrix.toarray().sum(axis=0)
    keyword_scores = sorted(zip(feature_names, scores), key=lambda x: x[1], reverse=True)
    return keyword_scores[:num_keywords]

# مثال
texts = ["Natural Language Processing is an important field in AI.", "Machine Learning and NLP are related fields."]
keywords = extract_keywords(texts)
print("الكلمات المفتاحية:", keywords)



      

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


يعتبر تحليل النصوص واستخراج الكلمات المفتاحية من العمليات الأساسية في
 معالجة اللغة الطبيعية (NLP)، سنشرح كيفية بناء تطبيق باستخدام لغة Python ومكتبة
 NLTK لاستخراج الكلمات المفتاحية بطريقتين : إدخال النص مباشرة و رفع ملف نصي.

** الأدوات المطلوبة **

قبل البدء، تأكد من تثبيت المكتبات المطلوبة باستخدام الأمر التالي:
pip install nltk

* ثم نقوم بتحميل الموارد الأساسية من NLTK :
import nltk
nltk.download('stopwords')
nltk.download('punkt')
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from collections import Counter

--

1. البحث عن الكلمات من نص مكتوب مباشرة

في هذه الطريقة، سيقوم المستخدم بكتابة النص داخل التطبيق، 
وسيتم استخراج الكلمات المفتاحية منه مباشرة :

        

def extract_keywords(text):
    words = word_tokenize(text)  # تقسيم النص إلى كلمات
    words = [word.lower() for word in words if word.isalnum()]  # إزالة الرموز الخاصة
    words = [word for word in words if word not in stopwords.words('english')]  # إزالة الكلمات الشائعة
    word_freq = Counter(words)  # حساب تكرار الكلمات
    return word_freq.most_common(10)  # استخراج أكثر 10 كلمات شيوعًا

# تجربة التطبيق
user_text = input("أدخل النص هنا: ")
keywords = extract_keywords(user_text)
print("الكلمات المفتاحية:", keywords)


* شرح الكود: يتم تقسيم النص إلى كلمات، يتم إزالة الكلمات الشائعة (مثل: and, the, is) ،
يتم حساب تكرار الكلمات واستخراج أكثر 10 كلمات شيوعًا.

2. البحث عن الكلمات من ملف نصي

في هذه الطريقة، سيتم رفع ملف نصي وتحليل محتواه لاستخراج الكلمات المفتاحية :

        

def extract_keywords_from_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        text = file.read()
    
    words = word_tokenize(text)
    words = [word.lower() for word in words if word.isalnum()]
    words = [word for word in words if word not in stopwords.words('english')]
    
    word_freq = Counter(words)
    return word_freq.most_common(10)

# تجربة التطبيق
file_path = "test.txt"  # ضع هنا مسار الملف النصي
keywords = extract_keywords_from_file(file_path)
print("الكلمات المفتاحية:", keywords)


* شرح الكود : يفتح البرنامج الملف النصي ويقرأ محتواه ،
يتم تنفيذ نفس عملية معالجة النصوص كما في الطريقة الأولى.

3. إنشاء واجهة مستخدم بسيطة لدمج الطريقتين

يمكننا استخدام مكتبة tkinter لإنشاء واجهة بسيطة تتيح للمستخدم اختيار الطريقة التي يريدها :

        


import tkinter as tk
from tkinter import filedialog

def process_text():
    text = text_input.get("1.0", tk.END)
    keywords = extract_keywords(text)
    result_label.config(text=f"الكلمات المفتاحية: {keywords}")

def process_file():
    file_path = filedialog.askopenfilename()
    if file_path:
        keywords = extract_keywords_from_file(file_path)
        result_label.config(text=f"الكلمات المفتاحية: {keywords}")

# إنشاء الواجهة
root = tk.Tk()
root.title("تحليل النصوص")

text_input = tk.Text(root, height=5, width=50)
text_input.pack()

button_text = tk.Button(root, text="تحليل النص المكتوب", command=process_text)
button_text.pack()

button_file = tk.Button(root, text="رفع ملف وتحليله", command=process_file)
button_file.pack()

result_label = tk.Label(root, text="")
result_label.pack()

root.mainloop()


* شرح الكود : يتم إنشاء واجهة تحتوي على مربع نص وزرين:
- الزر الأول يستخدم النص المكتوب مباشرة.
- الزر الثاني يسمح للمستخدم برفع ملف نصي.
عند الضغط على أي زر، يتم استخراج الكلمات المفتاحية وعرضها في الواجهة.

* خاتمة
تعلمنا كيفية بناء تطبيق Python لاستخراج الكلمات المفتاحية من النصوص باستخدام NLTK.
قدمنا طريقتين: إدخال النص يدويًا أو رفع ملف.
استخدمنا tkinter لإنشاء واجهة رسومية تفاعلية.
في هذا المقال، تعلمنا كيفية برمجة البحث عن الكلمات باستخدام بايثون و مكتبة NLTK، 
مع تقديم حلول للبحث المباشر والمتقدم، بالإضافة إلى تحليل تكرار الكلمات واستخدام
 TF-IDF لاستخراج الكلمات المفتاحية، يمكنك تحسين التطبيق بإضافة خوارزميات أكثر تقدمًا وجعله أكثر ذكاءً.




أنت الان في اول موضوع
جدول المحتويات