Add Romanian and Croatian skeletons (experimental)

Add language data templates to make it easier for others to contribute to the language support
This commit is contained in:
ines 2017-11-01 23:04:28 +01:00
parent 18c859500b
commit c6fea3e5f6
6 changed files with 703 additions and 0 deletions

27
spacy/lang/hr/__init__.py Normal file
View File

@ -0,0 +1,27 @@
# coding: utf8
from __future__ import unicode_literals
from .stop_words import STOP_WORDS
from ..tokenizer_exceptions import BASE_EXCEPTIONS
from ..norm_exceptions import BASE_NORMS
from ...language import Language
from ...attrs import LANG, NORM
from ...util import update_exc, add_lookups
class CroatianDefaults(Language.Defaults):
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
lex_attr_getters[LANG] = lambda text: 'hr'
lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], BASE_NORMS)
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS)
stop_words = STOP_WORDS
class Croatian(Language):
lang = 'hr'
Defaults = CroatianDefaults
__all__ = ['Croatian']

187
spacy/lang/hr/stop_words.py Normal file
View File

@ -0,0 +1,187 @@
# encoding: utf8
from __future__ import unicode_literals
# Source: https://github.com/stopwords-iso/stopwords-hr
STOP_WORDS = set("""
a
ako
ali
bi
bih
bila
bili
bilo
bio
bismo
biste
biti
bumo
da
do
duž
ga
hoće
hoćemo
hoćete
hoćeš
hoću
i
iako
ih
ili
iz
ja
je
jedna
jedne
jedno
jer
jesam
jesi
jesmo
jest
jeste
jesu
jim
joj
još
ju
kada
kako
kao
koja
koje
koji
kojima
koju
kroz
li
me
mene
meni
mi
mimo
moj
moja
moje
mu
na
nad
nakon
nam
nama
nas
naš
naša
naše
našeg
ne
nego
neka
neki
nekog
neku
nema
netko
neće
nećemo
nećete
nećeš
neću
nešto
ni
nije
nikoga
nikoje
nikoju
nisam
nisi
nismo
niste
nisu
njega
njegov
njegova
njegovo
njemu
njezin
njezina
njezino
njih
njihov
njihova
njihovo
njim
njima
njoj
nju
no
o
od
odmah
on
ona
oni
ono
ova
pa
pak
po
pod
pored
prije
s
sa
sam
samo
se
sebe
sebi
si
smo
ste
su
sve
svi
svog
svoj
svoja
svoje
svom
ta
tada
taj
tako
te
tebe
tebi
ti
to
toj
tome
tu
tvoj
tvoja
tvoje
u
uz
vam
vama
vas
vaš
vaša
vaše
već
vi
vrlo
za
zar
će
ćemo
ćete
ćeš
ću
što
""".split())

28
spacy/lang/ro/__init__.py Normal file
View File

@ -0,0 +1,28 @@
# coding: utf8
from __future__ import unicode_literals
from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS
from .stop_words import STOP_WORDS
from ..tokenizer_exceptions import BASE_EXCEPTIONS
from ..norm_exceptions import BASE_NORMS
from ...language import Language
from ...attrs import LANG, NORM
from ...util import update_exc, add_lookups
class RomanianDefaults(Language.Defaults):
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
lex_attr_getters[LANG] = lambda text: 'ro'
lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], BASE_NORMS)
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
stop_words = STOP_WORDS
class Romanian(Language):
lang = 'ro'
Defaults = RomanianDefaults
__all__ = ['Romanian']

442
spacy/lang/ro/stop_words.py Normal file
View File

