File size: 1,407 Bytes
5de9868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328a2a4
5de9868
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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)