Kısa metinlerde varlık ismi tanıma
Named entity recognition on Turkish short texts
Yazar: BEYZA EKEN
Danışman: YRD. DOÇ. DR. AHMET CÜNEYD TANTUĞ
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Ağ ortamının gelişmesi ve Web 2.0 olarak adlandırılan sürece girmesi ile birlikte içeriklerini kullanıcıların oluşturduğu sosyal medya siteleri, mikroblog (internet günlüğü) sitelerinin sayısı ve popülerliği artmıştır. Bu sitelerde paylaşılan metinlerin içinden istenilen bilgiye makineler yardımı ile kolayca ulaşma ve bilgileri yorumlama noktasında doğal dil işleme devreye girmektedir. 
Doğal dil işleme insanların konuştuğu dili bilgisayarların yorumlayabilmesini amaçlayan çalışmaları kapsar. Yapay zeka ve dilbilimin bir alt dalıdır. 
Varlık ismi tanıma ise doğal dil işlemenin çalışma alanlarından bilgi çıkarımının bir alt dalı olup metinlerden geçen varlık isimlerinin tanınması ile ilgilenir. Varlık ismi tanıma kapsamında varlık isimleri tespit edilir ve önceden tanımlanmış kategorilere göre sınıflandırılırlar. Bu kategorilerden en çok kullanılanları temel olarak kişi, organizasyon, yer, tarih, saat, para, yüzde varlıklarıdır. 
Varlık ismi tanıma makine çevirisi, bilgi elde etme, duygu analizi, multimedia indeksleme, soru-cevap sistemleri gibi diğer doğal dil işleme uygulamalarınında kullanılabilmektedirler.
Kurallı yazılmış metinlerde varlık ismi tanıma problemi %95 seviylerine yaklaşmış iken, imla kurallarına uymadan kuralsız ve rahat bir dille yazılan metinlerde performans %50 seviyelerine düşmektedir. Kuralsız metinlerde başarımı yükseltmek adına litaratürde genel olarak iki eğilim görülmektedir; kuralsız metinler normalize edilerek kurallı formata dönüştürülür ve mevcut araçlara uygun hale getirilir ya da kuralsız metinlerin doğasına uygun yeni yöntemler ve araçlar geliştirilir.
Normazliasyon ciddi ve kompleks bir doğal dil işleme alanıdır. Bu çalışmada amaç kuralsız metinlerde kompleks bir normalizasyon uygulamadan varlık ismi tanıma yöntemleri geliştirmektir. İstatistiksel öğrenme tekniklerinden koşullu rastgele alanlar yöntemi kullanılarak tweet verileri üzerinde varlık ismi tanıma çalışmaları yapılmıştır. 
Twitter adlı mikroblog sitesinde kullanıcıların paylaştığı 140 karakterle sınırlı kısa metinlere tweet denilmektedir. Bu metinler yazım ve dilbilgisi kurallarına uymadıkları gibi yabancı ve argo kelimeler, gülensuratlar (smiley) içerebilmektedirler. Tweetlerin rahat ve kuralsız doğası doğal dil işleme çalışmalarını zorlu bir hale getirmektedir. 
Çalışmada iki yöntem kullanılmıştır. İlki daha önceki yöntemlere dayanan kurallı yazılmış haber metinlerde başarımı ispatlanmış, biçimbilimsel özelliklere dayanan bir yöntemdir. İkincisi ise biçimbilimsel özellikler yerine kabaca kelimenin ilk N ve son N harfleri kullanılarak geliştirilen bir yöntemdir.
Türkçenin zengin biçimsel yapısından dolayı biçimbilimsel özelliklerin doğal dil işleme çalışmalarında kullanılması kaçınılmaz bir durumdur. Fakat tweet metinlerinin biçimbilimsel çözümleme aşamasında başarılı sonuçlar elde edilememektedir, dolayısı ile bu çalışmada biçimbilimsel özellikler yerine kelimenin ilk N ve son N harfleri ile biçbilimsel bilgiler yakalanmıştır. Şöyle ki kelimenin ilk 3-4 harfi kelimenin kök bilgisini içerebilmekteyken, son 3-4 harfi ise kelimenin aldığı eklerin bilgilerini içerebilmektedir.
Her iki yöntemde kurallı ve kuralsız metinlerde denenmiştir, kurallı metinler türünde haber metinleri, kuralsız metinler türünde tweetler kullanılmıştır. Test sonuçlarına göre heber metinlerinde her iki yöntemle neredeyse aynı başarım elde edilirken, tweet metinlerinde başarım yaklaşık %6 oranında yükselmiştir. Bu demektir ki ilk yöntemde kullanılan biçimbilimsel çözümleme ve belirsizlik giderme araçlarına ihtiyaç duymadan kelimenin ilk ve son N harfleri ile kabaca biçimbilimsel özellikler elde edilerek varlık ismi tanıma probleminde kullanılabilir. 
Temel yöntem ve geliştirilen yöntemlerde biçimbilimsel aşamaların farklılıklarına ek olarak sözcüklerin küçük/büyük harf bilgileri, cümle başlangıcında bulunup bulunmamaları bilgisi ve sözlük bilgilerinden yararlanılmıştır. Geliştirilen yöntemde bunlara ek olarak tüm eğitim, sınama verileri ve sözlükler asciification işleminden geçirilmiştir. Asciification metindeki Türkçe karakterlerin (ö, ç, ş, ı, ğ, ü) ASCII tablosu karşılıklarına (o, c, s, i, g, u) dönüştürülmesini kapsayan bir terimdir. Tweet metinleri genellikle Türkçe karakterlerin kullanımına dikkat edilmeden yazıldıkları için Asciification işlemi uygulanmıştır, yanlış yazılan kelimeleri normalize etmek yerine tüm verilerden Türkçe karakterleri kaldırma yöntemi tercih edilmiştir.
Varlık isimlerini içeren geniş sözlüklerin kullanımına varlık ismi tanıma sistemlerinden sıklıkla başvurulur. Bu çalışmada kişi, yer ve organizasyon olmak üzere üç adet isim sözlüğü kullanılmıştır, sisteme verilen girdi metindeki sözcükler sözlükler ile eşleştirilerek varlık ismi olup olmadığına karar verilebilir. Geliştirilen yöntemde temel alınan yönteme ek olarak sözlük eşleştirmesinde kısmı eşleşme yöntemi kullanılmıştır. Kısmi eşleşmenin amacı tweetlerde kelimelerin birkaç harfini atlayarak yanlış yazılan varlık isimlerinin tespitini sağlamaktır. Örneğin "Mehmet" yerine "Mhmet" yazılabilmektedir. Böyle yanlış yazılmış varlık isimlerini tespit etmek amacıyla girdi metindek sözcükler ile sözlükteki kelimelerin Levenshtein mesafe algoritması ile uzaklıkları hesaplanmış ve küçük uzaklıktaki kelimeler aday varlık ismi olarak gösterilmiştir.

