| import pandas as pd | |
| from sklearn.metrics.pairwise import cosine_similarity | |
| import gradio as gr | |
| def find_similar_items(stock_code): | |
| H='CustomerID';F=False;D=stock_code;C='StockCode' | |
| try:I=pd.read_excel('IBCF_Online_Retail.xlsx') | |
| except FileNotFoundError:return'Error: Excel file not found.' | |
| E=I.dropna(subset=[H]);A=E.pivot_table(index=H,columns=C,values='Quantity',aggfunc='sum');A=A.applymap(lambda x:1 if x>0 else 0);B=pd.DataFrame(cosine_similarity(A.T));B.columns=A.T.index;B[C]=A.T.index;B=B.set_index(C) | |
| try:D=int(D) | |
| except ValueError:return'Error: Invalid stock code.' | |
| try:J=list(B.loc[D].sort_values(ascending=F).iloc[:5].index) | |
| except KeyError:return'Stock code not found.Please enter a valid stock code' | |
| K=E.loc[E[C].isin(J),'Description'].drop_duplicates().to_frame().reset_index(drop=True);G=K.to_string(header=F,index=F).split('\n');G.insert(1,'-'*50);return'\n'.join(G) | |
| stock_code_input=gr.Textbox(label='Enter Stock Code:') | |
| output_table=gr.Textbox(label='Recommended Items') | |
| gr.Interface(fn=find_similar_items,inputs=stock_code_input,outputs=output_table,theme=gr.themes.Default(primary_hue='sky')).launch() |