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:
holubvl3 2020-08-21 16:17:53 +02:00 committed by GitHub
parent 99d2a25687
commit a341b4ef09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 176 additions and 8 deletions

View File

@ -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

View 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}

View File

@ -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ň
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
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
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
mají
málo
@ -114,8 +155,10 @@ máte
mezi
mi
mít
mne
mně
mnou
moc
@ -138,6 +181,7 @@ nás
náš
naše
naši
načež
ne
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čí
nevadí
nové
nový
noví
než
nic
nich
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
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ě
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

View File