mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-01 00:17:44 +03:00 
			
		
		
		
	Adding support for Czech language (#5826)
* Create lex_attrs.py Hello, I am missing a CZECH language in SpaCy. So I would like to help to push it a little. This file is base on others lex_attrs.py files just with translation to Czech. * Update __init__.py Updated for use with new Czech Lex_attrs file * Update stop_words.py * Create test_text.py Co-authored-by: Vladimír Holubec <vholubec@arcdata.cz>
This commit is contained in:
		
							parent
							
								
									99d2a25687
								
							
						
					
					
						commit
						a341b4ef09
					
				|  | @ -4,10 +4,12 @@ from __future__ import unicode_literals | |||
| from .stop_words import STOP_WORDS | ||||
| from ...language import Language | ||||
| from ...attrs import LANG | ||||
| from .lex_attrs import LEX_ATTRS | ||||
| 
 | ||||
| 
 | ||||
| class CzechDefaults(Language.Defaults): | ||||
|     lex_attr_getters = dict(Language.Defaults.lex_attr_getters) | ||||
|     lex_attr_getters.update(LEX_ATTRS) | ||||
|     lex_attr_getters[LANG] = lambda text: "cs" | ||||
|     stop_words = STOP_WORDS | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										64
									
								
								spacy/lang/cs/lex_attrs.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								spacy/lang/cs/lex_attrs.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| # coding: utf8 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from ...attrs import LIKE_NUM | ||||
| 
 | ||||
| _num_words = [ | ||||
|     "nula", | ||||
|     "jedna", | ||||
|     "dva", | ||||
|     "tři", | ||||
|     "čtyři", | ||||
|     "pět", | ||||
|     "šest", | ||||
|     "sedm", | ||||
|     "osm", | ||||
|     "devět", | ||||
|     "deset", | ||||
|     "jedenáct", | ||||
|     "dvanáct", | ||||
|     "třináct", | ||||
|     "čtrnáct", | ||||
|     "patnáct", | ||||
|     "šestnáct", | ||||
|     "sedmnáct", | ||||
|     "osmnáct", | ||||
|     "devatenáct", | ||||
|     "dvacet", | ||||
|     "třicet", | ||||
|     "čtyřicet", | ||||
|     "padesát", | ||||
|     "šedesát", | ||||
|     "sedmdesát", | ||||
|     "osmdesát", | ||||
|     "devadesát", | ||||
|     "sto", | ||||
|     "tisíc", | ||||
|     "milion", | ||||
|     "miliarda", | ||||
|     "bilion", | ||||
|     "biliarda", | ||||
|     "trilion", | ||||
|     "triliarda", | ||||
|     "kvadrilion", | ||||
|     "kvadriliarda", | ||||
|     "kvintilion", | ||||
|     ] | ||||
| 
 | ||||
| 
 | ||||
| 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 | ||||
|     if text.lower() in _num_words: | ||||
|         return True | ||||
|     return False | ||||
| 
 | ||||
| 
 | ||||
| LEX_ATTRS = {LIKE_NUM: like_num} | ||||
|  | @ -1,18 +1,26 @@ | |||
| # coding: utf8 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| 
 | ||||
| # Source: https://github.com/Alir3z4/stop-words | ||||
| # Source: https://github.com/stopwords-iso/stopwords-cs/blob/master/stopwords-cs.txt | ||||
| 
 | ||||
| STOP_WORDS = set( | ||||
|     """ | ||||
| ačkoli | ||||
| a | ||||
| aby | ||||
| ahoj | ||||
| ačkoli | ||||
| ale | ||||
| alespoň | ||||
| anebo | ||||
| ani | ||||
| aniž | ||||
| ano | ||||
| atd. | ||||
| atp. | ||||
| asi | ||||
| aspoň | ||||
| až | ||||
| během | ||||
| bez | ||||
| beze | ||||
|  | @ -25,12 +33,14 @@ budeš | |||
| budete | ||||
| budou | ||||
| budu | ||||
| by | ||||
| byl | ||||
| byla | ||||
| byli | ||||
| bylo | ||||
| byly | ||||
| bys | ||||
| být | ||||
| čau | ||||
| chce | ||||
| chceme | ||||
|  | @ -39,14 +49,21 @@ chcete | |||
| chci | ||||
| chtějí | ||||
| chtít | ||||
| chut' | ||||
| chuť | ||||
| chuti | ||||
| co | ||||
| což | ||||
| cz | ||||
| či | ||||
| článek | ||||
| článku | ||||
| články | ||||
| čtrnáct | ||||
| čtyři | ||||
| dál | ||||
| dále | ||||
| daleko | ||||
| další | ||||
| děkovat | ||||
| děkujeme | ||||
| děkuji | ||||
|  | @ -54,6 +71,7 @@ den | |||
| deset | ||||
| devatenáct | ||||
| devět | ||||
| dnes | ||||
| do | ||||
| dobrý | ||||
| docela | ||||
|  | @ -61,9 +79,15 @@ dva | |||
| dvacet | ||||
| dvanáct | ||||
| dvě | ||||
| email | ||||
| ho | ||||
| hodně | ||||
| i | ||||
| já | ||||
| jak | ||||
| jakmile | ||||
| jako | ||||
| jakož | ||||
| jde | ||||
| je | ||||
| jeden | ||||
|  | @ -73,25 +97,39 @@ jedno | |||
| jednou | ||||
| jedou | ||||
| jeho | ||||
| jehož | ||||
| jej | ||||
| její | ||||
| jejich | ||||
| jejichž | ||||
| jehož | ||||
| jelikož | ||||
| jemu | ||||
| jen | ||||
| jenom | ||||
| jenž | ||||
| jež | ||||
| ještě | ||||
| jestli | ||||
| jestliže | ||||
| ještě | ||||
| ji | ||||
| jí | ||||
| jich | ||||
| jím | ||||
| jim | ||||
| jimi | ||||
| jinak | ||||
| jsem | ||||
| jiné | ||||
| již | ||||
| jsi | ||||
| jsme | ||||
| jsem | ||||
| jsou | ||||
| jste | ||||
| k | ||||
| kam | ||||
| každý | ||||
| kde | ||||
| kdo | ||||
| kdy | ||||
|  | @ -100,10 +138,13 @@ ke | |||
| kolik | ||||
| kromě | ||||
| která | ||||
| kterak | ||||
| kterou | ||||
| které | ||||
| kteří | ||||
| který | ||||
| kvůli | ||||
| ku | ||||
| má | ||||
| mají | ||||
| málo | ||||
|  | @ -114,8 +155,10 @@ máte | |||
| mé | ||||
| mě | ||||
| mezi | ||||
| mi | ||||
| mí | ||||
| mít | ||||
| mne | ||||
| mně | ||||
| mnou | ||||
| moc | ||||
|  | @ -138,6 +181,7 @@ nás | |||
| náš | ||||
| naše | ||||
| naši | ||||
| načež | ||||
| ne | ||||
| ně | ||||
| nebo | ||||
|  | @ -145,6 +189,7 @@ nebyl | |||
| nebyla | ||||
| nebyli | ||||
| nebyly | ||||
| nechť | ||||
| něco | ||||
| nedělá | ||||
| nedělají | ||||
|  | @ -154,6 +199,7 @@ neděláš | |||
| neděláte | ||||
| nějak | ||||
| nejsi | ||||
| nejsou | ||||
| někde | ||||
| někdo | ||||
| nemají | ||||
|  | @ -161,15 +207,22 @@ nemáme | |||
| nemáte | ||||
| neměl | ||||
| němu | ||||
| němuž | ||||
| není | ||||
| nestačí | ||||
| ně | ||||
| nevadí | ||||
| nové | ||||
| nový | ||||
| noví | ||||
| než | ||||
| nic | ||||
| nich | ||||
| ní | ||||
| ním | ||||
| nimi | ||||
| nula | ||||
| o | ||||
| od | ||||
| ode | ||||
| on | ||||
|  | @ -183,22 +236,37 @@ pak | |||
| patnáct | ||||
| pět | ||||
| po | ||||
| pod | ||||
| pokud | ||||
| pořád | ||||
| pouze | ||||
| potom | ||||
| pozdě | ||||
| pravé | ||||
| před | ||||
| přede | ||||
| přes | ||||
| přese | ||||
| přece | ||||
| pro | ||||
| proč | ||||
| prosím | ||||
| prostě | ||||
| proto | ||||
| proti | ||||
| první | ||||
| právě | ||||
| protože | ||||
| při | ||||
| přičemž | ||||
| rovně | ||||
| s | ||||
| se | ||||
| sedm | ||||
| sedmnáct | ||||
| si | ||||
| sice | ||||
| skoro | ||||
| sic | ||||
| šest | ||||
| šestnáct | ||||
| skoro | ||||
|  | @ -207,41 +275,69 @@ smí | |||
| snad | ||||
| spolu | ||||
| sta | ||||
| svůj | ||||
| své | ||||
| svá | ||||
| svých | ||||
| svým | ||||
| svými | ||||
| svůj | ||||
| sté | ||||
| sto | ||||
| strana | ||||
| ta | ||||
| tady | ||||
| tak | ||||
| takhle | ||||
| taky | ||||
| také | ||||
| takže | ||||
| tam | ||||
| tamhle | ||||
| tamhleto | ||||
| támhle | ||||
| támhleto | ||||
| tamto | ||||
| tě | ||||
| tebe | ||||
| tebou | ||||
| ted' | ||||
| teď | ||||
| tedy | ||||
| ten | ||||
| tento | ||||
| této | ||||
| ti | ||||
| tím | ||||
| tímto | ||||
| tisíc | ||||
| tisíce | ||||
| to | ||||
| tobě | ||||
| tohle | ||||
| tohoto | ||||
| tom | ||||
| tomto | ||||
| tomu | ||||
| tomuto | ||||
| toto | ||||
| třeba | ||||
| tři | ||||
| třináct | ||||
| trošku | ||||
| trochu | ||||
| tu | ||||
| tuto | ||||
| tvá | ||||
| tvé | ||||
| tvoje | ||||
| tvůj | ||||
| ty | ||||
| tyto | ||||
| těm | ||||
| těma | ||||
| těmi | ||||
| u | ||||
| určitě | ||||
| už | ||||
| v | ||||
| vám | ||||
| vámi | ||||
| vás | ||||
|  | @ -251,13 +347,19 @@ vaši | |||
| ve | ||||
| večer | ||||
| vedle | ||||
| více | ||||
| vlastně | ||||
| však | ||||
| všechen | ||||
| všechno | ||||
| všichni | ||||
| vůbec | ||||
| vy | ||||
| vždy | ||||
| z | ||||
| zda | ||||
| za | ||||
| zde | ||||
| zač | ||||
| zatímco | ||||
| ze | ||||
|  |  | |||
							
								
								
									
										0
									
								
								spacy/lang/cs/test_text.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								spacy/lang/cs/test_text.py
									
									
									
									
									
										Normal file
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user