mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-01 00:17:44 +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}
 |