@ -0,0 +1,442 @@
# encoding: utf8
from __future__ import unicode_literals
# Source: https://github.com/stopwords-iso/stopwords-ro
STOP_WORDS = set("""
a
abia
acea
aceasta
această
aceea
aceeasi
acei
aceia
acel
acela
acelasi
acele
acelea
acest
acesta
aceste
acestea
acestei
acestia
acestui
aceşti
aceştia
acolo
acord
acum
adica
ai
aia
aibă
aici
aiurea
al
ala
alaturi
ale
alea
alt
alta
altceva
altcineva
alte
altfel
alti
altii
altul
am
anume
apoi
ar
are
as
asa
asemenea
asta
astazi
astea
astfel
astăzi
asupra
atare
atat
atata
atatea
atatia
ati
atit
atita
atitea
atitia
atunci
au
avea
avem
aveţi
avut
azi
aşadar
aţi
b
ba
bine
bucur
bună
c
ca
cam
cand
capat
care
careia
carora
caruia
cat
catre
caut
ce
cea
ceea
cei
ceilalti
cel
cele
celor
ceva
chiar
ci
cinci
cind
cine
cineva
cit
cita
cite
citeva
citi
citiva
conform
contra
cu
cui
cum
cumva
curând
curînd
când
cât
câte
câtva
câţi
cînd
cît
cîte
cîtva
cîţi
căci
cărei
căror
cărui
către
d
da
daca
dacă
dar
dat
datorită
dată
dau
de
deasupra
deci
decit
degraba
deja
deoarece
departe
desi
despre
deşi
din
dinaintea
dintr
dintr-
dintre
doar
doi
doilea
două
drept
dupa
după
e
ea
ei
el
ele
era
eram
este
eu
exact
eşti
f
face
fara
fata
fel
fi
fie
fiecare
fii
fim
fiu
fiţi
foarte
fost
frumos
fără
g
geaba
graţie
h
halbă
i
ia
iar
ieri
ii
il
imi
in
inainte
inapoi
inca
incit
insa
intr
intre
isi
iti
j
k
l
la
le
li
lor
lui
lângă
lîngă
m
ma
mai
mare
mea
mei
mele
mereu
meu
mi
mie
mine
mod
mult
multa
multe
multi
multă
mulţi
mulţumesc
mâine
mîine
n
ne
nevoie
ni
nici
niciodata
nicăieri
nimeni
nimeri
nimic
niste
nişte
noastre
noastră
noi
noroc
nostri
nostru
nou
noua
nouă
noştri
nu
numai
o
opt
or
ori
oricare
orice
oricine
oricum
oricând
oricât
oricînd
oricît
oriunde
p
pai
parca
patra
patru
patrulea
pe
pentru
peste
pic
pina
plus
poate
pot
prea
prima
primul
prin
printr-
putini
puţin
puţina
puţină
până
pînă
r
rog
s
sa
sa-mi
sa-ti
sai
sale
sau
se
si
sint
sintem
spate
spre
sub
sunt
suntem
sunteţi
sus
sută
sînt
sîntem
sînteţi
săi
său
t
ta
tale
te
ti
timp
tine
toata
toate
toată
tocmai
tot
toti
totul
totusi
totuşi
toţi
trei
treia
treilea
tu
tuturor
tăi
tău
u
ul
ului
un
una
unde
undeva
unei
uneia
unele
uneori
unii
unor
unora
unu
unui
unuia
unul
v
va
vi
voastre
voastră
voi
vom
vor
vostru
vouă
voştri
vreme
vreo
vreun
x
z
zece
zero
zi
zice
îi
îl
îmi
împotriva
în
înainte
înaintea
încotro
încât
încît
între
întrucât
întrucît
îţi
ăla
ălea
ăsta
ăstea
ăştia
şapte
şase
şi
ştiu
ţi
ţie
""".split())

View File

@ -0,0 +1,17 @@
# coding: utf8
from __future__ import unicode_literals
from ...symbols import ORTH
_exc = {}
# Source: https://en.wiktionary.org/wiki/Category:Romanian_abbreviations
for orth in [
"1-a", "1-ul", "10-a", "10-lea", "2-a", "3-a", "3-lea", "6-lea",
"d-voastră", "dvs.", "Rom.", "str."]:
_exc[orth] = [{ORTH: orth}]
TOKENIZER_EXCEPTIONS = _exc

View File

@ -100,6 +100,8 @@
"da": "Danish",
"hu": "Hungarian",
"pl": "Polish",
"ro": "Romanian",
"hr": "Croatian",
"he": "Hebrew",
"ga": "Irish",
"bn": "Bengali",