Spaces:
Sleeping
Sleeping
| 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) |