Doğal Dil İşleme, yaygın olarak NLP (Natural Language Processing) olarak bilinen yapay
zeka ve dilbilim alt kategorisidir.
Bu yazımda geliştiricisi olduğum projenin temelindeki konu
olan doğal dil işlemenin alt dallarından biri varlık ismi tanıma konusuna
değinmek istiyorum. Öncelikle girişte tanımını yaptığım doğal dil işleme
konusuna biraz daha yakından bakalım.
Doğal dil işleme kısaca NLP; sohbet
botları(chatbots), makale veya yazıların özeti, dil çeviri ve veriden görüş
tanımlama gibi birçok akıllı uygulamada kritik bir rol oynamaktadır. NLP
ön-işleme, varlık(entity) çıkarımı, kelime frekanslarının ölçümleri gibi
aşamaları içerir.
Metin ön-işlemede gürültü giderme
(noise removel), sözlük normalize edilmesi (lexicon normalization), nesne
standart oluşumu (object standarization) teknikleri kullanılır.
Ön işlemeden sonra entity extraction(varlık çıkarma) özne
yüklem ve nesnelerin belirlenmesi bu aşamada yapılır. Bu aşamada metinden
ilgili konunun çıkarılması yapılır. Kullanılan tekniklerden biri Latent
Dirichlet Allocation for Topic Modelling (LDA). Konu çıkarımının dışında kelime
frekansları, sayısı, yoğunluğu gibi özellikler çıkarılabilir. Kelimelerin text
içerisinde kullanım istatistikleri deep neural networks ve recurrent neural
network ile hesaplanabilmektedir. (Glove, Word2Vec kullanılan kütüphanelerden
bazılarıdır.)
Esas konumuz olan varlık ismi tanımaya gelecek olursam;
Varlık İsmi Tanıma (Named Entity Recognition)
Varlık ismi tanıma doğal
dil işlemenin çalışma alanlarından bilgi çıkarımının bir alt dalı olup
metinlerde geçen varlık isimlerinin tespiti ve sınıflandırılması ile ilgilenir.
Makine
çevirilerinden tutun da duygu analizine kadar birçok Doğal Dil İşleme
probleminde kullanılmaktadır. Bilgi çıkarımı doğal
dil işleme teknikleri kullanılarak herhangi bir formatı olmayan metinlerden bir
bilgiyi elde etmeye yönelik çalışmaları kapsayan bir alandır. Varlık ismi
tanıma uygulamalarında metindeki varlık isimleri tespit edilir ve önceden belirlenen
kategorilere göre sınıflandırılırlar. Tanımı ilk olarak 1995 yılında MUC-6
(Message Understanding Conference) konferansında yapılmıştır. ENAMEX, TIMEX ve
NUMEX olmak üzere 3 temel kategoride tanımlamalar yapılmaktadır. Bu 3 temel
kategori şu şekildedir:
1) Enamex: Kişi, yer,
organizasyon gibi ifadeleri
2) Numex: Parasal ve
yüzdesel ifadeleri
3) Timex: Gün ve tarih gibi
zamansal ifadeleri tanımlamak için kullanılmaktadır.
Varlık İsmi Tanıma Veri
Etiketleme Formatı
Varlık isimleri ve çeşitli doğal dil işleme uygulamalarında
kullanılan metin parçalarının etiketlenmesi ve etiketlerinin gösteriminde
çeşitli yöntemler kullanılmaktadır. Bu yöntemler aşağıdaki gibi listelenebilir.
Ø Sade gösterim: Sade
gösterimde sadece I ve O etiketleri kullanılır. Bir kelime varlık ismi ise I
değilse O harfi ile etiketlenir.
· IO
Ø İçerde/Dışarda
(Inside/Outside) Gösterimi: Varlık isminin ilk kelimesi
B, diğer kelimeleri I ön ekiyle etiketlerini alırlar. Söz konusu kelime bir
varlık ismi değilse O etiketi ile gösterilir.
· IOB1
· IOB2
· IOE1
· IOE2
Ø Başlangıç/Bitiş (Start/End)
gösterimi: B varlık isminin başlangıcını, L bitişini, I etiketi de başlangıç ve
bitiş arasındaki kelimeleri temsil eder. Eğer varlık ismi tek kelimeden
oluşuyorsa B ve L etiketleri yerine U etiketi kullanılır. Varlık ismi
haricindeki kelimeler için O etiketi kullanılır.
· BILOU
Varlık
İsmi Gösterimleri |
Varlık İsmi Tanıma Etiketleme
Kategorileri
TYPE
|
DESCRIPTION
|
PERSON
|
People, including fictional. (Kurmaca dahil insanlar.)
|
NORP
|
Nationalities or religious or political groups. (Milletlerden veya dini
veya siyasi gruplar.)
|
FAC
|
Buildings, airports, highways, bridges, etc. (Binalar, havaalanları,
otoyollar, köprüler vb.)
|
ORG
|
Companies, agencies, institutions, etc. (Şirketler, ajanslar, kurumlar
vb.)
|
GPE
|
Countries, cities, states. (Ülkeler, şehirler,devletler.)
|
LOC
|
Non-GPE locations, mountain ranges, bodies of water. (GPE dışı yerler,
dağ sıraları, su kütleleri.)
|
PRODUCT
|
Objects, vehicles, foods, etc. (Nesneler, araçlar, yiyecekler vb.)
|
EVENT
|
Named hurricanes, battles, wars, sports events, etc. (İsimli kasırgalar,
savaşlar, savaşlar, spor etkinlikleri vb.)
|
WORK_OF_ART
|
Titles of books, songs, etc. (Kitap, şarkı vb. Başlıkları.)
|
LAW
|
Named documents made into laws. (Adlandırılmış dokümanlar yasa haline
getirildi.)
|
LANGUAGE
|
Any named language. (Herhangi bir adlandırılmış dil.)
|
DATE
|
Absolute or relative dates or periods. (Mutlak veya göreceli tarih veya
dönemler)
|
TIME
|
Times smaller than a day. (Times smaller than a day.)
|
PERCENT
|
Percentage, including ”%“. ( "%" Dahil olmak üzere yüzde.)
|
MONEY
|
Monetary values, including unit. (Birim dahil parasal değerler.)
|
QUANTITY
|
Measurements, as of weight or distance .(Ölçümler, ağırlık veya mesafe
olarak.)
|
ORDINAL
|
“first”, “second”, etc. ( “İlk”, “ikinci” vb.)
|
CARDINAL
|
Numerals that do not fall under another type. (Başka bir tipin altına
girmeyen rakamlar.)
|
Varlık İsmi Tanıma
Sistemlerinin Başarımının Ölçülmesi
Varlık ismi tanıma sistemlerinin başarımlarının ölçülmesinde kullanılan
farklı yöntemler mevcuttur. En çok kullanılan yöntemler CoNLL ve MUC
metrikleridir.
MUC metriği MUC konferanslarında kullanılmıştır (Chinchor ve Marsh,
1998). Sistemin başarımını iki açıdan ele alır; doğru sınıf ve doğru sınırlar.
Sistem tarafından tespit edilmiş ve sınıflandırılmış varlık isimlerinin
sınırlarının doğruluğunu ve sınıflandırılmasının doğruluğunu ayrı ayrı değerlendirir.
CoNLL metriği CoNLL konferanslarında kullanılmıştır (Tjong Kim Sang,
2002; Tjong Kim Sang ve De Meulder, 2003). Sistemin varlık ismi tespitinin
doğru kabul edilebilmesi için hem sınırların hem de sınıfın doğru tespit
edilmiş olması gerekir. Sistem varlık isminin sınırlarını doğru tespit eder
fakat varlık ismini yanlışsınıflandırır ise bu CoNLL metriğine göre yanlış bir
çıktı olarak değerlendirilir.
Tutma = doğru tespit edilmiş varlık ismi sayısı / tespit edilmiş varlık
ismi sayısı
Bulma = doğru tespit edilmiş varlık ismi sayısı / girdi metindeki
varlık ismi sayısı
Değerlendirme metriklerinin daha iyi anlaşılması için örnek sistem
çıktısında CoNLL metriğine göre sadece 4. satırdaki çıktı doğrudur, varlık ismi
sınırları doğru tespit edilmiş ve varlık ismi doğru sınıflandırılmıştır. Girdi
metinde beş tane varlık ismi mevcuttur, çıktıya göre beş tane tespit edilmiş
varlık ismi vardır. Bu sistemin CoNLL metriğine göre başarımı %20 olarak
hesaplanır.
Tutma = 1/5 bulma = 1/5 f-ölçüt=1/5 = %20
MUC metriğine göre ise sistemin iki adet sınıf kapsamında iki adet de
sınırlar kapsamında olmak üzere toplam dört adet doğru çıktısı vardır. Girdi metinde
beş tane varlık ismi mevcuttur, sınırlar ve sınıf için iki ayrı değerlendirme
yapıldığından girdi metinde 10 tane varlık ismi olduğu varsayılır. Çıktıya göre
beş tane tespit edilmiş varlık ismi vardır, bu da sınırlar ve sınıf için
düşünüldüğünde toplam 10 varlık ismi olduğu varsayılır. Bu sistemin MUC
metriğine göre başarımı %40 olarak hesaplanır.
Tutma = 4/10 bulma = 4/10 f-ölçüt
= 4/10 = %40
Bu yazımda doğal dil işleme ve Bilgi çıkarımının alt dalı olan varlık
ismi tanıma konularından bahsettim. Görüş, öneri ve katkıda bulunmak isterseniz
safaburakbahceci29@gmail.com
mail adresimden bana ulaşabilirsiniz. Diğer yazılarımda görüşmek üzere.
Sevgiyle kalın…
Yorumlar
Yorum Gönder