Spaces:
Sleeping
Sleeping
File size: 1,854 Bytes
3c4d97b c48c0c6 |
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 |
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) |