ali_kamel / diagnosis_module.py
mnni43353's picture
Rename pubmed_module.py to diagnosis_module.py
7aefba7 verified
# diagnosis_module.py
import json
from difflib import SequenceMatcher
def load_diseases(path="diseases.json"):
"""
تحميل قاعدة بيانات الأمراض والأعراض
"""
with open(path, "r", encoding="utf-8") as f:
return json.load(f)
def diagnose_symptoms(user_input):
"""
تحليل الأعراض وإعطاء الأمراض المحتملة
"""
diseases = load_diseases()
results = []
user_symptoms = [s.strip() for s in user_input.split(",")]
for disease, info in diseases.items():
match_score = sum(
SequenceMatcher(None, sym.lower(), us.lower()).ratio()
for sym in info["symptoms"]
for us in user_symptoms
) / (len(info["symptoms"]) * len(user_symptoms))
if match_score > 0.2:
results.append({
"disease": disease,
"score": match_score,
"source": info.get("source", ""),
"brief": info.get("brief", "")
})
results.sort(key=lambda x: x["score"], reverse=True)
return results[:5]