mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 09:26:27 +03:00
Turkish tokenization improvements (#6268)
* added single and paired orth variants * added token match * added long text tokenization test * inverted init * normalized lemmas to lowercase * more abbrevs * tests for ordinals and abbrevs * separated period abbvrevs to another list * fiex typo * added ordinal and abbrev tests * added number tests for dates * minor refinement * added inflected abbrevs regex * added percentage and inflection * cosmetics * added token match * added url inflection tests * excluded url tokens from custom pattern * removed url match import
This commit is contained in:
parent
8cc5ed6771
commit
0e55f806dd
|
@ -1,7 +1,7 @@
|
||||||
# coding: utf8
|
# coding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS
|
from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS, TOKEN_MATCH
|
||||||
from .stop_words import STOP_WORDS
|
from .stop_words import STOP_WORDS
|
||||||
from .syntax_iterators import SYNTAX_ITERATORS
|
from .syntax_iterators import SYNTAX_ITERATORS
|
||||||
from .lex_attrs import LEX_ATTRS
|
from .lex_attrs import LEX_ATTRS
|
||||||
|
@ -24,6 +24,7 @@ class TurkishDefaults(Language.Defaults):
|
||||||
)
|
)
|
||||||
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
||||||
stop_words = STOP_WORDS
|
stop_words = STOP_WORDS
|
||||||
|
token_match = TOKEN_MATCH
|
||||||
syntax_iterators = SYNTAX_ITERATORS
|
syntax_iterators = SYNTAX_ITERATORS
|
||||||
morph_rules = MORPH_RULES
|
morph_rules = MORPH_RULES
|
||||||
|
|
||||||
|
|
|
@ -1,119 +1,183 @@
|
||||||
# coding: utf8
|
# coding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from ...symbols import ORTH, NORM
|
import re
|
||||||
|
|
||||||
_exc = {"sağol": [{ORTH: "sağ"}, {ORTH: "ol", NORM: "olun"}]}
|
from ..punctuation import ALPHA_LOWER, ALPHA
|
||||||
|
from ...symbols import ORTH, LEMMA, NORM
|
||||||
|
|
||||||
|
_exc = {}
|
||||||
|
|
||||||
|
|
||||||
for exc_data in [
|
_abbr_period_exc = [
|
||||||
{ORTH: "A.B.D.", NORM: "Amerika Birleşik Devletleri"},
|
{ORTH: "A.B.D.", LEMMA: "Amerika Birleşik Devletleri", NORM: "Amerika"},
|
||||||
{ORTH: "Alb.", NORM: "Albay"},
|
{ORTH: "Alb.", LEMMA: "albay", NORM: "albay"},
|
||||||
{ORTH: "Ar.Gör.", NORM: "Araştırma Görevlisi"},
|
{ORTH: "Ank.", LEMMA: "Ankara", NORM: "Ankara"},
|
||||||
{ORTH: "Arş.Gör.", NORM: "Araştırma Görevlisi"},
|
{ORTH: "Ar.Gör.", LEMMA: "araştırma görevlisi"},
|
||||||
{ORTH: "Asb.", NORM: "Astsubay"},
|
{ORTH: "Arş.Gör.", LEMMA: "araştırma görevlisi"},
|
||||||
{ORTH: "Astsb.", NORM: "Astsubay"},
|
{ORTH: "Asb.", LEMMA: "astsubay", NORM: "astsubay"},
|
||||||
{ORTH: "As.İz.", NORM: "Askeri İnzibat"},
|
{ORTH: "Astsb.", LEMMA: "astsubay", NORM: "astsubay"},
|
||||||
{ORTH: "Atğm", NORM: "Asteğmen"},
|
{ORTH: "As.İz.", LEMMA: "askeri inzibat"},
|
||||||
{ORTH: "Av.", NORM: "Avukat"},
|
{ORTH: "as.iz.", LEMMA: "askeri inzibat"},
|
||||||
{ORTH: "Apt.", NORM: "Apartmanı"},
|
{ORTH: "Atğm", LEMMA: "asteğmen", NORM: "asteğmen"},
|
||||||
{ORTH: "Bçvş.", NORM: "Başçavuş"},
|
{ORTH: "Av.", LEMMA: "avukat", NORM: "avukat"},
|
||||||
{ORTH: "bk.", NORM: "bakınız"},
|
{ORTH: "Apt.", LEMMA: "apartmanı", NORM: "apartmanı"},
|
||||||
{ORTH: "bknz.", NORM: "bakınız"},
|
{ORTH: "apt.", LEMMA: "apartmanı", NORM: "apartmanı"},
|
||||||
{ORTH: "Bnb.", NORM: "Binbaşı"},
|
{ORTH: "Bçvş.", LEMMA: "başçavuş", NORM: "başçavuş"},
|
||||||
{ORTH: "bnb.", NORM: "binbaşı"},
|
{ORTH: "bçvş.", LEMMA: "başçavuş", NORM: "başçavuş"},
|
||||||
{ORTH: "Böl.", NORM: "Bölümü"},
|
{ORTH: "bk.", LEMMA: "bakınız", NORM: "bakınız"},
|
||||||
{ORTH: "Bşk.", NORM: "Başkanlığı"},
|
{ORTH: "bknz.", LEMMA: "bakınız", NORM: "bakınız"},
|
||||||
{ORTH: "Bştbp.", NORM: "Baştabip"},
|
{ORTH: "Bnb.", LEMMA: "binbaşı", NORM: "binbaşı"},
|
||||||
{ORTH: "Bul.", NORM: "Bulvarı"},
|
{ORTH: "bnb.", LEMMA: "binbaşı", NORM: "binbaşı"},
|
||||||
{ORTH: "Cad.", NORM: "Caddesi"},
|
{ORTH: "Böl.", LEMMA: "bölümü", NORM: "bölümü"},
|
||||||
{ORTH: "çev.", NORM: "çeviren"},
|
{ORTH: "böl.", LEMMA: "bölümü", NORM: "bölümü"},
|
||||||
{ORTH: "Çvş.", NORM: "Çavuş"},
|
{ORTH: "Bşk.", LEMMA: "başkanlığı", NORM: "başkanlığı"},
|
||||||
{ORTH: "dak.", NORM: "dakika"},
|
{ORTH: "bşk.", LEMMA: "başkanlığı", NORM: "başkanlığı"},
|
||||||
{ORTH: "dk.", NORM: "dakika"},
|
{ORTH: "Bştbp.", LEMMA: "baştabip", NORM: "baştabip"},
|
||||||
{ORTH: "Doç.", NORM: "Doçent"},
|
{ORTH: "bştbp.", LEMMA: "baştabip", NORM: "baştabip"},
|
||||||
{ORTH: "doğ.", NORM: "doğum tarihi"},
|
{ORTH: "Bul.", LEMMA: "bulvarı", NORM: "bulvarı"},
|
||||||
{ORTH: "drl.", NORM: "derleyen"},
|
{ORTH: "bul.", LEMMA: "bulvarı", NORM: "bulvarı"},
|
||||||
{ORTH: "Dz.", NORM: "Deniz"},
|
{ORTH: "Cad.", LEMMA: "caddesi", NORM: "caddesi"},
|
||||||
{ORTH: "Dz.K.K.lığı", NORM: "Deniz Kuvvetleri Komutanlığı"},
|
{ORTH: "cad.", LEMMA: "caddesi", NORM: "caddesi"},
|
||||||
{ORTH: "Dz.Kuv.", NORM: "Deniz Kuvvetleri"},
|
{ORTH: "çev.", LEMMA: "çeviren", NORM: "çeviren"},
|
||||||
{ORTH: "Dz.Kuv.K.", NORM: "Deniz Kuvvetleri Komutanlığı"},
|
{ORTH: "Çvş.", LEMMA: "çavuş", NORM: "çavuş"},
|
||||||
{ORTH: "dzl.", NORM: "düzenleyen"},
|
{ORTH: "çvş.", LEMMA: "çavuş", NORM: "çavuş"},
|
||||||
{ORTH: "Ecz.", NORM: "Eczanesi"},
|
{ORTH: "dak.", LEMMA: "dakika", NORM: "dakika"},
|
||||||
{ORTH: "ekon.", NORM: "ekonomi"},
|
{ORTH: "dk.", LEMMA: "dakika", NORM: "dakika"},
|
||||||
{ORTH: "Fak.", NORM: "Fakültesi"},
|
{ORTH: "Doç.", LEMMA: "doçent", NORM: "doçent"},
|
||||||
{ORTH: "Gn.", NORM: "Genel"},
|
{ORTH: "doğ.", LEMMA: "doğum tarihi"},
|
||||||
{ORTH: "Gnkur.", NORM: "Genelkurmay"},
|
{ORTH: "Dr.", LEMMA: "doktor", NORM: "doktor"},
|
||||||
{ORTH: "Gn.Kur.", NORM: "Genelkurmay"},
|
{ORTH: "dr.", LEMMA: "doktor", NORM:"doktor"},
|
||||||
{ORTH: "gr.", NORM: "gram"},
|
{ORTH: "drl.", LEMMA: "derleyen", NORM: "derleyen"},
|
||||||
{ORTH: "Hst.", NORM: "Hastanesi"},
|
{ORTH: "Dz.", LEMMA: "deniz", NORM: "deniz"},
|
||||||
{ORTH: "Hs.Uzm.", NORM: "Hesap Uzmanı"},
|
{ORTH: "Dz.K.K.lığı", LEMMA: "Deniz Kuvvetleri Komutanlığı"},
|
||||||
{ORTH: "huk.", NORM: "hukuk"},
|
{ORTH: "Dz.Kuv.", LEMMA: "Deniz Kuvvetleri"},
|
||||||
{ORTH: "Hv.", NORM: "Hava"},
|
{ORTH: "Dz.Kuv.K.", LEMMA: "Deniz Kuvvetleri Komutanlığı"},
|
||||||
{ORTH: "Hv.K.K.lığı", NORM: "Hava Kuvvetleri Komutanlığı"},
|
{ORTH: "dzl.", LEMMA: "düzenleyen", NORM: "düzenleyen"},
|
||||||
{ORTH: "Hv.Kuv.", NORM: "Hava Kuvvetleri"},
|
{ORTH: "Ecz.", LEMMA: "eczanesi", NORM: "eczanesi"},
|
||||||
{ORTH: "Hv.Kuv.K.", NORM: "Hava Kuvvetleri Komutanlığı"},
|
{ORTH: "ecz.", LEMMA: "eczanesi", NORM: "eczanesi"},
|
||||||
{ORTH: "Hz.", NORM: "Hazreti"},
|
{ORTH: "ekon.", LEMMA: "ekonomi", NORM: "ekonomi"},
|
||||||
{ORTH: "Hz.Öz.", NORM: "Hizmete Özel"},
|
{ORTH: "Fak.", LEMMA: "fakültesi", NORM: "fakültesi"},
|
||||||
{ORTH: "İng.", NORM: "İngilizce"},
|
{ORTH: "Gn.", LEMMA: "genel", NORM: "genel"},
|
||||||
{ORTH: "Jeol.", NORM: "Jeoloji"},
|
{ORTH: "Gnkur.", LEMMA: "Genelkurmay", NORM: "Genelkurmay"},
|
||||||
{ORTH: "jeol.", NORM: "jeoloji"},
|
{ORTH: "Gn.Kur.", LEMMA: "Genelkurmay", NORM: "Genelkurmay"},
|
||||||
{ORTH: "Korg.", NORM: "Korgeneral"},
|
{ORTH: "gr.", LEMMA: "gram", NORM: "gram"},
|
||||||
{ORTH: "Kur.", NORM: "Kurmay"},
|
{ORTH: "Hst.", LEMMA: "hastanesi", NORM: "hastanesi"},
|
||||||
{ORTH: "Kur.Bşk.", NORM: "Kurmay Başkanı"},
|
{ORTH: "hst.", LEMMA: "hastanesi", NORM: "hastanesi"},
|
||||||
{ORTH: "Kuv.", NORM: "Kuvvetleri"},
|
{ORTH: "Hs.Uzm.", LEMMA: "hesap uzmanı"},
|
||||||
{ORTH: "Ltd.", NORM: "Limited"},
|
{ORTH: "huk.", LEMMA: "hukuk", NORM: "hukuk"},
|
||||||
{ORTH: "Mah.", NORM: "Mahallesi"},
|
{ORTH: "Hv.", LEMMA: "hava", NORM: "hava"},
|
||||||
{ORTH: "mah.", NORM: "mahallesi"},
|
{ORTH: "Hv.K.K.lığı", LEMMA: "Hava Kuvvetleri Komutanlığı"},
|
||||||
{ORTH: "max.", NORM: "maksimum"},
|
{ORTH: "Hv.Kuv.", LEMMA: "Hava Kuvvetleri"},
|
||||||
{ORTH: "min.", NORM: "minimum"},
|
{ORTH: "Hv.Kuv.K.", LEMMA: "Hava Kuvvetleri Komutanlığı"},
|
||||||
{ORTH: "Müh.", NORM: "Mühendisliği"},
|
{ORTH: "Hz.", LEMMA: "hazreti", NORM: "hazreti"},
|
||||||
{ORTH: "müh.", NORM: "mühendisliği"},
|
{ORTH: "Hz.Öz.", LEMMA: "hizmete özel"},
|
||||||
{ORTH: "MÖ.", NORM: "Milattan Önce"},
|
{ORTH: "İng.", LEMMA: "ingilizce", NORM: "ingilizce"},
|
||||||
{ORTH: "Onb.", NORM: "Onbaşı"},
|
{ORTH: "İst.", LEMMA: "İstanbul", NORM: "İstanbul"},
|
||||||
{ORTH: "Ord.", NORM: "Ordinaryüs"},
|
{ORTH: "Jeol.", LEMMA: "jeoloji", NORM: "jeoloji"},
|
||||||
{ORTH: "Org.", NORM: "Orgeneral"},
|
{ORTH: "jeol.", LEMMA: "jeoloji", NORM: "jeoloji"},
|
||||||
{ORTH: "Ped.", NORM: "Pedagoji"},
|
{ORTH: "Korg.", LEMMA: "korgeneral", NORM: "korgeneral"},
|
||||||
{ORTH: "Prof.", NORM: "Profesör"},
|
{ORTH: "Kur.", LEMMA: "kurmay", NORM: "kurmay"},
|
||||||
{ORTH: "Sb.", NORM: "Subay"},
|
{ORTH: "Kur.Bşk.", LEMMA: "kurmay başkanı"},
|
||||||
{ORTH: "Sn.", NORM: "Sayın"},
|
{ORTH: "Kuv.", LEMMA: "kuvvetleri", NORM: "kuvvetleri"},
|
||||||
{ORTH: "sn.", NORM: "saniye"},
|
{ORTH: "Ltd.", LEMMA: "limited", NORM: "limited"},
|
||||||
{ORTH: "Sok.", NORM: "Sokak"},
|
{ORTH: "ltd.", LEMMA: "limited", NORM: "limited"},
|
||||||
{ORTH: "Şb.", NORM: "Şube"},
|
{ORTH: "Mah.", LEMMA: "mahallesi", NORM: "mahallesi"},
|
||||||
{ORTH: "Şti.", NORM: "Şirketi"},
|
{ORTH: "mah.", LEMMA: "mahallesi", NORM: "mahallesi"},
|
||||||
{ORTH: "Tbp.", NORM: "Tabip"},
|
{ORTH: "max.", LEMMA: "maksimum", NORM: "maksimum"},
|
||||||
{ORTH: "T.C.", NORM: "Türkiye Cumhuriyeti"},
|
{ORTH: "min.", LEMMA: "minimum", NORM: "minimum"},
|
||||||
{ORTH: "Tel.", NORM: "Telefon"},
|
{ORTH: "Müh.", LEMMA: "mühendisliği", NORM: "mühendisliği"},
|
||||||
{ORTH: "tel.", NORM: "telefon"},
|
{ORTH: "müh.", LEMMA: "mühendisliği", NORM: "mühendisliği"},
|
||||||
{ORTH: "telg.", NORM: "telgraf"},
|
{ORTH: "M.Ö.", LEMMA: "milattan önce"},
|
||||||
{ORTH: "Tğm.", NORM: "Teğmen"},
|
{ORTH: "M.S.", LEMMA: "milattan sonra"},
|
||||||
{ORTH: "tğm.", NORM: "teğmen"},
|
{ORTH: "Onb.", LEMMA: "onbaşı", NORM: "onbaşı"},
|
||||||
{ORTH: "tic.", NORM: "ticaret"},
|
{ORTH: "Ord.", LEMMA: "ordinaryüs", NORM: "ordinaryüs"},
|
||||||
{ORTH: "Tug.", NORM: "Tugay"},
|
{ORTH: "Org.", LEMMA: "orgeneral", NORM: "orgeneral"},
|
||||||
{ORTH: "Tuğg.", NORM: "Tuğgeneral"},
|
{ORTH: "Ped.", LEMMA: "pedagoji", NORM: "pedagoji"},
|
||||||
{ORTH: "Tümg.", NORM: "Tümgeneral"},
|
{ORTH: "Prof.", LEMMA: "profesör", NORM: "profesör"},
|
||||||
{ORTH: "Uzm.", NORM: "Uzman"},
|
{ORTH: "prof.", LEMMA: "profesör", NORM: "profesör"},
|
||||||
{ORTH: "Üçvş.", NORM: "Üstçavuş"},
|
{ORTH: "Sb.", LEMMA: "subay", NORM: "subay"},
|
||||||
{ORTH: "Üni.", NORM: "Üniversitesi"},
|
{ORTH: "Sn.", LEMMA: "sayın", NORM: "sayın"},
|
||||||
{ORTH: "Ütğm.", NORM: "Üsteğmen"},
|
{ORTH: "sn.", LEMMA: "saniye", NORM: "saniye"},
|
||||||
{ORTH: "vb.", NORM: "ve benzeri"},
|
{ORTH: "Sok.", LEMMA: "sokak", NORM: "sokak"},
|
||||||
{ORTH: "vs.", NORM: "vesaire"},
|
{ORTH: "sok.", LEMMA: "sokak", NORM: "sokak"},
|
||||||
{ORTH: "Yard.", NORM: "Yardımcı"},
|
{ORTH: "Şb.", LEMMA: "şube", NORM: "şube"},
|
||||||
{ORTH: "Yar.", NORM: "Yardımcı"},
|
{ORTH: "şb.", LEMMA: "şube", NORM: "şube"},
|
||||||
{ORTH: "Yd.Sb.", NORM: "Yedek Subay"},
|
{ORTH: "Şti.", LEMMA: "şirketi", NORM: "şirketi"},
|
||||||
{ORTH: "Yard.Doç.", NORM: "Yardımcı Doçent"},
|
{ORTH: "şti.", LEMMA: "şirketi", NORM: "şirketi"},
|
||||||
{ORTH: "Yar.Doç.", NORM: "Yardımcı Doçent"},
|
{ORTH: "Tbp.", LEMMA: "tabip", NORM: "tabip"},
|
||||||
{ORTH: "Yb.", NORM: "Yarbay"},
|
{ORTH: "tbp.", LEMMA: "tabip", NORM: "tabip"},
|
||||||
{ORTH: "Yrd.", NORM: "Yardımcı"},
|
{ORTH: "T.C.", LEMMA: "Türkiye Cumhuriyeti"},
|
||||||
{ORTH: "Yrd.Doç.", NORM: "Yardımcı Doçent"},
|
{ORTH: "Tel.", LEMMA: "telefon", NORM: "telefon"},
|
||||||
{ORTH: "Y.Müh.", NORM: "Yüksek mühendis"},
|
{ORTH: "tel.", LEMMA: "telefon", NORM: "telefon"},
|
||||||
{ORTH: "Y.Mim.", NORM: "Yüksek mimar"},
|
{ORTH: "telg.", LEMMA: "telgraf", NORM: "telgraf"},
|
||||||
]:
|
{ORTH: "Tğm.", LEMMA: "teğmen", NORM: "teğmen"},
|
||||||
_exc[exc_data[ORTH]] = [exc_data]
|
{ORTH: "tğm.", LEMMA: "teğmen", NORM: "teğmen"},
|
||||||
|
{ORTH: "tic.", LEMMA: "ticaret", NORM: "ticaret"},
|
||||||
|
{ORTH: "Tug.", LEMMA: "tugay", NORM: "tugay"},
|
||||||
|
{ORTH: "Tuğg.", LEMMA: "tuğgeneral", NORM: "tuğgeneral"},
|
||||||
|
{ORTH: "Tümg.", LEMMA: "tümgeneral", NORM: "tümgeneral"},
|
||||||
|
{ORTH: "Uzm.", LEMMA: "uzman", NORM: "uzman"},
|
||||||
|
{ORTH: "Üçvş.", LEMMA: "üstçavuş", NORM: "üstçavuş"},
|
||||||
|
{ORTH: "Üni.", LEMMA: "üniversitesi", NORM: "üniversitesi"},
|
||||||
|
{ORTH: "Ütğm.", LEMMA: "üsteğmen", NORM: "üsteğmen"},
|
||||||
|
{ORTH: "vb.", LEMMA: "ve benzeri"},
|
||||||
|
{ORTH: "vs.", LEMMA: "vesaire", NORM: "vesaire"},
|
||||||
|
{ORTH: "Yard.", LEMMA: "yardımcı", NORM: "yardımcı"},
|
||||||
|
{ORTH: "Yar.", LEMMA: "yardımcı", NORM: "yardımcı"},
|
||||||
|
{ORTH: "Yd.Sb.", LEMMA: "yedek subay"},
|
||||||
|
{ORTH: "Yard.Doç.", LEMMA: "yardımcı doçent"},
|
||||||
|
{ORTH: "Yar.Doç.", LEMMA: "yardımcı doçent"},
|
||||||
|
{ORTH: "Yb.", LEMMA: "yarbay", NORM: "yarbay"},
|
||||||
|
{ORTH: "Yrd.", LEMMA: "yardımcı", NORM: "yardımcı"},
|
||||||
|
{ORTH: "Yrd.Doç.", LEMMA: "yardımcı doçent"},
|
||||||
|
{ORTH: "Y.Müh.", LEMMA: "yüksek mühendis"},
|
||||||
|
{ORTH: "Y.Mim.", LEMMA: "yüksek mimar"},
|
||||||
|
{ORTH: "yy.", LEMMA: "yüzyıl", NORM: "yüzyıl"},
|
||||||
|
]
|
||||||
|
|
||||||
|
for abbr in _abbr_period_exc:
|
||||||
|
_exc[abbr[ORTH]] = [abbr]
|
||||||
|
|
||||||
|
_abbr_exc = [
|
||||||
|
{ORTH: "AB", LEMMA: "Avrupa Birliği", NORM: "Avrupa Birliği"},
|
||||||
|
{ORTH: "ABD", LEMMA: "Amerika Birleşik Devletleri", NORM: "Amerika"},
|
||||||
|
{ORTH: "ABS", LEMMA: "fren", NORM: "fren"},
|
||||||
|
{ORTH: "AOÇ", LEMMA: "Atatürk orman çiftliği"},
|
||||||
|
{ORTH: "ASKİ", LEMMA: "Ankara su ve kanalizasyon idaresi"},
|
||||||
|
{ORTH: "Bağ-kur", LEMMA: "Bağkur", NORM: "Bağkur"},
|
||||||
|
{ORTH: "BDDK", LEMMA: "bankacılık düzenleme ve denetleme kurumu"},
|
||||||
|
{ORTH: "BJK", LEMMA: "Beşiktaş", NORM: "Beşiktaş"},
|
||||||
|
{ORTH: "ESA", LEMMA: "Avrupa uzay ajansı", NORM: "Avrupa uzay ajansı"},
|
||||||
|
{ORTH: "FB", LEMMA: "Fenerbahçe", NORM: "Fenerbahçe"},
|
||||||
|
{ORTH: "GATA", LEMMA: "Gülhane askeri tıp akademisi"},
|
||||||
|
{ORTH: "GS", LEMMA: "Galatasaray", NORM: "Galatasaray"},
|
||||||
|
{ORTH: "İSKİ", LEMMA: "İstanbul su ve kanalizasyon idaresi"},
|
||||||
|
{ORTH: "KBB", LEMMA: "kulak burun boğaz"},
|
||||||
|
{ORTH: "RTÜK", LEMMA: "radyo ve televizyon üst kurulu", NORM: "radyo ve televizyon üst kurulu"},
|
||||||
|
{ORTH: "TBMM", LEMMA: "Türkiye Büyük Millet Meclisi"},
|
||||||
|
{ORTH: "TC", LEMMA: "Türkiye Cumhuriyeti"},
|
||||||
|
{ORTH: "TÜİK", LEMMA: "Türkiye istatistik kurumu", NORM: "Türkiye istatistik kurumu"},
|
||||||
|
{ORTH: "YÖK", LEMMA: "Yüksek Öğrenim Kurumu"},
|
||||||
|
]
|
||||||
|
|
||||||
|
for abbr in _abbr_exc:
|
||||||
|
_exc[abbr[ORTH]] = [abbr]
|
||||||
|
|
||||||
|
|
||||||
for orth in ["Dr.", "yy."]:
|
|
||||||
_exc[orth] = [{ORTH: orth}]
|
|
||||||
|
|
||||||
|
_num = r"[+-]?\d+([,.]\d+)*"
|
||||||
|
_ord_num = r"(\d+\.)"
|
||||||
|
_date = r"(((\d{1,2}[./-]){2})?(\d{4})|(\d{1,2}[./]\d{1,2}(\.)?))"
|
||||||
|
_dash_num = r"(([{al}\d]+/\d+)|(\d+/[{al}]))".format(al=ALPHA)
|
||||||
|
_roman_num = "M{0,3}(?:C[MD]|D?C{0,3})(?:X[CL]|L?X{0,3})(?:I[XV]|V?I{0,3})"
|
||||||
|
_roman_ord = r"({rn})\.".format(rn=_roman_num)
|
||||||
|
_time_exp = r"\d+(:\d+)*"
|
||||||
|
|
||||||
|
_inflections = r"'[{al}]+".format(al=ALPHA_LOWER)
|
||||||
|
_abbrev_inflected = r"[{a}]+\.'[{al}]+".format(a=ALPHA, al=ALPHA_LOWER)
|
||||||
|
|
||||||
|
_nums = r"(({d})|({dn})|({te})|({on})|({n})|({ro})|({rn}))({inf})?".format(d=_date, dn=_dash_num, te=_time_exp, on=_ord_num, n=_num, ro=_roman_ord, rn=_roman_num, inf=_inflections)
|
||||||
|
|
||||||
TOKENIZER_EXCEPTIONS = _exc
|
TOKENIZER_EXCEPTIONS = _exc
|
||||||
|
TOKEN_MATCH = re.compile(r"^({abbr})|({n})$".format(n=_nums, abbr=_abbrev_inflected)).match
|
||||||
|
|
|
@ -5,6 +5,27 @@ import pytest
|
||||||
from spacy.lang.tr.lex_attrs import like_num
|
from spacy.lang.tr.lex_attrs import like_num
|
||||||
|
|
||||||
|
|
||||||
|
def test_tr_tokenizer_handles_long_text(tr_tokenizer):
|
||||||
|
text = """Pamuk nasıl ipliğe dönüştürülür?
|
||||||
|
|
||||||
|
Sıkıştırılmış balyalar halindeki pamuk, iplik fabrikasına getirildiğinde hem
|
||||||
|
lifleri birbirine dolaşmıştır, hem de tarladan toplanırken araya bitkinin
|
||||||
|
parçaları karışmıştır. Üstelik balyalardaki pamuğun cinsi aynı olsa bile kalitesi
|
||||||
|
değişeceğinden, önce bütün balyaların birbirine karıştırılarak harmanlanması gerekir.
|
||||||
|
|
||||||
|
Daha sonra pamuk yığınları, liflerin açılıp temizlenmesi için tek bir birim halinde
|
||||||
|
birleştirilmiş çeşitli makinelerden geçirilir.Bunlardan biri, dönen tokmaklarıyla
|
||||||
|
pamuğu dövüp kabartarak dağınık yumaklar haline getiren ve liflerin arasındaki yabancı
|
||||||
|
maddeleri temizleyen hallaç makinesidir. Daha sonra tarak makinesine giren pamuk demetleri,
|
||||||
|
herbirinin yüzeyinde yüzbinlerce incecik iğne bulunan döner silindirlerin arasından geçerek lif lif ayrılır
|
||||||
|
ve tül inceliğinde gevşek bir örtüye dönüşür. Ama bir sonraki makine bu lifleri dağınık
|
||||||
|
ve gevşek bir biçimde birbirine yaklaştırarak 2 cm eninde bir pamuk şeridi haline getirir."""
|
||||||
|
tokens = tr_tokenizer(text)
|
||||||
|
assert len(tokens) == 146
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"word",
|
"word",
|
||||||
[
|
[
|
||||||
|
|
164
spacy/tests/lang/tr/test_tokenizer.py
Normal file
164
spacy/tests/lang/tr/test_tokenizer.py
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
# coding: utf-8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
ABBREV_TESTS = [
|
||||||
|
("Dr. Murat Bey ile görüştüm.", ["Dr.", "Murat", "Bey", "ile", "görüştüm", "."]),
|
||||||
|
("Dr.la görüştüm.", ["Dr.la", "görüştüm", "."]),
|
||||||
|
("Dr.'la görüştüm.", ["Dr.'la", "görüştüm", "."]),
|
||||||
|
("TBMM'de çalışıyormuş.", ["TBMM'de", "çalışıyormuş", "."]),
|
||||||
|
("Hem İst. hem Ank. bu konuda gayet iyi durumda.", ["Hem", "İst.", "hem", "Ank.", "bu", "konuda", "gayet", "iyi", "durumda", "."]),
|
||||||
|
("Hem İst. hem Ank.'da yağış var.", ["Hem", "İst.", "hem", "Ank.'da", "yağış", "var", "."]),
|
||||||
|
("Dr.", ["Dr."]),
|
||||||
|
("Yrd.Doç.", ["Yrd.Doç."]),
|
||||||
|
("Prof.'un", ["Prof.'un"]),
|
||||||
|
("Böl.'nde", ["Böl.'nde"]),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
URL_TESTS = [
|
||||||
|
("Bizler de www.duygu.com.tr adında bir websitesi kurduk.", ["Bizler", "de", "www.duygu.com.tr", "adında", "bir", "websitesi", "kurduk", "."]),
|
||||||
|
("Bizler de https://www.duygu.com.tr adında bir websitesi kurduk.", ["Bizler", "de", "https://www.duygu.com.tr", "adında", "bir", "websitesi", "kurduk", "."]),
|
||||||
|
("Bizler de www.duygu.com.tr'dan satın aldık.", ["Bizler", "de", "www.duygu.com.tr'dan", "satın", "aldık", "."]),
|
||||||
|
("Bizler de https://www.duygu.com.tr'dan satın aldık.", ["Bizler", "de", "https://www.duygu.com.tr'dan", "satın", "aldık", "."]),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NUMBER_TESTS = [
|
||||||
|
("Rakamla 6 yazılıydı.", ["Rakamla", "6", "yazılıydı", "."]),
|
||||||
|
("Hava -4 dereceydi.", ["Hava", "-4", "dereceydi", "."]),
|
||||||
|
("Hava sıcaklığı -4ten +6ya yükseldi.", ["Hava", "sıcaklığı", "-4ten", "+6ya", "yükseldi", "."]),
|
||||||
|
("Hava sıcaklığı -4'ten +6'ya yükseldi.", ["Hava", "sıcaklığı", "-4'ten", "+6'ya", "yükseldi", "."]),
|
||||||
|
("Yarışta 6. oldum.", ["Yarışta", "6.", "oldum", "."]),
|
||||||
|
("Yarışta 438547745. oldum.", ["Yarışta", "438547745.", "oldum", "."]),
|
||||||
|
("Kitap IV. Murat hakkında.",["Kitap", "IV.", "Murat", "hakkında", "."]),
|
||||||
|
#("Bana söylediği sayı 6.", ["Bana", "söylediği", "sayı", "6", "."]),
|
||||||
|
("Saat 6'da buluşalım.", ["Saat", "6'da", "buluşalım", "."]),
|
||||||
|
("Saat 6dan sonra buluşalım.", ["Saat", "6dan", "sonra", "buluşalım", "."]),
|
||||||
|
("6.dan sonra saymadım.", ["6.dan", "sonra", "saymadım", "."]),
|
||||||
|
("6.'dan sonra saymadım.", ["6.'dan", "sonra", "saymadım", "."]),
|
||||||
|
("Saat 6'ydı.", ["Saat", "6'ydı", "."]),
|
||||||
|
("5'te", ["5'te"]),
|
||||||
|
("6'da", ["6'da"]),
|
||||||
|
("9dan", ["9dan"]),
|
||||||
|
("19'da", ["19'da"]),
|
||||||
|
("VI'da", ["VI'da"]),
|
||||||
|
("5.", ["5."]),
|
||||||
|
("72.", ["72."]),
|
||||||
|
("VI.", ["VI."]),
|
||||||
|
("6.'dan", ["6.'dan"]),
|
||||||
|
("19.'dan", ["19.'dan"]),
|
||||||
|
("6.dan", ["6.dan"]),
|
||||||
|
("16.dan", ["16.dan"]),
|
||||||
|
("VI.'dan", ["VI.'dan"]),
|
||||||
|
("VI.dan", ["VI.dan"]),
|
||||||
|
("Hepsi 1994 yılında oldu.", ["Hepsi", "1994", "yılında", "oldu", "."]),
|
||||||
|
("Hepsi 1994'te oldu.", ["Hepsi", "1994'te", "oldu", "."]),
|
||||||
|
("2/3 tarihli faturayı bulamadım.", ["2/3", "tarihli", "faturayı", "bulamadım", "."]),
|
||||||
|
("2.3 tarihli faturayı bulamadım.", ["2.3", "tarihli", "faturayı", "bulamadım", "."]),
|
||||||
|
("2.3. tarihli faturayı bulamadım.", ["2.3.", "tarihli", "faturayı", "bulamadım", "."]),
|
||||||
|
("2/3/2020 tarihli faturayı bulamadm.", ["2/3/2020", "tarihli", "faturayı", "bulamadm", "."]),
|
||||||
|
("2/3/1987 tarihinden beri burda yaşıyorum.", ["2/3/1987", "tarihinden", "beri", "burda", "yaşıyorum", "."]),
|
||||||
|
("2-3-1987 tarihinden beri burdayım.", ["2-3-1987", "tarihinden", "beri", "burdayım", "."]),
|
||||||
|
("2.3.1987 tarihinden beri burdayım.", ["2.3.1987", "tarihinden", "beri", "burdayım", "."]),
|
||||||
|
("Bu olay 2005-2006 tarihleri arasında oldu.", ["Bu", "olay", "2005", "-", "2006", "tarihleri", "arasında", "oldu", "."]),
|
||||||
|
("Bu olay 4/12/2005-21/3/2006 tarihleri arasında oldu.", ["Bu", "olay", "4/12/2005", "-", "21/3/2006", "tarihleri", "arasında", "oldu", ".",]),
|
||||||
|
("Ek fıkra: 5/11/2003-4999/3 maddesine göre uygundur.", ["Ek", "fıkra", ":", "5/11/2003", "-", "4999/3", "maddesine", "göre", "uygundur", "."]),
|
||||||
|
("2/A alanları: 6831 sayılı Kanunun 2nci maddesinin birinci fıkrasının (A) bendine göre", ["2/A", "alanları", ":", "6831", "sayılı", "Kanunun", "2nci", "maddesinin", "birinci", "fıkrasının", "(", "A", ")", "bendine", "göre"]),
|
||||||
|
("ŞEHİTTEĞMENKALMAZ Cad. No: 2/311", ["ŞEHİTTEĞMENKALMAZ", "Cad.", "No", ":", "2/311"]),
|
||||||
|
("2-3-2025", ["2-3-2025",]),
|
||||||
|
("2/3/2025", ["2/3/2025"]),
|
||||||
|
("Yıllardır 0.5 uç kullanıyorum.", ["Yıllardır", "0.5", "uç", "kullanıyorum", "."]),
|
||||||
|
("Kan değerlerim 0.5-0.7 arasıydı.", ["Kan", "değerlerim", "0.5", "-", "0.7", "arasıydı", "."]),
|
||||||
|
("0.5", ["0.5"]),
|
||||||
|
("1/2", ["1/2"]),
|
||||||
|
("%1", ["%", "1"]),
|
||||||
|
("%1lik", ["%", "1lik"]),
|
||||||
|
("%1'lik", ["%", "1'lik"]),
|
||||||
|
("%1lik dilim", ["%", "1lik", "dilim"]),
|
||||||
|
("%1'lik dilim", ["%", "1'lik", "dilim"]),
|
||||||
|
("%1.5", ["%", "1.5"]),
|
||||||
|
#("%1-%2 arası büyüme bekleniyor.", ["%", "1", "-", "%", "2", "arası", "büyüme", "bekleniyor", "."]),
|
||||||
|
("%1-2 arası büyüme bekliyoruz.", ["%", "1", "-", "2", "arası", "büyüme", "bekliyoruz", "."]),
|
||||||
|
("%11-12 arası büyüme bekliyoruz.", ["%", "11", "-", "12", "arası", "büyüme", "bekliyoruz", "."]),
|
||||||
|
("%1.5luk büyüme bekliyoruz.", ["%", "1.5luk", "büyüme", "bekliyoruz", "."]),
|
||||||
|
("Saat 1-2 arası gelin lütfen.", ["Saat", "1", "-", "2", "arası", "gelin", "lütfen", "."]),
|
||||||
|
("Saat 15:30 gibi buluşalım.", ["Saat", "15:30", "gibi", "buluşalım", "."]),
|
||||||
|
("Saat 15:30'da buluşalım.", ["Saat", "15:30'da", "buluşalım", "."]),
|
||||||
|
("Saat 15.30'da buluşalım.", ["Saat", "15.30'da", "buluşalım", "."]),
|
||||||
|
("Saat 15.30da buluşalım.", ["Saat", "15.30da", "buluşalım", "."]),
|
||||||
|
("Saat 15 civarı buluşalım.", ["Saat", "15", "civarı", "buluşalım", "."]),
|
||||||
|
("9’daki otobüse binsek mi?", ["9’daki", "otobüse", "binsek", "mi", "?"]),
|
||||||
|
("Okulumuz 3-B şubesi", ["Okulumuz", "3-B", "şubesi"]),
|
||||||
|
("Okulumuz 3/B şubesi", ["Okulumuz", "3/B", "şubesi"]),
|
||||||
|
("Okulumuz 3B şubesi", ["Okulumuz", "3B", "şubesi"]),
|
||||||
|
("Okulumuz 3b şubesi", ["Okulumuz", "3b", "şubesi"]),
|
||||||
|
("Antonio Gaudí 20. yüzyılda, 1904-1914 yılları arasında on yıl süren bir reform süreci getirmiştir.", ["Antonio", "Gaudí", "20.", "yüzyılda", ",", "1904", "-", "1914", "yılları", "arasında", "on", "yıl", "süren", "bir", "reform", "süreci", "getirmiştir", "."]),
|
||||||
|
("Dizel yakıtın avro bölgesi ortalaması olan 1,165 avroya kıyasla litre başına 1,335 avroya mal olduğunu gösteriyor.", ["Dizel", "yakıtın", "avro", "bölgesi", "ortalaması", "olan", "1,165", "avroya", "kıyasla", "litre", "başına", "1,335", "avroya", "mal", "olduğunu", "gösteriyor", "."]),
|
||||||
|
("Marcus Antonius M.Ö. 1 Ocak 49'da, Sezar'dan Vali'nin kendisini barış dostu ilan ettiği bir bildiri yayınlamıştır.", ["Marcus", "Antonius", "M.Ö.", "1", "Ocak", "49'da", ",", "Sezar'dan", "Vali'nin", "kendisini", "barış", "dostu", "ilan", "ettiği", "bir", "bildiri", "yayınlamıştır", "."])
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
PUNCT_TESTS = [
|
||||||
|
("Gitmedim dedim ya!", ["Gitmedim", "dedim", "ya", "!"]),
|
||||||
|
("Gitmedim dedim ya!!", ["Gitmedim", "dedim", "ya", "!", "!"]),
|
||||||
|
("Gitsek mi?", ["Gitsek", "mi", "?"]),
|
||||||
|
("Gitsek mi??", ["Gitsek", "mi", "?", "?"]),
|
||||||
|
("Gitsek mi?!?", ["Gitsek", "mi", "?", "!", "?"]),
|
||||||
|
("Ankara - Antalya arası otobüs işliyor.", ["Ankara", "-", "Antalya", "arası", "otobüs", "işliyor", "."]),
|
||||||
|
("Ankara-Antalya arası otobüs işliyor.", ["Ankara", "-", "Antalya", "arası", "otobüs", "işliyor", "."]),
|
||||||
|
("Sen--ben, ya da onlar.", ["Sen", "--", "ben", ",", "ya", "da", "onlar", "."]),
|
||||||
|
("Senden, benden, bizden şarkısını biliyor musun?", ["Senden", ",", "benden", ",", "bizden", "şarkısını", "biliyor", "musun", "?"]),
|
||||||
|
("Akif'le geldik, sonra da o ayrıldı.", ["Akif'le", "geldik", ",", "sonra", "da", "o", "ayrıldı", "."]),
|
||||||
|
("Bu adam ne dedi şimdi???", ["Bu", "adam", "ne", "dedi", "şimdi", "?", "?", "?"]),
|
||||||
|
("Yok hasta olmuş, yok annesi hastaymış, bahaneler işte...", ["Yok", "hasta", "olmuş", ",", "yok", "annesi", "hastaymış", ",", "bahaneler", "işte", "..."]),
|
||||||
|
("Ankara'dan İstanbul'a ... bir aşk hikayesi.", ["Ankara'dan", "İstanbul'a", "...", "bir", "aşk", "hikayesi", "."]),
|
||||||
|
("Ahmet'te", ["Ahmet'te"]),
|
||||||
|
("İstanbul'da", ["İstanbul'da"]),
|
||||||
|
]
|
||||||
|
|
||||||
|
GENERAL_TESTS = [
|
||||||
|
("1914'teki Endurance seferinde, Sir Ernest Shackleton'ın kaptanlığını yaptığı İngiliz Endurance gemisi yirmi sekiz kişi ile Antarktika'yı geçmek üzere yelken açtı.", ["1914'teki", "Endurance", "seferinde", ",", "Sir", "Ernest", "Shackleton'ın", "kaptanlığını", "yaptığı", "İngiliz", "Endurance", "gemisi", "yirmi", "sekiz", "kişi", "ile", "Antarktika'yı", "geçmek", "üzere", "yelken", "açtı", "."]),
|
||||||
|
("Danışılan \"%100 Cospedal\" olduğunu belirtti.", ["Danışılan", '"', "%", "100", "Cospedal", '"', "olduğunu", "belirtti", "."]),
|
||||||
|
("1976'da parkur artık kullanılmıyordu; 1990'da ise bir yangın, daha sonraları ahırlarla birlikte yıkılacak olan tahta tribünlerden geri kalanları da yok etmişti.", ["1976'da", "parkur", "artık", "kullanılmıyordu", ";", "1990'da", "ise", "bir", "yangın", ",", "daha", "sonraları", "ahırlarla", "birlikte", "yıkılacak", "olan", "tahta", "tribünlerden", "geri", "kalanları", "da", "yok", "etmişti", "."]),
|
||||||
|
("Dahiyane bir ameliyat ve zorlu bir rehabilitasyon sürecinden sonra, tamamen iyileştim.", ["Dahiyane", "bir", "ameliyat", "ve", "zorlu", "bir", "rehabilitasyon", "sürecinden", "sonra", ",", "tamamen", "iyileştim", "."]),
|
||||||
|
("Yaklaşık iki hafta süren bireysel erken oy kullanma döneminin ardından 5,7 milyondan fazla Floridalı sandık başına gitti.", ["Yaklaşık", "iki", "hafta", "süren", "bireysel", "erken", "oy", "kullanma", "döneminin", "ardından", "5,7", "milyondan", "fazla", "Floridalı", "sandık", "başına", "gitti", "."]),
|
||||||
|
("Ancak, bu ABD Çevre Koruma Ajansı'nın dünyayı bu konularda uyarmasının ardından ortaya çıktı.", ["Ancak", ",", "bu", "ABD", "Çevre", "Koruma", "Ajansı'nın", "dünyayı", "bu", "konularda", "uyarmasının", "ardından", "ortaya", "çıktı", "."]),
|
||||||
|
("Ortalama şansa ve 10.000 Sterlin değerinde tahvillere sahip bir yatırımcı yılda 125 Sterlin ikramiye kazanabilir.", ["Ortalama", "şansa", "ve", "10.000", "Sterlin", "değerinde", "tahvillere", "sahip", "bir", "yatırımcı", "yılda", "125", "Sterlin", "ikramiye", "kazanabilir", "."]),
|
||||||
|
("Granit adaları; Seyşeller ve Tioman ile Saint Helena gibi volkanik adaları kapsar." , ["Granit", "adaları", ";", "Seyşeller", "ve", "Tioman", "ile", "Saint", "Helena", "gibi", "volkanik", "adaları", "kapsar", "."]),
|
||||||
|
("Barış antlaşmasıyla İspanya, Amerika'ya Porto Riko, Guam ve Filipinler kolonilerini devretti.", ["Barış", "antlaşmasıyla", "İspanya", ",", "Amerika'ya", "Porto", "Riko", ",", "Guam", "ve", "Filipinler", "kolonilerini", "devretti", "."]),
|
||||||
|
("Makedonya\'nın sınır bölgelerini güvence altına alan Philip, büyük bir Makedon ordusu kurdu ve uzun bir fetih seferi için Trakya\'ya doğru yürüdü.", ["Makedonya\'nın", "sınır", "bölgelerini", "güvence", "altına", "alan", "Philip", ",", "büyük", "bir", "Makedon", "ordusu", "kurdu", "ve", "uzun", "bir", "fetih", "seferi", "için", "Trakya\'ya", "doğru", "yürüdü", "."]),
|
||||||
|
("Fransız gazetesi Le Figaro'ya göre bu hükumet planı sayesinde 42 milyon Euro kazanç sağlanabilir ve elde edilen paranın 15.5 milyonu ulusal güvenlik için kullanılabilir.", ["Fransız", "gazetesi", "Le", "Figaro'ya", "göre", "bu", "hükumet", "planı", "sayesinde", "42", "milyon", "Euro", "kazanç", "sağlanabilir", "ve", "elde", "edilen", "paranın", "15.5", "milyonu", "ulusal", "güvenlik", "için", "kullanılabilir", "."]),
|
||||||
|
("Ortalama şansa ve 10.000 Sterlin değerinde tahvillere sahip bir yatırımcı yılda 125 Sterlin ikramiye kazanabilir.", ["Ortalama", "şansa", "ve", "10.000", "Sterlin", "değerinde", "tahvillere", "sahip", "bir", "yatırımcı", "yılda", "125", "Sterlin", "ikramiye", "kazanabilir", "."]),
|
||||||
|
("3 Kasım Salı günü, Ankara Belediye Başkanı 2014'te hükümetle birlikte oluşturulan kentsel gelişim anlaşmasını askıya alma kararı verdi.", ["3", "Kasım", "Salı", "günü", ",", "Ankara", "Belediye", "Başkanı", "2014'te", "hükümetle", "birlikte", "oluşturulan", "kentsel", "gelişim", "anlaşmasını", "askıya", "alma", "kararı", "verdi", "."]),
|
||||||
|
("Stalin, Abakumov'u Beria'nın enerji bakanlıkları üzerindeki baskınlığına karşı MGB içinde kendi ağını kurmaya teşvik etmeye başlamıştı.", ["Stalin", ",", "Abakumov'u", "Beria'nın", "enerji", "bakanlıkları", "üzerindeki", "baskınlığına", "karşı", "MGB", "içinde", "kendi", "ağını", "kurmaya", "teşvik", "etmeye", "başlamıştı", "."]),
|
||||||
|
("Güney Avrupa'daki kazı alanlarının çoğunluğu gibi, bu bulgu M.Ö. 5. yüzyılın başlar", ["Güney", "Avrupa'daki", "kazı", "alanlarının", "çoğunluğu", "gibi", ",", "bu", "bulgu", "M.Ö.", "5.", "yüzyılın", "başlar"]),
|
||||||
|
("Sağlığın bozulması Hitchcock hayatının son yirmi yılında üretimini azalttı.", ["Sağlığın", "bozulması", "Hitchcock", "hayatının", "son", "yirmi", "yılında", "üretimini", "azalttı", "."]),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TESTS = (ABBREV_TESTS + URL_TESTS + NUMBER_TESTS + PUNCT_TESTS + GENERAL_TESTS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def test_tr_tokenizer_exc_lemma_in_text(tr_tokenizer):
|
||||||
|
text = "Dr. Murat Bey ile görüştüm."
|
||||||
|
tokens = tr_tokenizer(text)
|
||||||
|
assert len(tokens) == 6
|
||||||
|
assert tokens[0].text == "Dr."
|
||||||
|
assert tokens[0].lemma_ == "doktor"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("text,expected_tokens", TESTS)
|
||||||
|
def test_tr_tokenizer_handles_allcases(tr_tokenizer, text, expected_tokens):
|
||||||
|
tokens = tr_tokenizer(text)
|
||||||
|
token_list = [token.text for token in tokens if not token.is_space]
|
||||||
|
print(token_list)
|
||||||
|
assert expected_tokens == token_list
|
||||||
|
|
Loading…
Reference in New Issue
Block a user