Abstract:
With the expansion of the web and material sharing through the internet, an excessive amount of information pollution has emerged. Microblog web sites has been rising as a new trend in alternative information sharing. Posts on these microblog sites sometimes contain important information about a product, a person or even crucial news about distant corners of the world. But maybe the most significant point about these microblog posts is that they hold great amounts of statistics. Therefore, gathering and processing this information has become essential. Thus, at this point, natural language processing is holds meaningful importance.
Natural language processing (NLP) is a sub-branch of artificial intelligence and it is concerned with interpretation of natural language by machines. NLP's aim is to make the interaction easier between human and computers.
Named entity recognition is a NLP term that refers to the recognition of named entities in natural language. It is a way of extracting information by detecting and classifying named entities in texts. Named entities mainly refer to persons, locations, organizations. Originally, named entity term just refers these three entity but later it expand to involve numeric expressions like date, time, money, percentage. Recently it has branched out to bioinformatics for protein recognition, gene recognition, medicine recognition etc.
There have been lot of studies in named entity recognition field and state of the art perfomance has reached to nearly human annotation performance in formal texts. But off the shelf natural language processing tools' performances decreases when they are applied to informal texts. Because informal texts may not fit to grammar rules, spelling rules unlike formal texts. As a consequence, the need arises to develope new tools that would be proper for informal structure of texts or normalizing informal texts to fit to off the shelf NLP tools.
The aim of this study is to increase performance of named entity reconition on Turkish tweets without appliying complex normalization. Tweets are micro texts that shared on Twitter website which are limited to 140 characters. Most of the time they can contain grammar and spelling errors, slang words and smileys, so unfortunately this nature of tweets make harder to process such data.
Turkish is a highly agglutinative language, so natural languge processing is much more challenging than non-agglutinative languages. Because of agglutinative and morphologically rich nature, morpholocigal features are indispensable in natural language processing applications. 
Before works on named entity recognition in Turkish formal texts also have shown that it is useful to use morphological features of words. However for informal text domain it is not easy get morphological features with off the shelf morhphological analysis tools efficiently. It could be an option to normalize informal texts to fit existing tools, but in this work instead of normalizing, morphological information captured roughly without morphological processing tools. For example first N character and last N characters of words can hold morphological informations in Turkish, first N characters of the word nearly equals the stem information of the word and last N characters of the word can contain suffixes.
Based upon tweets' informal nature two different model are developed. First model is base model, which based on another named entity recognition work on Turkish news domain. Second method is developed method in this work as an alternative to base method. This developed method increased the performance tweet domain nearly %6, and nearly get same performance in news domain. Base model includes morphological analyzing and disambiguation process differently from developed model.
Despite the aim is to develop named entity recognition system on tweet domain, news domain also used as formal text domain to compare results of models. News data fit to spelling and writing rules as opposed to tweets data. Tweets have unstructural nature, can contain slang words, repeating characters for exclamation, on purpose spelling errors, abbreviations. In addition, Turkish tweets can be written with only using English alphabeth characters instead of using some Turkish characters (ö, ç, ş, ı, ğ, ü). Moreover, instead of using any alphabet characters some symbols can be used as letters in words ("$eker" instead of "şeker", "s€n" instead of "sen").
Morphological structure gives important clues about which is part-of-speech information, inflectional and derivational affixes. These morphological informations of words can give a clue about being a named entity or not. So in both models morphological informations are used.
Base model gets morphological information using external morphological tools for analyzing and disambiguating. Unfortunately, when these tools applied to tweets, its performance decreases and could not get morphological information of tweets accurately. As mentioned before, first and last N characters of Turkish words have significant information about morphological structure of the word. Instead of external tools, getting first and last N characters are easier.
Beside morphological features case feature, start of sentence feature, gazetteer features are used in both models. 
Letter case of a word has an important clue about being a named entity. Named entities are mostly proper names and proper names should start with uppercase letter, so case information of word has significant increase in performance. Also sentences start with uppercase letter, it can be cause confusion, so being first word of sentence information and case information of word are used as features.
Most of the NER studies take advantage of gazetteers, which are large lists of entity names. In this project three gazetteers are used that are person names, location names and organization names. Organization gazetteer mostly consists of organization name generator words like "ministry", "university", "association" etc.
Differently in developed model some features are added to handle obstacles of twitter domain. They are simple normalization, asciification and apostrophe information. Moreover, partial looking up tecniques applied on both base and developed models.
Firstly simple normalization techniques are applied to data which are converting symbols in words to equivalent letter, removing repeated characters more than two. Two repetition of characters is allowed in normalization procedure because some words originally has two same adjacent letters. Than all Turkish characters in tweets are converted to equivalents in ASCII table which named asciification procedure.
Proper names' affixes should be separated with apostrophe so if a word has apostrophe it is probably a named entity. Apostrope information is also used as feature to create developed model.

