Named Entity Recognition (NER)
Adlandırılmış varlık tanıma (NER), metindeki kişi, kuruluş, yer, tarih ve tutar adlarını bulur ve her birini varlık türüyle etiketler.
Adlandırılmış varlık tanıma (NER), gerçek dünyadaki varlıkların adlarını içeren metin bölümlerini bulup her bölümü kişi, kuruluş, konum, tarih veya parasal tutar gibi bir türle etiketleyen bir doğal dil işleme (NLP) görevidir. "Marie Curie taught at the University of Paris from 1906" cümlesinde bir NER modeli, "Marie Curie" ifadesini kişi, "University of Paris" ifadesini kuruluş ve "1906" ifadesini tarih olarak işaretler. Böylece e-postalar, raporlar, sözleşmeler ve dökümler; arama motorlarının, bilgi grafiklerinin, analiz araçlarının ve gizlilik araçlarının kullanabileceği yapılandırılmış kayıtlara dönüşür. 1990'lardaki Message Understanding Conferences, NER'yi standart bir değerlendirme görevine dönüştürdü; CoNLL-2003 ortak görevi ise hâlâ kıyaslama ölçütü olarak kullanılan dört türü belirledi: kişi, konum, kuruluş ve diğer. OntoNotes 5.0 gibi daha kapsamlı şemalar; tarihler, nicelikler, ürünler ve etkinlikler dâhil 18 tür tanımlar.
NER Nasıl Çalışır#
NER genellikle bir dizi etiketleme görevi olarak ele alınır. Bir belirteçleyici metni belirteçlere ayırır ve model, her belirtece BIO şemasında bir etiket atar: B- bir varlığın başlangıcını, I- varlığın içindeki bir belirteci, O ise herhangi bir varlığın dışındaki bir belirteci işaretler; böylece "University of Paris" gibi birden fazla sözcükten oluşan adlar bir arada kalır. Bu kod, modelin tahmin ettiği etiketleri varlık bölümlerine dönüştürür:
# Token-level BIO tags, as predicted by an NER model for one sentence
tokens = ["Marie", "Curie", "taught", "at", "the", "University", "of", "Paris", "from", "1906", "."]
tags = ["B-PER", "I-PER", "O", "O", "O", "B-ORG", "I-ORG", "I-ORG", "O", "B-DATE", "O"]
# Merge each B- tag with the I- tags that follow it into one entity span
entities = []
for token, tag in zip(tokens, tags):
if tag.startswith("B-"):
entities.append([token, tag[2:]])
elif tag.startswith("I-") and entities and entities[-1][1] == tag[2:]:
entities[-1][0] += f" {token}"
print(entities)[['Marie Curie', 'PER'], ['University of Paris', 'ORG'], ['1906', 'DATE']] çıktısını, yani sonraki sistemlerin depolayıp sorguladığı yapılandırılmış çıktıyı yazdırır.
Etiketleri tahmin eden modeller otuz yıl içinde değişti. İlk sistemlerde elle yazılmış kurallar ve bilinen adların listeleri olan gazetteer'lar kullanılıyordu. Gizli Markov modelleri ve koşullu rassal alanlar gibi istatistiksel etiketleyiciler; büyük harf kullanımı ve sözcük son ekleri gibi elle tasarlanmış özelliklerle, açıklama eklenmiş metinlerden öğrendi. 2016'da iki yönlü LSTM ağları, CRF çıkış katmanıyla bu özellikleri kendileri öğrendi; ardından ince ayar yapılmış transformer'lar geldi: BERT, CoNLL-2003 test kümesinde 92,8 F1 puanına ulaştı. Öz-dikkat, bu modellerin bağlam olarak cümlenin tamamını kullanmasını sağlar; bu nedenle "Apple released a new phone" cümlesinde "Apple" kuruluş olarak etiketlenirken "I ate an apple" cümlesinde etiketlenmez. Sistemler varlık düzeyindeki kesinlik, duyarlılık ve F1 puanıyla değerlendirilir; bir tahmin yalnızca hem bölümü hem de türü referansla tam olarak eşleştiğinde doğru sayılır.
Daha yeni modeller sabit etiket kümesini kullanmaz. Kompakt, çift yönlü bir transformer olan GLiNER, girdi olarak varlık türlerinin adlarını alır ve eğitimde hiç görmediği türlere uyan bölümleri bulur; büyük dil modelleri ise bir şema verilip yapılandırılmış çıktılar istenerek yönlendirildiğinde varlıkları çıkarır.
NER ve İlgili Görevler#
- Varlık bağlama: Tanınan her ifadeyi Wikidata gibi bir bilgi tabanındaki belirli bir kayıtla eşleştirir; böylece "Paris" ifadesinin bir şehre mi yoksa Paris Hilton'a mı karşılık geldiği belirlenir.
- İlişki çıkarımı: Varlıkların nasıl bağlantılı olduğunu, örneğin hangi kişinin hangi kuruluşta çalıştığını bulur; genellikle NER çıktısını kullanır.
- Duygu analizi: Bir metnin ifade ettiği görüşü ölçer. NER, bir değerlendirmenin ne hakkında olduğunu belirler; duygu analizi ise yazarın bu konuda ne hissettiğini ölçer.
- Nesne algılama: NER'nin görüntülerdeki karşılığıdır; görüntüdeki bölgeleri bulur ve her birini bir sınıfla etiketler.
GLiNER'ın açık etiket fikrinin görüntü işlemede doğrudan bir karşılığı vardır: YOLOE-26, Ultralytics YOLO26'nın açık sözcük dağarcıklı sürümüdür; çıkarım sırasında sınıf adlarını metin istemleri olarak alır ve eğitim kategorilerinin dışındaki nesneler de dâhil olmak üzere bu sınıflardaki nesneleri algılayıp bölütler.
Gerçek Dünya Uygulamaları#
Belge işleme, NER'yi optik karakter tanıma (OCR) ile birleştirir: Faturalar, sözleşmeler ve formlar taranır; OCR metni okur ve NER, muhasebe ve uyumluluk sistemleri için tedarikçi, tarih ve toplam tutar gibi alanları çıkarır. Üretim işlem hatları, belirsiz tahminleri insanlara gönderir ve düzeltmelerden öğrenir:
- Kişisel verilerin maskelenmesi: Microsoft'un açık kaynaklı Presidio'su gibi gizlilik araçları, metin paylaşılmadan veya eğitimde kullanılmadan önce adları, adresleri ve hesap numaralarını bulup maskelemek için NER'yi örüntü kurallarıyla birlikte kullanır.
- Klinik metin madenciliği: Klinik NER; hastanelerin ve araştırmacıların kayıtları geniş ölçekte arayıp analiz edebilmesi için doktor notlarından ilaçları, dozajları, belirtileri ve tanıları çıkarır.
- Arama ve öneriler: Haber siteleri ve içerik platformları, makaleleri sözünü ettikleri kişiler, şirketler ve yerlerle etiketler; bu da varlık aramasını ve ilgili haberlerin önerilmesini sağlar.










