NerApp / app.py
OnurDemircioglu's picture
Update app.py
3c4d97b verified
import gradio as gr
from transformers import pipeline
# Modeli direkt yükle (cache otomatik iner)
# NOT: Bu model İngilizce metinler için eğitilmiştir. Eğer Türkçe metinlerle çalışmak istiyorsanız,
# 'turkish-ner' gibi Türkçe için finetune edilmiş bir model kullanmanız gerekmektedir.
ner_pipeline = pipeline(
"ner",
model="akdeniz27/bert-base-turkish-cased-ner",
aggregation_strategy="simple"
)
def ner_texte_cevir(text):
results = ner_pipeline(text)
# gr.HighlightedText için çıktı formatını düzenle
output_segments = []
last_idx = 0
# Metni ve algılanan varlıkları birleştirerek HighlightedText için uygun formatı oluştur
for entity in results:
# Varlık öncesindeki metin (etiketsiz)
if entity['start'] > last_idx:
output_segments.append((text[last_idx:entity['start']], None))
# Algılanan varlık ve etiketi
output_segments.append((text[entity['start']:entity['end']], entity['entity_group']))
last_idx = entity['end']
# Son varlıktan sonra kalan metin (etiketsiz)
if last_idx < len(text):
output_segments.append((text[last_idx:], None))
# Eğer hiçbir varlık bulunamazsa, tüm metni etiketsiz olarak döndür
if not output_segments and text:
output_segments.append((text, None))
return output_segments
iface = gr.Interface(
fn=ner_texte_cevir,
inputs=gr.Textbox(lines=5, placeholder="Metni buraya yapıştır..."),
outputs=gr.HighlightedText(),
title="Türkçe NER Uygulaması", # Başlıkta Türkçe dese de model İngilizce unutma :)
description="İsim, kurum, yer tespit eder.",
examples=[
["Ahmet Yılmaz dün İstanbul Üniversitesi'nde konferans verdi."],
["Apple şirketi yeni iPhone'u tanıttı."]
]
)
iface.launch(share=True)