import json | |
import gradio as gr | |
from textblob import TextBlob | |
from deep_translator import GoogleTranslator | |
def sentiment_analysis(text: str) -> str: | |
""" | |
Türkçe metni İngilizce'ye çevirip, İngilizce metin üzerinden duygu analizi yapar. | |
""" | |
try: | |
eng_text = GoogleTranslator(source='tr', target='en').translate(text) | |
except Exception as e: | |
return json.dumps({"hata": f"Çeviri hatası: {str(e)}"}) | |
blob = TextBlob(eng_text) | |
sentiment = blob.sentiment | |
# Değerleri Türkçeleştir | |
if sentiment.polarity > 0: | |
assessment = "pozitif" | |
elif sentiment.polarity < 0: | |
assessment = "negatif" | |
else: | |
assessment = "nötr" | |
sonuc = { | |
"duygu_puani": round(sentiment.polarity, 2), # -1 (negatif) ile 1 (pozitif) arası | |
"öznelik": round(sentiment.subjectivity, 2), # 0 (nesnel) ile 1 (öznel) arası | |
"degerlendirme": assessment | |
} | |
return json.dumps(sonuc, ensure_ascii=False) | |
# Create the Gradio interface | |
demo = gr.Interface( | |
fn=sentiment_analysis, | |
inputs=gr.Textbox(placeholder="Türkçe metin girin..."), | |
outputs=gr.Textbox(), | |
title="Türkçe Metin Duygu Analizi", | |
description="Türkçe metinlerde duygu analizi. MCP ile Cursor, VSCode gibi ortamlarda kullanılabilir." | |
) | |
# Launch the interface and MCP server | |
if __name__ == "__main__": | |
demo.launch(mcp_server=True) |