Ana içeriğe atla

DOĞAL DIL IŞLEME’NIN ALT DALI: VARLIK ISMI TANIMA


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ı
f-ölçüt = (𝛽 + 1)*kesinlik*çağrı / 𝛽(kesinlik+çağrı)

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

Bu blogdaki popüler yayınlar

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI

Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “ Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap ( A Logical Calculus of Ideas Immanent in Nervous Activity )” başlıklı makale ile ortaya çıkarılmıştır. Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım. Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır. Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır. Axon (Akson): Ak...

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dak...

TARIM 4.0

  Tarım 4.0 nedir, nasıl ortaya çıkmıştır? Yüzyıllar boyunca, ülkeleri ve genel olarak dünyayı şekillendiren birçok sanayi devrimi olmuştur. Endüstri 4.0, çalışma biçimlerini değiştiren en son sanayi devrimidir. Otomasyon, yapay zeka (AI) ve robotiğin yükselişinin yanı sıra İnternet ve giderek daha iyi teknoloji ile bağlantılı diğer ilerlemeleri ifade eder. Tarım endüstrisi de teknoloji ve çalışma alanındaki bu önemli değişimi yaşadı ve deneyimlemeye devam ediyor. ‘Tarım 4.0’ olarak anılıyor ve çiftçiliği yenilikçi ve kendine güvenen hale getirmeyi vaat ediyor. İşte son teknolojik gelişmelerin tarımı değiştirmesinin beklendiği üç temel yol şunlardır: Yapay zeka Yapay zeka, süreçleri çok daha verimli hale getirmek için tarım endüstrisi tarafından kullanıldı. AI, çeşitli makinelere ve ekipman parçalarına uygulanarak, sprinkler ve gübre gibi farklı cihazların işlerini daha etkin bir şekilde gerçekleştirmelerine olanak tanır. Bunun iyi bir örneği, karada büyük nesneleri taşımak, çekmek...