WhiteAngels commited on
Commit
fc60545
1 Parent(s): 3be9360

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +79 -0
app.py ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer, AutoModelForTokenClassification, AutoModelForCausalLM
3
+ import pandas as pd
4
+
5
+ st.set_page_config(layout="wide")
6
+
7
+ # Örnek metin listesi
8
+ example_list = [
9
+ "Mustafa Kemal Atatürk 1919 yılında Samsun'a çıktı.",
10
+ "Bugün hava çok güzel ve enerjik hissediyorum.",
11
+ "Yapay zeka ve makine öğrenimi hakkında birçok gelişme var."
12
+ ]
13
+
14
+ # Uygulama başlığı
15
+ st.title("NLP Toolkit")
16
+
17
+ # Görev seçimi
18
+ task_list = ['Metin Sınıflandırma', 'Metin Analizi', 'Duygu Analizi', 'Metin Oluşturma']
19
+ task = st.sidebar.selectbox("Görev Seç", task_list)
20
+
21
+ # Metin giriş yöntemi
22
+ st.subheader("Metin Giriş Yöntemi Seç")
23
+ input_method = st.radio("", ('Örneklerden Seç', 'Metin Yaz veya Yapıştır'))
24
+
25
+ if input_method == 'Örneklerden Seç':
26
+ selected_text = st.selectbox('Metin Seç', example_list, index=0, key=1)
27
+ st.subheader("Seçilen Metin")
28
+ input_text = st.text_area("Metin", selected_text, height=128, max_chars=None, key=2)
29
+ elif input_method == "Metin Yaz veya Yapıştır":
30
+ st.subheader("Metin")
31
+ input_text = st.text_area('Metin Yaz veya Yapıştır', value="", height=128, max_chars=None, key=2)
32
+
33
+ @st.cache_resource
34
+ def load_pipeline(model_name, task_type):
35
+ if task_type == "Metin Sınıflandırma":
36
+ model = AutoModelForSequenceClassification.from_pretrained(model_name)
37
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
38
+ return pipeline('text-classification', model=model, tokenizer=tokenizer)
39
+ elif task_type == "Metin Analizi":
40
+ model = AutoModelForTokenClassification.from_pretrained(model_name)
41
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
42
+ return pipeline('ner', model=model, tokenizer=tokenizer)
43
+ elif task_type == "Duygu Analizi":
44
+ model = AutoModelForSequenceClassification.from_pretrained(model_name)
45
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
46
+ return pipeline('sentiment-analysis', model=model, tokenizer=tokenizer)
47
+ elif task_type == "Metin Oluşturma":
48
+ model = AutoModelForCausalLM.from_pretrained(model_name)
49
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
50
+ return pipeline('text-generation', model=model, tokenizer=tokenizer)
51
+
52
+ # Görev ve modele göre pipeline yükleme
53
+ model_dict = {
54
+ "Metin Sınıflandırma": "nlptown/bert-base-multilingual-uncased-sentiment",
55
+ "Metin Analizi": "dbmdz/bert-large-cased-finetuned-conll03-english",
56
+ "Duygu Analizi": "cardiffnlp/twitter-roberta-base-sentiment",
57
+ "Metin Oluşturma": "gpt2"
58
+ }
59
+
60
+ pipeline_model = load_pipeline(model_dict[task], task)
61
+
62
+ Run_Button = st.button("Çalıştır", key=None)
63
+
64
+ if Run_Button and input_text != "":
65
+ if task in ["Metin Sınıflandırma", "Duygu Analizi"]:
66
+ output = pipeline_model(input_text)
67
+ df = pd.DataFrame(output)
68
+ st.subheader(f"{task} Sonuçları")
69
+ st.dataframe(df)
70
+ elif task == "Metin Analizi":
71
+ output = pipeline_model(input_text)
72
+ entities = [{"Word": e['word'], "Entity": e['entity_group'], "Score": e['score']} for e in output]
73
+ df = pd.DataFrame(entities)
74
+ st.subheader("Tanımlanan Varlıklar")
75
+ st.dataframe(df)
76
+ elif task == "Metin Oluşturma":
77
+ output = pipeline_model(input_text, max_length=100, num_return_sequences=1)
78
+ st.subheader("Oluşturulan Metin")
79
+ st.write(output[0]['generated_text'])