مساعد بحث PubMed المتقدم: أتمتة البحث وتحليل البيانات باستخدام LangChain

يقدم هذا البرنامج التعليمي شرحًا تفصيليًا لبناء خط أنابيب مُحسّن لاستعلام ومُعالجة البيانات من PubMed، قاعدة بيانات المنشورات الطبية الحيوية. سنستخدم LangChain لتنفيذ عمليات البحث المُستهدفة، وتحليل النتائج، وتخزينها، وعرضها بيانياً.

المكونات والتركيب

سنبدأ بتثبيت الحزم الأساسية في Python التي سنحتاجها، والتي تتضمن:

  • langchain-community: للتفاعل مع أدوات LangChain.
  • xmltodict: لتحويل بيانات XML من PubMed إلى قواميس Python.
  • pandas: للتعامل مع البيانات بشكل هيكلي.
  • matplotlib و seaborn: لإنشاء الرسوم البيانية.
  • wordcloud: لإنشاء سحابة الكلمات.
  • google-generativeai و langchain-google-genai: للتكامل مع نموذج لغة Gemini من جوجل (اختياري).

بعد التثبيت، سنقوم باستيراد المكتبات اللازمة، وكتم تحذيرات الأخطاء، وإعداد أداة PubmedQueryRun و عميل ChatGoogleGenerativeAI (إن تم استخدامه).

فئة باحث PubMed المتقدم (AdvancedPubMedResearcher)

تُعرف هذه الفئة لتسهيل عملية البحث في PubMed وتقديم تحليلات متقدمة:

الخصائص:

  • pubmed_tool: أداة PubmedQueryRun للبحث في PubMed.
  • research_cache: قاموس لتخزين نتائج البحث السابقة.
  • llm: نموذج لغة كبير (LLM) اختياري من Gemini (يتطلب مفتاح API).
  • agent: وكيل LangChain (اختياري) للبحث الذكي باستخدام LLM.

الأساليب:

  • __init__(self, gemini_api_key=None): بناء الكائن مع إمكانية ربطه بـ Gemini.
  • _create_agent(self): إنشاء وكيل LangChain مع أداة PubMed.
  • search_papers(self, query, max_results=5): البحث في PubMed وتحليل النتائج.
  • _parse_pubmed_results(self, results): تحليل نتائج البحث واستخراج البيانات المهمة مثل التاريخ، العنوان، والملخص.
  • analyze_research_trends(self, queries): تحليل الاتجاهات البحثية لمجموعة من الاستعلامات وعرضها بيانياً.
  • _create_visualizations(self, df, topic_counts): إنشاء الرسوم البيانية، بما في ذلك:
    • رسم بياني يُظهر عدد الأوراق البحثية لكل موضوع.
    • رسم بياني يُظهر توزيع أطوال الملخصات.
    • رسم بياني يُظهر توزيع تواريخ النشر.
    • سحابة كلمات تُظهر الكلمات الأكثر شيوعًا في عناوين الأوراق.
  • comparative_analysis(self, topic1, topic2): مقارنة موضوعين بحثيين.
  • intelligent_query(self, question): استخدام وكيل AI للإجابة على أسئلة بحثية (يتطلب Gemini API).

البرنامج الرئيسي (main)

يُوضح البرنامج الرئيسي كيفية استخدام فئة AdvancedPubMedResearcher من خلال عدة أمثلة:

  1. البحث الأساسي في PubMed: البحث عن أوراق بحثية حول “CRISPR gene editing” وعرض النتائج.

  2. تحليل اتجاهات البحث: تحليل اتجاهات البحث حول مواضيع متعددة مثل “machine learning healthcare”، “CRISPR gene editing”، و “COVID-19 vaccine” وعرضها بيانياً.

  3. المقارنة بين موضوعين: مقارنة موضوعين بحثيين مثل “artificial intelligence diagnosis” و “traditional diagnostic methods”.

  4. الميزات المتقدمة: فحص محتويات ذاكرة التخزين المؤقت (cache) لنتائج البحث السابقة.

الخطوات التالية

  • إضافة مفتاح API لـ Gemini للاستفادة من ميزات البحث الذكي.
  • تخصيص الاستعلامات حسب مجال البحث الخاص بك.
  • تصدير النتائج إلى ملف CSV باستخدام df.to_csv('research_results.csv').

الخلاصة

يُقدم هذا البرنامج التعليمي طريقة فعّالة لأتمتة عملية مراجعة الأدبيات الطبية الحيوية باستخدام LangChain و PubMed. يمكنك من خلاله توفير الوقت والجهد، وتحليل الاتجاهات البحثية، وإضافة تحليلات متقدمة لسير عملك البحثي. نشجعك على تجربة المصطلحات البحثية المختلفة، واستكشاف نتائج البحث المخزنة، وتوسيع هذا الإطار لدعم أبحاثك المستمرة.

المصدر: MarkTechPost