Due to tweet domain peculiarities exact matching of words with gazetteer's elements yields to miss out some named entities which have spelling errors or which are contracted forms of entities. Some words can be written in contracted form or one or more characters in a word can be skipped on purpose or not. These contracted forms or incorrect written words can be a named entity which correct form of them exists in gazetteers. Partial matching techiques used not to miss out these incorrect entites in text. Words in input text compared to gazetteers and distances are calculated with Levenstein distance algorithm. When comparing words with gazetters' elements if any zero distance has occur that means exactly same word exists in relevant gazetteer and the input word is a named entity. If one distance has occure it means input word could be a named entity with one contraction and so on. To decrease time cost of calculating distances of input word, it is compared to words in gazetteers that only starts with same letter as input word instead of comparing each word in gazetteers. 
As a result, base model reaches %90.38 f1-measure, and developed model reaches %90.23 f1-measure in news domain according to CoNLL metrics. In tweet domain, base model reaches %55.29 f1-measure and developed model reaches %61.05 f1-measure according to CoNLL metrics. Base model's performance could be achieved without using morphological processes with external tools. Moreover, developed model gives better results for informal domain. 
So it means no need to use complex morphological and normalization procedure to get reasonable results on tweet domain.
Previous named entity recognition works have shown that conditional random fields (CRF) method reached good performance at recognizing entities. Consequently, in this work CRF have been chosen as the method to build named entity recognition model. CRF are a statistical modelling method used in sequential data classifying. CRF++ tool used to perform CRF algortihm in this study.
Herewith this study is an experiment of named entity recognition on Turkish tweet domain. Tweets have short and informal nature and this make this domain much harder than formal text domain. All of mentioned features has improved the performance of the system for tweets. To improve performance gazetteers can be update, because everday new entites can derive. In addition, partial matching methods can be enhance. 
Developed model only recognizes seven entity types person, location, organization, date, time, money and percentage, but it can be extended to recognize other entity types for example product entity recognition can be important to analyze to get some statistics for companies about their products.