Spaces:
Runtime error
Runtime error
Commit ·
5d425de
1
Parent(s): 32668d6
fix: update column names in recommendation functions and UI
Browse files
app.py
CHANGED
|
@@ -60,7 +60,7 @@ def get_location_name_from_coordinates(lat, lon):
|
|
| 60 |
# --- Rekomendasi Tempat Wisata ---
|
| 61 |
def prepare_and_recommend(df, user_description):
|
| 62 |
tfidf = TfidfVectorizer()
|
| 63 |
-
tfidf_matrix = tfidf.fit_transform(df['
|
| 64 |
similarity = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1]).flatten()
|
| 65 |
df['similarity'] = similarity
|
| 66 |
return df.sort_values(by='similarity', ascending=False).head(5)
|
|
@@ -76,16 +76,16 @@ def sort_by_nearest_location(df, user_lat, user_lon):
|
|
| 76 |
# --- Fungsi Utama Gradio ---
|
| 77 |
def wisata_rekomendasi(deskripsi, lokasi):
|
| 78 |
if df.empty:
|
| 79 |
-
return "Data tidak tersedia.", pd.DataFrame([["Data tidak tersedia", "", ""]], columns=["nama", "distance_km", "
|
| 80 |
|
| 81 |
keywords = extract_keywords(deskripsi)
|
| 82 |
if "Error:" in str(keywords):
|
| 83 |
-
return f"Kata kunci gagal diambil: {keywords[0]}", pd.DataFrame([[keywords[0], "", ""]], columns=["nama", "distance_km", "
|
| 84 |
|
| 85 |
user_description_joined = " ".join(keywords)
|
| 86 |
lat, lon = get_coordinates_from_location(lokasi)
|
| 87 |
if lat is None or lon is None:
|
| 88 |
-
return "Lokasi tidak ditemukan.", pd.DataFrame([["Lokasi tidak ditemukan", "", ""]], columns=["nama", "distance_km", "
|
| 89 |
|
| 90 |
top_place = prepare_and_recommend(df.copy(), user_description_joined)
|
| 91 |
sorted_place = sort_by_nearest_location(top_place, lat, lon)
|
|
@@ -101,7 +101,7 @@ demo = gr.Interface(
|
|
| 101 |
],
|
| 102 |
outputs=[
|
| 103 |
gr.Textbox(label="Kata Kunci yang Diekstrak"),
|
| 104 |
-
gr.Dataframe(headers=["nama", "distance_km", "
|
| 105 |
],
|
| 106 |
title="Sistem Rekomendasi Wisata",
|
| 107 |
description="Masukkan deskripsi dan lokasi, lalu dapatkan rekomendasi tempat wisata terdekat"
|
|
|
|
| 60 |
# --- Rekomendasi Tempat Wisata ---
|
| 61 |
def prepare_and_recommend(df, user_description):
|
| 62 |
tfidf = TfidfVectorizer()
|
| 63 |
+
tfidf_matrix = tfidf.fit_transform(df['deskripsi'].astype(str).tolist() + [user_description])
|
| 64 |
similarity = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1]).flatten()
|
| 65 |
df['similarity'] = similarity
|
| 66 |
return df.sort_values(by='similarity', ascending=False).head(5)
|
|
|
|
| 76 |
# --- Fungsi Utama Gradio ---
|
| 77 |
def wisata_rekomendasi(deskripsi, lokasi):
|
| 78 |
if df.empty:
|
| 79 |
+
return "Data tidak tersedia.", pd.DataFrame([["Data tidak tersedia", "", ""]], columns=["id","nama","alamat", "distance_km", "deskripsi","rating"])
|
| 80 |
|
| 81 |
keywords = extract_keywords(deskripsi)
|
| 82 |
if "Error:" in str(keywords):
|
| 83 |
+
return f"Kata kunci gagal diambil: {keywords[0]}", pd.DataFrame([[keywords[0], "", ""]], columns=["id","nama","alamat", "distance_km", "deskripsi","rating"])
|
| 84 |
|
| 85 |
user_description_joined = " ".join(keywords)
|
| 86 |
lat, lon = get_coordinates_from_location(lokasi)
|
| 87 |
if lat is None or lon is None:
|
| 88 |
+
return "Lokasi tidak ditemukan.", pd.DataFrame([["Lokasi tidak ditemukan", "", ""]], columns=["id","nama","alamat", "distance_km", "deskripsi","rating"])
|
| 89 |
|
| 90 |
top_place = prepare_and_recommend(df.copy(), user_description_joined)
|
| 91 |
sorted_place = sort_by_nearest_location(top_place, lat, lon)
|
|
|
|
| 101 |
],
|
| 102 |
outputs=[
|
| 103 |
gr.Textbox(label="Kata Kunci yang Diekstrak"),
|
| 104 |
+
gr.Dataframe(headers=["id","nama","alamat", "distance_km", "deskripsi","rating"], label="Rekomendasi Tempat Wisata")
|
| 105 |
],
|
| 106 |
title="Sistem Rekomendasi Wisata",
|
| 107 |
description="Masukkan deskripsi dan lokasi, lalu dapatkan rekomendasi tempat wisata terdekat"
|