mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 09:57:26 +03:00 
			
		
		
		
	* Added examples for Slovene * Update spacy/lang/sl/examples.py Co-authored-by: Adriane Boyd <adrianeboyd@gmail.com> * Corrected a typo in one of the sentences * Updated support for Slovenian * Some minor changes to corrections * Added forint currency * Corrected HYPHENS_PERMITTED regex and some formatting * Minor changes * Un-xfail tokenizer test * Format Co-authored-by: Luka Dragar <D20124481@mytudublin.ie> Co-authored-by: Adriane Boyd <adrianeboyd@gmail.com>
		
			
				
	
	
		
			146 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from ...attrs import LIKE_NUM
 | 
						|
from ...attrs import IS_CURRENCY
 | 
						|
import unicodedata
 | 
						|
 | 
						|
 | 
						|
_num_words = set(
 | 
						|
    """
 | 
						|
	nula ničla nič ena dva tri štiri pet šest sedem osem
 | 
						|
	devet deset enajst dvanajst trinajst štirinajst petnajst
 | 
						|
	šestnajst sedemnajst osemnajst devetnajst dvajset trideset štirideset
 | 
						|
	petdeset šestdest sedemdeset osemdeset devedeset sto tisoč
 | 
						|
	milijon bilijon trilijon kvadrilijon nešteto
 | 
						|
	
 | 
						|
	en eden enega enemu ennem enim enih enima enimi ene eni eno
 | 
						|
	dveh dvema dvem dvoje trije treh trem tremi troje štirje štirih štirim štirimi
 | 
						|
	petih petim petimi šestih šestim šestimi sedmih sedmim sedmimi osmih osmim osmimi
 | 
						|
	devetih devetim devetimi desetih desetim desetimi enajstih enajstim enajstimi
 | 
						|
	dvanajstih dvanajstim dvanajstimi trinajstih trinajstim trinajstimi
 | 
						|
	šestnajstih šestnajstim šestnajstimi petnajstih petnajstim petnajstimi
 | 
						|
	sedemnajstih sedemnajstim sedemnajstimi osemnajstih osemnajstim osemnajstimi
 | 
						|
	devetnajstih devetnajstim devetnajstimi dvajsetih dvajsetim dvajsetimi  
 | 
						|
	""".split()
 | 
						|
)
 | 
						|
 | 
						|
_ordinal_words = set(
 | 
						|
    """
 | 
						|
	prvi drugi tretji četrti peti šesti sedmi osmi
 | 
						|
	deveti deseti enajsti dvanajsti trinajsti štirinajsti
 | 
						|
	petnajsti šestnajsti sedemnajsti osemnajsti devetnajsti
 | 
						|
	dvajseti trideseti štirideseti petdeseti šestdeseti sedemdeseti
 | 
						|
	osemdeseti devetdeseti stoti tisoči milijonti bilijonti
 | 
						|
	trilijonti kvadrilijonti nešteti
 | 
						|
	
 | 
						|
	prva druga tretja četrta peta šesta sedma osma
 | 
						|
	deveta deseta enajsta dvanajsta trinajsta štirnajsta
 | 
						|
	petnajsta šestnajsta sedemnajsta osemnajsta devetnajsta
 | 
						|
	dvajseta trideseta štirideseta petdeseta šestdeseta sedemdeseta
 | 
						|
	osemdeseta devetdeseta stota tisoča milijonta bilijonta
 | 
						|
	trilijonta kvadrilijonta nešteta
 | 
						|
	
 | 
						|
	prvo drugo tretje četrto peto šestro sedmo osmo
 | 
						|
	deveto deseto enajsto dvanajsto trinajsto štirnajsto
 | 
						|
	petnajsto šestnajsto sedemnajsto osemnajsto devetnajsto
 | 
						|
	dvajseto trideseto štirideseto petdeseto šestdeseto sedemdeseto
 | 
						|
	osemdeseto devetdeseto stoto tisočo milijonto bilijonto
 | 
						|
	trilijonto kvadrilijonto nešteto
 | 
						|
	
 | 
						|
	prvega drugega tretjega četrtega petega šestega sedmega osmega 
 | 
						|
	devega desetega enajstega dvanajstega trinajstega štirnajstega
 | 
						|
	petnajstega šestnajstega sedemnajstega osemnajstega devetnajstega
 | 
						|
	dvajsetega tridesetega štiridesetega petdesetega šestdesetega sedemdesetega
 | 
						|
	osemdesetega devetdesetega stotega tisočega milijontega bilijontega
 | 
						|
	trilijontega kvadrilijontega neštetega
 | 
						|
	
 | 
						|
	prvemu drugemu tretjemu četrtemu petemu šestemu sedmemu osmemu devetemu desetemu 
 | 
						|
	enajstemu dvanajstemu trinajstemu štirnajstemu petnajstemu šestnajstemu sedemnajstemu
 | 
						|
	osemnajstemu devetnajstemu dvajsetemu tridesetemu štiridesetemu petdesetemu šestdesetemu
 | 
						|
	sedemdesetemu osemdesetemu devetdesetemu stotemu tisočemu milijontemu bilijontemu
 | 
						|
	trilijontemu kvadrilijontemu neštetemu
 | 
						|
	
 | 
						|
	prvem drugem tretjem četrtem petem šestem sedmem osmem devetem desetem
 | 
						|
	enajstem dvanajstem trinajstem štirnajstem petnajstem šestnajstem sedemnajstem
 | 
						|
	osemnajstem devetnajstem dvajsetem tridesetem štiridesetem petdesetem šestdesetem
 | 
						|
	sedemdesetem osemdesetem devetdesetem stotem tisočem milijontem bilijontem
 | 
						|
	trilijontem kvadrilijontem neštetem
 | 
						|
	
 | 
						|
	prvim drugim tretjim četrtim petim šestim sedtim osmim devetim desetim
 | 
						|
	enajstim dvanajstim trinajstim štirnajstim petnajstim šestnajstim sedemnajstim
 | 
						|
	osemnajstim devetnajstim dvajsetim tridesetim štiridesetim petdesetim šestdesetim
 | 
						|
	sedemdesetim osemdesetim devetdesetim stotim tisočim milijontim bilijontim
 | 
						|
	trilijontim kvadrilijontim neštetim
 | 
						|
	    
 | 
						|
	prvih drugih tretjih četrthih petih šestih sedmih osmih deveth desetih
 | 
						|
	enajstih dvanajstih trinajstih štirnajstih petnajstih šestnajstih sedemnajstih
 | 
						|
	osemnajstih devetnajstih dvajsetih tridesetih štiridesetih petdesetih šestdesetih
 | 
						|
	sedemdesetih osemdesetih devetdesetih stotih tisočih milijontih bilijontih
 | 
						|
	trilijontih kvadrilijontih nešteth
 | 
						|
	
 | 
						|
	prvima drugima tretjima četrtima petima šestima sedmima osmima devetima desetima
 | 
						|
	enajstima dvanajstima trinajstima štirnajstima petnajstima šestnajstima sedemnajstima
 | 
						|
	osemnajstima devetnajstima dvajsetima tridesetima štiridesetima petdesetima šestdesetima
 | 
						|
	sedemdesetima osemdesetima devetdesetima stotima tisočima milijontima bilijontima
 | 
						|
	trilijontima kvadrilijontima neštetima
 | 
						|
	
 | 
						|
	prve druge četrte pete šeste sedme osme devete desete
 | 
						|
	enajste dvanajste trinajste štirnajste petnajste šestnajste sedemnajste
 | 
						|
	osemnajste devetnajste dvajsete tridesete štiridesete petdesete šestdesete
 | 
						|
	sedemdesete osemdesete devetdesete stote tisoče milijonte bilijonte 
 | 
						|
	trilijonte kvadrilijonte neštete
 | 
						|
	
 | 
						|
	prvimi drugimi tretjimi četrtimi petimi šestimi sedtimi osmimi devetimi desetimi
 | 
						|
	enajstimi dvanajstimi trinajstimi štirnajstimi petnajstimi šestnajstimi sedemnajstimi
 | 
						|
	osemnajstimi devetnajstimi dvajsetimi tridesetimi štiridesetimi petdesetimi šestdesetimi
 | 
						|
	sedemdesetimi osemdesetimi devetdesetimi stotimi tisočimi milijontimi bilijontimi
 | 
						|
	trilijontimi kvadrilijontimi neštetimi
 | 
						|
	""".split()
 | 
						|
)
 | 
						|
 | 
						|
