diff --git a/spacy/lang/tr/__init__.py b/spacy/lang/tr/__init__.py new file mode 100644 index 000000000..d1cd04f42 --- /dev/null +++ b/spacy/lang/tr/__init__.py @@ -0,0 +1,28 @@ +# coding: utf8 +from __future__ import unicode_literals + +from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS +from .stop_words import STOP_WORDS + +from ..tokenizer_exceptions import BASE_EXCEPTIONS +from ..norm_exceptions import BASE_NORMS +from ...language import Language +from ...attrs import LANG, NORM +from ...util import update_exc, add_lookups + + +class TurkishDefaults(Language.Defaults): + lex_attr_getters = dict(Language.Defaults.lex_attr_getters) + lex_attr_getters[LANG] = lambda text: 'tr' + lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], BASE_NORMS) + tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS) + stop_words = STOP_WORDS + + +class Turkish(Language): + lang = 'tr' + Defaults = TurkishDefaults + + +__all__ = ['Turkish'] + diff --git a/spacy/lang/tr/stop_words.py b/spacy/lang/tr/stop_words.py new file mode 100644 index 000000000..aaed02a3e --- /dev/null +++ b/spacy/lang/tr/stop_words.py @@ -0,0 +1,512 @@ +# encoding: utf8 +from __future__ import unicode_literals + + +# Source: https://github.com/stopwords-iso/stopwords-tr + +STOP_WORDS = set(""" +acaba +acep +adamakıllı +adeta +ait +altmýþ +altmış +altý +altı +ama +amma +anca +ancak +arada +artýk +aslında +aynen +ayrıca +az +açıkça +açıkçası +bana +bari +bazen +bazý +bazı +başkası +baţka +belki +ben +benden +beni +benim +beri +beriki +beþ +beş +beţ +bilcümle +bile +bin +binaen +binaenaleyh +bir +biraz +birazdan +birbiri +birden +birdenbire +biri +birice +birileri +birisi +birkaç +birkaçı +birkez +birlikte +birçok +birçoğu +birþey +birþeyi +birşey +birşeyi +birţey +bitevi +biteviye +bittabi +biz +bizatihi +bizce +bizcileyin +bizden +bize +bizi +bizim +bizimki +bizzat +boşuna +bu +buna +bunda +bundan +bunlar +bunları +bunların +bunu +bunun +buracıkta +burada +buradan +burası +böyle +böylece +böylecene +böylelikle +böylemesine +böylesine +büsbütün +bütün +cuk +cümlesi +da +daha +dahi +dahil +dahilen +daima +dair +dayanarak +de +defa +dek +demin +demincek +deminden +denli +derakap +derhal +derken +deđil +değil +değin +diye +diđer +diğer +diğeri +doksan +dokuz +dolayı +dolayısıyla +doğru +dört +edecek +eden +ederek +edilecek +ediliyor +edilmesi +ediyor +elbet +elbette +elli +emme +en +enikonu +epey +epeyce +epeyi +esasen +esnasında +etmesi +etraflı +etraflıca +etti +ettiği +ettiğini +evleviyetle +evvel +evvela +evvelce +evvelden +evvelemirde +evveli +eđer +eğer +fakat +filanca +gah +gayet +gayetle +gayri +gayrı +gelgelelim +gene +gerek +gerçi +geçende +geçenlerde +gibi +gibilerden +gibisinden +gine +göre +gırla +hakeza +halbuki +halen +halihazırda +haliyle +handiyse +hangi +hangisi +hani +hariç +hasebiyle +hasılı +hatta +hele +hem +henüz +hep +hepsi +her +herhangi +herkes +herkesin +hiç +hiçbir +hiçbiri +hoş +hulasaten +iken +iki +ila +ile +ilen +ilgili +ilk +illa +illaki +imdi +indinde +inen +insermi +ise +ister +itibaren +itibariyle +itibarıyla +iyi +iyice +iyicene +için +iş +işte +iţte +kadar +kaffesi +kah +kala +kanýmca +karşın +katrilyon +kaynak +kaçı +kelli +kendi +kendilerine +kendini +kendisi +kendisine +kendisini +kere +kez +keza +kezalik +keşke +keţke +ki +kim +kimden +kime +kimi +kimisi +kimse +kimsecik +kimsecikler +külliyen +kýrk +kýsaca +kırk +kısaca +lakin +leh +lütfen +maada +madem +mademki +mamafih +mebni +međer +meğer +meğerki +meğerse +milyar +milyon +mu +mü +mý +mı +nasýl +nasıl +nasılsa +nazaran +naşi +ne +neden +nedeniyle +nedenle +nedense +nerde +nerden +nerdeyse +nere +nerede +nereden +neredeyse +neresi +nereye +netekim +neye +neyi +neyse +nice +nihayet +nihayetinde +nitekim +niye +niçin +o +olan +olarak +oldu +olduklarını +oldukça +olduğu +olduğunu +olmadı +olmadığı +olmak +olması +olmayan +olmaz +olsa +olsun +olup +olur +olursa +oluyor +on +ona +onca +onculayın +onda +ondan +onlar +onlardan +onlari +onlarýn +onları +onların +onu +onun +oracık +oracıkta +orada +oradan +oranca +oranla +oraya +otuz +oysa +oysaki +pek +pekala +peki +pekçe +peyderpey +rağmen +sadece +sahi +sahiden +sana +sanki +sekiz +seksen +sen +senden +seni +senin +siz +sizden +sizi +sizin +sonra +sonradan +sonraları +sonunda +tabii +tam +tamam +tamamen +tamamıyla +tarafından +tek +trilyon +tüm +var +vardı +vasıtasıyla +ve +velev +velhasıl +velhasılıkelam +veya +veyahut +ya +yahut +yakinen +yakında +yakından +yakınlarda +yalnız +yalnızca +yani +yapacak +yapmak +yaptı +yaptıkları +yaptığı +yaptığını +yapılan +yapılması +yapıyor +yedi +yeniden +yenilerde +yerine +yetmiþ +yetmiş +yetmiţ +yine +yirmi +yok +yoksa +yoluyla +yüz +yüzünden +zarfında +zaten +zati +zira +çabuk +çabukça +çeşitli +çok +çokları +çoklarınca +çokluk +çoklukla +çokça +çoğu +çoğun +çoğunca +çoğunlukla +çünkü +öbür +öbürkü +öbürü +önce +önceden +önceleri +öncelikle +öteki +ötekisi +öyle +öylece +öylelikle +öylemesine +öz +üzere +üç +þey +þeyden +þeyi +þeyler +þu +þuna +þunda +þundan +þunu +şayet +şey +şeyden +şeyi +şeyler +şu +şuna +şuncacık +şunda +şundan +şunlar +şunları +şunu +şunun +şura +şuracık +şuracıkta +şurası +şöyle +ţayet +ţimdi +ţu +ţöyle +""".split()) diff --git a/spacy/lang/tr/tokenizer_exceptions.py b/spacy/lang/tr/tokenizer_exceptions.py new file mode 100644 index 000000000..c945c0058 --- /dev/null +++ b/spacy/lang/tr/tokenizer_exceptions.py @@ -0,0 +1,27 @@ +# coding: utf8 +from __future__ import unicode_literals + +from ...symbols import ORTH, NORM + + +# These exceptions are mostly for example purposes – hoping that Turkish +# speakers can contribute in the future! Source of copy-pasted examples: +# https://en.wiktionary.org/wiki/Category:Turkish_language + +_exc = { + "sağol": [ + {ORTH: "sağ"}, + {ORTH: "ol", NORM: "olun"}] +} + + +for exc_data in [ + {ORTH: "A.B.D.", NORM: "Amerika Birleşik Devletleri"}]: + _exc[exc_data[ORTH]] = [exc_data] + + +for orth in ["Dr."]: + _exc[orth] = [{ORTH: orth}] + + +TOKENIZER_EXCEPTIONS = _exc diff --git a/website/models/_data.json b/website/models/_data.json index 71c2bf7d0..d64c94074 100644 --- a/website/models/_data.json +++ b/website/models/_data.json @@ -105,6 +105,7 @@ "pl": "Polish", "ro": "Romanian", "hr": "Croatian", + "tr": "Turkish", "he": "Hebrew", "ga": "Irish", "bn": "Bengali",