mirror of
https://github.com/explosion/spaCy.git
synced 2025-01-12 10:16:27 +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 .stop_words import STOP_WORDS
|
||||||
from ...language import Language
|
from ...language import Language
|
||||||
from ...attrs import LANG
|
from ...attrs import LANG
|
||||||
|
from .lex_attrs import LEX_ATTRS
|
||||||
|
|
||||||
|
|
||||||
class CzechDefaults(Language.Defaults):
|
class CzechDefaults(Language.Defaults):
|
||||||
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
||||||
|
lex_attr_getters.update(LEX_ATTRS)
|
||||||
lex_attr_getters[LANG] = lambda text: "cs"
|
lex_attr_getters[LANG] = lambda text: "cs"
|
||||||
stop_words = STOP_WORDS
|
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
|
# coding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
|
||||||
# Source: https://github.com/Alir3z4/stop-words
|
# Source: https://github.com/Alir3z4/stop-words
|
||||||
|
# Source: https://github.com/stopwords-iso/stopwords-cs/blob/master/stopwords-cs.txt
|
||||||
|
|
||||||
STOP_WORDS = set(
|
STOP_WORDS = set(
|
||||||
"""
|
"""
|
||||||
ačkoli
|
a
|
||||||
|
aby
|
||||||
ahoj
|
ahoj
|
||||||
|
ačkoli
|
||||||
ale
|
ale
|
||||||
|
alespoň
|
||||||
anebo
|
anebo
|
||||||
|
ani
|
||||||
|
aniž
|
||||||
ano
|
ano
|
||||||
|
atd.
|
||||||
|
atp.
|
||||||
asi
|
asi
|
||||||
aspoň
|
aspoň
|
||||||
|
až
|
||||||
během
|
během
|
||||||
bez
|
bez
|
||||||
beze
|
beze
|
||||||
|
@ -25,12 +33,14 @@ budeš
|
||||||
budete
|
budete
|
||||||
budou
|
budou
|
||||||
budu
|
budu
|
||||||
|
by
|
||||||
byl
|
byl
|
||||||
byla
|
byla
|
||||||
byli
|
byli
|
||||||
bylo
|
bylo
|
||||||
byly
|
byly
|
||||||
bys
|
bys
|
||||||
|
být
|
||||||
čau
|
čau
|
||||||
chce
|
chce
|
||||||
chceme
|
chceme
|
||||||
|
@ -39,14 +49,21 @@ chcete
|
||||||
chci
|
chci
|
||||||
chtějí
|
chtějí
|
||||||
chtít
|
chtít
|
||||||
chut'
|
chuť
|
||||||
chuti
|
chuti
|
||||||
co
|
co
|
||||||
|
což
|
||||||
|
cz
|
||||||
|
či
|
||||||
|
článek
|
||||||
|
článku
|
||||||
|
články
|
||||||
čtrnáct
|
čtrnáct
|
||||||
čtyři
|
čtyři
|
||||||
dál
|
dál
|
||||||
dále
|
dále
|
||||||
daleko
|
daleko
|
||||||
|
další
|
||||||
děkovat
|
děkovat
|
||||||
děkujeme
|
děkujeme
|
||||||
děkuji
|
děkuji
|
||||||
|
@ -54,6 +71,7 @@ den
|
||||||
deset
|
deset
|
||||||
devatenáct
|
devatenáct
|
||||||
devět
|
devět
|
||||||
|
dnes
|
||||||
do
|
do
|
||||||
dobrý
|
dobrý
|
||||||
docela
|
docela
|
||||||
|
@ -61,9 +79,15 @@ dva
|
||||||
dvacet
|
dvacet
|
||||||
dvanáct
|
dvanáct
|
||||||
dvě
|
dvě
|
||||||
|
email
|
||||||
|
ho
|
||||||
hodně
|
hodně
|
||||||
|
i
|
||||||
já
|
já
|
||||||
jak
|
jak
|
||||||
|
jakmile
|
||||||
|
jako
|
||||||
|
jakož
|
||||||
jde
|
jde
|
||||||
je
|
je
|
||||||
jeden
|
jeden
|
||||||
|
@ -73,25 +97,39 @@ jedno
|
||||||
jednou
|
jednou
|
||||||
jedou
|
jedou
|
||||||
jeho
|
jeho
|
||||||
|
jehož
|
||||||
|
jej
|
||||||
její
|
její
|
||||||
jejich
|
jejich
|
||||||
|
jejichž
|
||||||
|
jehož
|
||||||
|
jelikož
|
||||||
jemu
|
jemu
|
||||||
jen
|
jen
|
||||||
jenom
|
jenom
|
||||||
|
jenž
|
||||||
|
jež
|
||||||
ještě
|
ještě
|
||||||
jestli
|
jestli
|
||||||
jestliže
|
jestliže
|
||||||
|
ještě
|
||||||
|
ji
|
||||||
jí
|
jí
|
||||||
jich
|
jich
|
||||||
jím
|
jím
|
||||||
|
jim
|
||||||
jimi
|
jimi
|
||||||
jinak
|
jinak
|
||||||
jsem
|
jiné
|
||||||
|
již
|
||||||
jsi
|
jsi
|
||||||
jsme
|
jsme
|
||||||
|
jsem
|
||||||
jsou
|
jsou
|
||||||
jste
|
jste
|
||||||
|
k
|
||||||
kam
|
kam
|
||||||
|
každý
|
||||||
kde
|
kde
|
||||||
kdo
|
kdo
|
||||||
kdy
|
kdy
|
||||||
|
@ -100,10 +138,13 @@ ke
|
||||||
kolik
|
kolik
|
||||||
kromě
|
kromě
|
||||||
která
|
která
|
||||||
|
kterak
|
||||||
|
kterou
|
||||||
které
|
které
|
||||||
kteří
|
kteří
|
||||||
který
|
který
|
||||||
kvůli
|
kvůli
|
||||||
|
ku
|
||||||
má
|
má
|
||||||
mají
|
mají
|
||||||
málo
|
málo
|
||||||
|
@ -114,8 +155,10 @@ máte
|
||||||
mé
|
mé
|
||||||
mě
|
mě
|
||||||
mezi
|
mezi
|
||||||
|
mi
|
||||||
mí
|
mí
|
||||||
mít
|
mít
|
||||||
|
mne
|
||||||
mně
|
mně
|
||||||
mnou
|
mnou
|
||||||
moc
|
moc
|
||||||
|
@ -138,6 +181,7 @@ nás
|
||||||
náš
|
náš
|
||||||
naše
|
naše
|
||||||
naši
|
naši
|
||||||
|
načež
|
||||||
ne
|
ne
|
||||||
ně
|
ně
|
||||||
nebo
|
nebo
|
||||||
|
@ -145,6 +189,7 @@ nebyl
|
||||||
nebyla
|
nebyla
|
||||||
nebyli
|
nebyli
|
||||||
nebyly
|
nebyly
|
||||||
|
nechť
|
||||||
něco
|
něco
|
||||||
nedělá
|
nedělá
|
||||||
nedělají
|
nedělají
|
||||||
|
@ -154,6 +199,7 @@ neděláš
|
||||||
neděláte
|
neděláte
|
||||||
nějak
|
nějak
|
||||||
nejsi
|
nejsi
|
||||||
|
nejsou
|
||||||
někde
|
někde
|
||||||
někdo
|
někdo
|
||||||
nemají
|
nemají
|
||||||
|
@ -161,15 +207,22 @@ nemáme
|
||||||
nemáte
|
nemáte
|
||||||
neměl
|
neměl
|
||||||
němu
|
němu
|
||||||
|
němuž
|
||||||
není
|
není
|
||||||
nestačí
|
nestačí
|
||||||
|
ně
|
||||||
nevadí
|
nevadí
|
||||||
|
nové
|
||||||
|
nový
|
||||||
|
noví
|
||||||
než
|
než
|
||||||
nic
|
nic
|
||||||
nich
|
nich
|
||||||
|
ní
|
||||||
ním
|
ním
|
||||||
nimi
|
nimi
|
||||||
nula
|
nula
|
||||||
|
o
|
||||||
od
|
od
|
||||||
ode
|
ode
|
||||||
on
|
on
|
||||||
|
@ -183,22 +236,37 @@ pak
|
||||||
patnáct
|
patnáct
|
||||||
pět
|
pět
|
||||||
po
|
po
|
||||||
|
pod
|
||||||
|
pokud
|
||||||
pořád
|
pořád
|
||||||
|
pouze
|
||||||
potom
|
potom
|
||||||
pozdě
|
pozdě
|
||||||
|
pravé
|
||||||
před
|
před
|
||||||
|
přede
|
||||||
přes
|
přes
|
||||||
přese
|
přece
|
||||||
pro
|
pro
|
||||||
proč
|
proč
|
||||||
prosím
|
prosím
|
||||||
prostě
|
prostě
|
||||||
|
proto
|
||||||
proti
|
proti
|
||||||
|
první
|
||||||
|
právě
|
||||||
protože
|
protože
|
||||||
|
při
|
||||||
|
přičemž
|
||||||
rovně
|
rovně
|
||||||
|
s
|
||||||
se
|
se
|
||||||
sedm
|
sedm
|
||||||
sedmnáct
|
sedmnáct
|
||||||
|
si
|
||||||
|
sice
|
||||||
|
skoro
|
||||||
|
sic
|
||||||
šest
|
šest
|
||||||
šestnáct
|
šestnáct
|
||||||
skoro
|
skoro
|
||||||
|
@ -207,41 +275,69 @@ smí
|
||||||
snad
|
snad
|
||||||
spolu
|
spolu
|
||||||
sta
|
sta
|
||||||
|
svůj
|
||||||
|
své
|
||||||
|
svá
|
||||||
|
svých
|
||||||
|
svým
|
||||||
|
svými
|
||||||
|
svůj
|
||||||
sté
|
sté
|
||||||
sto
|
sto
|
||||||
|
strana
|
||||||
ta
|
ta
|
||||||
tady
|
tady
|
||||||
tak
|
tak
|
||||||
takhle
|
takhle
|
||||||
taky
|
taky
|
||||||
|
také
|
||||||
|
takže
|
||||||
tam
|
tam
|
||||||
tamhle
|
támhle
|
||||||
tamhleto
|
támhleto
|
||||||
tamto
|
tamto
|
||||||
tě
|
tě
|
||||||
tebe
|
tebe
|
||||||
tebou
|
tebou
|
||||||
ted'
|
teď
|
||||||
tedy
|
tedy
|
||||||
ten
|
ten
|
||||||
|
tento
|
||||||
|
této
|
||||||
ti
|
ti
|
||||||
|
tím
|
||||||
|
tímto
|
||||||
tisíc
|
tisíc
|
||||||
tisíce
|
tisíce
|
||||||
to
|
to
|
||||||
tobě
|
tobě
|
||||||
tohle
|
tohle
|
||||||
|
tohoto
|
||||||
|
tom
|
||||||
|
tomto
|
||||||
|
tomu
|
||||||
|
tomuto
|
||||||
toto
|
toto
|
||||||
třeba
|
třeba
|
||||||
tři
|
tři
|
||||||
třináct
|
třináct
|
||||||
trošku
|
trošku
|
||||||
|
trochu
|
||||||
|
tu
|
||||||
|
tuto
|
||||||
tvá
|
tvá
|
||||||
tvé
|
tvé
|
||||||
tvoje
|
tvoje
|
||||||
tvůj
|
tvůj
|
||||||
ty
|
ty
|
||||||
|
tyto
|
||||||
|
těm
|
||||||
|
těma
|
||||||
|
těmi
|
||||||
|
u
|
||||||
určitě
|
určitě
|
||||||
už
|
už
|
||||||
|
v
|
||||||
vám
|
vám
|
||||||
vámi
|
vámi
|
||||||
vás
|
vás
|
||||||
|
@ -251,13 +347,19 @@ vaši
|
||||||
ve
|
ve
|
||||||
večer
|
večer
|
||||||
vedle
|
vedle
|
||||||
|
více
|
||||||
vlastně
|
vlastně
|
||||||
|
však
|
||||||
|
všechen
|
||||||
všechno
|
všechno
|
||||||
všichni
|
všichni
|
||||||
vůbec
|
vůbec
|
||||||
vy
|
vy
|
||||||
vždy
|
vždy
|
||||||
|
z
|
||||||
|
zda
|
||||||
za
|
za
|
||||||
|
zde
|
||||||
zač
|
zač
|
||||||
zatímco
|
zatímco
|
||||||
ze
|
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