File size: 3,507 Bytes
d8bc695 8579f09 d8bc695 58c0ade d8bc695 62d3b1e 8579f09 d8bc695 8579f09 d8bc695 8579f09 d8bc695 8579f09 d8bc695 58c0ade 579a34e 58c0ade 8579f09 58c0ade 8579f09 d8bc695 1be00bd 8579f09 d8bc695 58c0ade 8579f09 58c0ade |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import streamlit as st
from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer, AutoModelForTokenClassification, AutoModelWithLMHead
import pandas as pd
# Uygulama sayfa ayarları
st.set_page_config(layout="wide")
# Örnek metin listesi
example_list = [
"Mustafa Kemal Atatürk 1919 yılında Samsun'a çıktı.",
"Bugün hava çok güzel ve enerjik hissediyorum.",
"Yapay zeka ve makine öğrenimi hakkında birçok gelişme var."
]
# Uygulama başlığı
st.title("NLP Toolkit")
# Görev seçimi
task_list = ['Metin Sınıflandırma', 'Metin Analizi', 'Duygu Analizi', 'Metin Oluşturma']
task = st.sidebar.selectbox("Görev Seç", task_list)
# Metin giriş yöntemi
st.subheader("Metin Giriş Yöntemi Seç")
input_method = st.radio("", ('Örneklerden Seç', 'Metin Yaz veya Yapıştır', 'Dosya Yükle'))
# Metin girişine göre seçim
if input_method == 'Örneklerden Seç':
selected_text = st.selectbox('Metin Seç', example_list)
input_text = st.text_area("Seçilen Metin", selected_text, height=128)
elif input_method == "Metin Yaz veya Yapıştır":
input_text = st.text_area('Metin Yaz veya Yapıştır', '', height=128)
elif input_method == "Dosya Yükle":
uploaded_file = st.file_uploader("Dosya Seç", type="txt")
if uploaded_file is not None:
input_text = str(uploaded_file.read(), "utf-8")
else:
input_text = ""
@st.cache_resource
def load_pipeline(model_name, task_type):
if task_type == "Metin Sınıflandırma":
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
return pipeline('text-classification', model=model, tokenizer=tokenizer)
elif task_type == "Metin Analizi":
model = AutoModelForTokenClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
return pipeline('ner', model=model, tokenizer=tokenizer)
elif task_type == "Duygu Analizi":
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
return pipeline('sentiment-analysis', model=model, tokenizer=tokenizer)
elif task_type == "Metin Oluşturma":
model = AutoModelWithLMHead.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
return pipeline('text-generation', model=model, tokenizer=tokenizer)
# Görev ve modele göre pipeline yükleme
model_dict = {
"Metin Sınıflandırma": "nlptown/bert-base-multilingual-uncased-sentiment",
"Metin Analizi": "dbmdz/bert-large-cased-finetuned-conll03-english",
"Duygu Analizi": "cardiffnlp/twitter-roberta-base-sentiment",
"Metin Oluşturma": "gpt2"
}
pipeline_model = load_pipeline(model_dict[task], task)
if st.button("Çalıştır") and input_text:
if task in ["Metin Sınıflandırma", "Duygu Analizi"]:
output = pipeline_model(input_text)
df = pd.DataFrame(output)
st.subheader(f"{task} Sonuçları")
st.dataframe(df)
elif task == "Metin Analizi":
output = pipeline_model(input_text)
df = pd.DataFrame(output)
st.subheader("Tanımlanan Varlıklar")
st.dataframe(df)
elif task == "Metin Oluşturma":
output = pipeline_model(input_text, max_length=100, num_return_sequences=1)
st.subheader("Oluşturulan Metin")
st.write(output[0]['generated_text'])
|