_currency_words = set(
 | 
						|
    """
 | 
						|
	evro evra evru evrom evrov evroma evrih evrom evre evri evr eur
 | 
						|
	cent centa centu cenom centov centoma centih centom cente centi
 | 
						|
	dolar dolarja dolarji dolarju dolarjem dolarjev dolarjema dolarjih dolarje usd
 | 
						|
	tolar tolarja tolarji tolarju tolarjem tolarjev tolarjema tolarjih tolarje tol
 | 
						|
	dinar dinarja dinarji dinarju dinarjem dinarjev dinarjema dinarjih dinarje din
 | 
						|
	funt funta funti funtu funtom funtov funtoma funtih funte gpb
 | 
						|
	forint forinta forinti forintu forintom forintov forintoma forintih forinte
 | 
						|
	zlot zlota zloti zlotu zlotom zlotov zlotoma zlotih zlote 
 | 
						|
	rupij rupija rupiji rupiju rupijem rupijev rupijema rupijih rupije
 | 
						|
	jen jena jeni jenu jenom jenov jenoma jenih jene
 | 
						|
	kuna kuni kune kuno kun kunama kunah kunam kunami
 | 
						|
	marka marki marke markama markah markami 
 | 
						|
	""".split()
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
def like_num(text):
 | 
						|
    if text.startswith(("+", "-", "±", "~")):
 | 
						|
        text = text[1:]
 | 
						|
    text = text.replace(",", "").replace(".", "")
 | 
						|
    if text.isdigit():
 | 
						|
        return True
 | 
						|
    if text.count("/") == 1:
 | 
						|
        num, denom = text.split("/")
 | 
						|
        if num.isdigit() and denom.isdigit():
 | 
						|
            return True
 | 
						|
    text_lower = text.lower()
 | 
						|
    if text_lower in _num_words:
 | 
						|
        return True
 | 
						|
    if text_lower in _ordinal_words:
 | 
						|
        return True
 | 
						|
    return False
 | 
						|
 | 
						|
 | 
						|
def is_currency(text):
 | 
						|
    text_lower = text.lower()
 | 
						|
    if text in _currency_words:
 | 
						|
        return True
 | 
						|
    for char in text:
 | 
						|
        if unicodedata.category(char) != "Sc":
 | 
						|
            return False
 | 
						|
    return True
 | 
						|
 | 
						|
 | 
						|
LEX_ATTRS = {LIKE_NUM: like_num, IS_CURRENCY: is_currency}
 |