Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import gensim.downloader as api | |
| import numpy as np | |
| import string | |
| import re | |
| # 🔹 AI ipucu önerici | |
| def oner_ipucu(hedefler, yasaklar, model, aday_kelimeler=None): | |
| filtre = set(hedefler + yasaklar) | |
| if aday_kelimeler is None: | |
| aday_kelimeler = list(model.key_to_index.keys()) | |
| en_iyi_ipucu = None | |
| en_iyi_skor = -float("inf") | |
| for kelime in aday_kelimeler: | |
| if kelime in filtre: | |
| continue | |
| try: | |
| hedef_skor = np.mean([model.similarity(kelime, h) for h in hedefler if h in model]) | |
| yasak_skor = np.mean([model.similarity(kelime, y) for y in yasaklar if y in model]) | |
| toplam_skor = hedef_skor - yasak_skor | |
| if toplam_skor > en_iyi_skor: | |
| en_iyi_skor = toplam_skor | |
| en_iyi_ipucu = kelime | |
| except KeyError: | |
| continue | |
| return en_iyi_ipucu | |
| # 🧠 Word2Vec modeli yükle (ilk seferde indirir) | |
| def load_model(): | |
| return api.load("word2vec-google-news-300") | |
| model = load_model() | |
| # 🎯 Uygulama Başlığı | |
| st.title("🧠 Codenames AI Assistant") | |
| st.subheader("💡 Yapay Zeka ile Stratejik İpucu Önerici") | |
| # 🎯 Girdiler | |
| hedef_input = st.text_input("🎯 Hedef kelimeler (virgülle ayırın)", "dog, cat, fish") | |
| yasak_input = st.text_input("⛔ Yasaklı kelimeler (virgülle ayırın)", "bomb, knife, gun") | |
| # Buton | |
| if st.button("🔍 En iyi ipucuyu öner"): | |
| hedefler = [w.strip().lower() for w in hedef_input.split(",")] | |
| yasaklar = [w.strip().lower() for w in yasak_input.split(",")] | |
| ipucu = oner_ipucu(hedefler, yasaklar, model) | |
| if ipucu: | |
| st.success(f"🎯 Önerilen İpucu: **{ipucu}**") | |
| else: | |
| st.error("Uygun ipucu bulunamadı. Kelimeleri kontrol edin.") | |