-- coding: utf-8 --
""" Created on Sun Sep 24 23:07:29 2023
@author: Prakhar Agrawal """
import streamlit as st import numpy as np import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity
Load data for Ayurvedic medicine, hospitals, and colleges
medicine_data = pd.read_csv(r"C:/Users/Prakhar Agrawal/Downloads/Final_data.csv") medicine_data = medicine_data.dropna()
hospital_data = pd.read_csv(r"C:/Users/Prakhar Agrawal/Downloads/hospitals.csv") hospital_data = hospital_data.dropna()
college_data = pd.read_csv(r"C:/Users/Prakhar Agrawal/Downloads/ayurvedic-colleges_2- (1).csv") college_data = college_data.drop_duplicates(subset='College ID')
def recommend_medicines(user_disease): tfidf_vectorizer = TfidfVectorizer() tfidf_matrix = tfidf_vectorizer.fit_transform(medicine_data['Diseases Cured']) user_input_vector = tfidf_vectorizer.transform([user_disease]) cosine_similarities = cosine_similarity(user_input_vector, tfidf_matrix) similar_indices = [i for i, score in enumerate(cosine_similarities[0]) if score > 0.5]
recommendations = []
for idx in similar_indices:
recommendation = {
"Ayurvedic Medicine": medicine_data.iloc[idx]['Ayurvedic Medicine'],
"Diseases Cured": medicine_data.iloc[idx]['Diseases Cured'],
"Cautions and Considerations": medicine_data.iloc[idx]['Cautions and Precautions'],
"Properties": medicine_data.iloc[idx]['Properties'],
"Key Ingredients": medicine_data.iloc[idx]['Key Ingredients'],
"Mode of Action": medicine_data.iloc[idx]['Mode of Action']
}
recommendations.append(recommendation)
return recommendations
Function to recommend Ayurvedic Hospitals
def recommend_hospitals(user_state): vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(hospital_data['State']) user_vector = vectorizer.transform([user_state]) similarity = cosine_similarity(user_vector, tfidf_matrix) similar_indices = [i for i, score in enumerate(similarity[0]) if score > 0.75]
recommendations = []
for idx in similar_indices:
recommendation = {
"Name": hospital_data.iloc[idx]['Name'],
"Address": hospital_data.iloc[idx]['Address']
}
recommendations.append(recommendation)
return recommendations
Function to recommend Ayurvedic Colleges
def recommend_colleges(user_state): vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(college_data['State']) user_matrix = vectorizer.transform([user_state]) similarity = cosine_similarity(user_matrix, tfidf_matrix) similar_indices = [i for i, score in enumerate(similarity[0]) if score > 0.5]
recommendations = []
for idx in similar_indices:
recommendation = {
"College ID": college_data.iloc[idx]['College ID'],
"Name of the College": college_data.iloc[idx]['Name of the College'],
"State": college_data.iloc[idx]['State']
}
recommendations.append(recommendation)
return recommendations
Streamlit UI
st.sidebar.title("Ayurvedic Recommendations")
Sidebar section for user input
section = st.sidebar.radio("Select a Section", ["Ayurvedic Medicine", "Ayurvedic Hospitals", "Ayurvedic Colleges"])
if section == "Ayurvedic Medicine": user_disease = st.text_input("Enter the disease name:") if st.button("Recommend Medicines"): st.subheader("Recommended Medicines:") recommendations = recommend_medicines(user_disease) for recommendation in recommendations: st.write(recommendation)
elif section == "Ayurvedic Hospitals": user_state = st.text_input("Enter the name of your state:") if st.button("Recommend Hospitals"): st.subheader("Recommended Hospitals:") recommendations = recommend_hospitals(user_state) for recommendation in recommendations: st.write(recommendation)
elif section == "Ayurvedic Colleges": user_state = st.text_input("Enter your state name:") if st.button("Recommend Colleges"): st.subheader("Recommended Colleges:") recommendations = recommend_colleges(user_state) for recommendation in recommendations: st.write(recommendation)