mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 09:26: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 ...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