mirror of
https://github.com/explosion/spaCy.git
synced 2025-04-29 21:33:42 +03:00
Merge pull request #742 from oroszgy/hu_tokenizer_fix
Improved Hungarian tokenizer
This commit is contained in:
commit
116c675c3c
|
@ -1,6 +1,7 @@
|
||||||
# encoding: utf8
|
# encoding: utf8
|
||||||
from __future__ import unicode_literals, print_function
|
from __future__ import unicode_literals, print_function
|
||||||
|
|
||||||
|
from spacy.hu.tokenizer_exceptions import TOKEN_MATCH
|
||||||
from .language_data import *
|
from .language_data import *
|
||||||
from ..attrs import LANG
|
from ..attrs import LANG
|
||||||
from ..language import Language
|
from ..language import Language
|
||||||
|
@ -21,3 +22,5 @@ class Hungarian(Language):
|
||||||
infixes = tuple(TOKENIZER_INFIXES)
|
infixes = tuple(TOKENIZER_INFIXES)
|
||||||
|
|
||||||
stop_words = set(STOP_WORDS)
|
stop_words = set(STOP_WORDS)
|
||||||
|
|
||||||
|
token_match = TOKEN_MATCH
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
# encoding: utf8
|
# encoding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
from spacy.language_data import strings_to_exc, update_exc
|
from spacy.language_data import strings_to_exc, update_exc
|
||||||
from .punctuation import *
|
from .punctuation import *
|
||||||
from .stop_words import STOP_WORDS
|
from .stop_words import STOP_WORDS
|
||||||
|
@ -10,19 +8,15 @@ from .tokenizer_exceptions import ABBREVIATIONS
|
||||||
from .tokenizer_exceptions import OTHER_EXC
|
from .tokenizer_exceptions import OTHER_EXC
|
||||||
from .. import language_data as base
|
from .. import language_data as base
|
||||||
|
|
||||||
|
|
||||||
STOP_WORDS = set(STOP_WORDS)
|
STOP_WORDS = set(STOP_WORDS)
|
||||||
|
|
||||||
|
|
||||||
TOKENIZER_EXCEPTIONS = strings_to_exc(base.EMOTICONS)
|
TOKENIZER_EXCEPTIONS = strings_to_exc(base.EMOTICONS)
|
||||||
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(base.ABBREVIATIONS))
|
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(base.ABBREVIATIONS))
|
||||||
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(OTHER_EXC))
|
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(OTHER_EXC))
|
||||||
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(ABBREVIATIONS))
|
update_exc(TOKENIZER_EXCEPTIONS, strings_to_exc(ABBREVIATIONS))
|
||||||
|
|
||||||
|
TOKENIZER_PREFIXES = TOKENIZER_PREFIXES
|
||||||
TOKENIZER_PREFIXES = base.TOKENIZER_PREFIXES
|
TOKENIZER_SUFFIXES = TOKENIZER_SUFFIXES
|
||||||
TOKENIZER_SUFFIXES = base.TOKENIZER_SUFFIXES + TOKENIZER_SUFFIXES
|
|
||||||
TOKENIZER_INFIXES = TOKENIZER_INFIXES
|
TOKENIZER_INFIXES = TOKENIZER_INFIXES
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["TOKENIZER_EXCEPTIONS", "STOP_WORDS", "TOKENIZER_PREFIXES", "TOKENIZER_SUFFIXES", "TOKENIZER_INFIXES"]
|
__all__ = ["TOKENIZER_EXCEPTIONS", "STOP_WORDS", "TOKENIZER_PREFIXES", "TOKENIZER_SUFFIXES", "TOKENIZER_INFIXES"]
|
||||||
|
|
|
@ -1,25 +1,41 @@
|
||||||
# encoding: utf8
|
# encoding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from ..language_data.punctuation import ALPHA, ALPHA_LOWER, ALPHA_UPPER, LIST_ELLIPSES
|
from ..language_data.punctuation import ALPHA_LOWER, LIST_ELLIPSES, QUOTES, ALPHA_UPPER, LIST_QUOTES, UNITS, \
|
||||||
|
CURRENCY, LIST_PUNCT, ALPHA, _QUOTES
|
||||||
|
|
||||||
|
CURRENCY_SYMBOLS = r"\$ ¢ £ € ¥ ฿"
|
||||||
|
|
||||||
TOKENIZER_SUFFIXES = [
|
TOKENIZER_PREFIXES = (
|
||||||
|
[r'\+'] +
|
||||||
|
LIST_PUNCT +
|
||||||
|
LIST_ELLIPSES +
|
||||||
|
LIST_QUOTES
|
||||||
|
)
|
||||||
|
|
||||||
|
TOKENIZER_SUFFIXES = (
|
||||||
|
LIST_PUNCT +
|
||||||
|
LIST_ELLIPSES +
|
||||||
|
LIST_QUOTES +
|
||||||
|
[
|
||||||
|
r'(?<=[0-9])\+',
|
||||||
|
r'(?<=°[FfCcKk])\.',
|
||||||
|
r'(?<=[0-9])(?:{c})'.format(c=CURRENCY),
|
||||||
|
r'(?<=[0-9])(?:{u})'.format(u=UNITS),
|
||||||
|
r'(?<=[{al}{p}{c}(?:{q})])\.'.format(al=ALPHA_LOWER, p=r'%²\-\)\]\+', q=QUOTES, c=CURRENCY_SYMBOLS),
|
||||||
r'(?<=[{al})])-e'.format(al=ALPHA_LOWER)
|
r'(?<=[{al})])-e'.format(al=ALPHA_LOWER)
|
||||||
]
|
]
|
||||||
|
)
|
||||||
|
|
||||||
TOKENIZER_INFIXES = [
|
TOKENIZER_INFIXES = (
|
||||||
r'(?<=[0-9])-(?=[0-9])',
|
LIST_ELLIPSES +
|
||||||
r'(?<=[0-9])[+\-\*/^](?=[0-9])',
|
[
|
||||||
r'(?<=[{a}])--(?=[{a}])',
|
|
||||||
r'(?<=[{a}]),(?=[{a}])'.format(a=ALPHA),
|
|
||||||
r'(?<=[{al}])\.(?=[{au}])'.format(al=ALPHA_LOWER, au=ALPHA_UPPER),
|
r'(?<=[{al}])\.(?=[{au}])'.format(al=ALPHA_LOWER, au=ALPHA_UPPER),
|
||||||
r'(?<=[0-9{a}])"(?=[\-{a}])'.format(a=ALPHA),
|
r'(?<=[{a}]),(?=[{a}])'.format(a=ALPHA),
|
||||||
r'(?<=[{a}"])[:<>=](?=[{a}])'.format(a=ALPHA)
|
r'(?<=[{a}"])[:<>=](?=[{a}])'.format(a=ALPHA),
|
||||||
]
|
r'(?<=[{a}])--(?=[{a}])'.format(a=ALPHA),
|
||||||
|
r'(?<=[{a}]),(?=[{a}])'.format(a=ALPHA),
|
||||||
|
r'(?<=[{a}])([{q}\)\]\(\[])(?=[\-{a}])'.format(a=ALPHA, q=_QUOTES.replace("'", "").strip().replace(" ", "")),
|
||||||
TOKENIZER_INFIXES += LIST_ELLIPSES
|
]
|
||||||
|
)
|
||||||
|
__all__ = ["TOKENIZER_PREFIXES", "TOKENIZER_SUFFIXES", "TOKENIZER_INFIXES"]
|
||||||
__all__ = ["TOKENIZER_SUFFIXES", "TOKENIZER_INFIXES"]
|
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
# encoding: utf8
|
# encoding: utf8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
from spacy.language_data.punctuation import ALPHA_LOWER, CURRENCY
|
||||||
|
from ..language_data.tokenizer_exceptions import _URL_PATTERN
|
||||||
|
|
||||||
ABBREVIATIONS = """
|
ABBREVIATIONS = """
|
||||||
|
A.
|
||||||
|
AG.
|
||||||
AkH.
|
AkH.
|
||||||
Aö.
|
Aö.
|
||||||
|
B.
|
||||||
B.CS.
|
B.CS.
|
||||||
B.S.
|
B.S.
|
||||||
B.Sc.
|
B.Sc.
|
||||||
|
@ -13,57 +21,103 @@ BEK.
|
||||||
BSC.
|
BSC.
|
||||||
BSc.
|
BSc.
|
||||||
BTK.
|
BTK.
|
||||||
|
Bat.
|
||||||
Be.
|
Be.
|
||||||
Bek.
|
Bek.
|
||||||
Bfok.
|
Bfok.
|
||||||
Bk.
|
Bk.
|
||||||
Bp.
|
Bp.
|
||||||
|
Bros.
|
||||||
|
Bt.
|
||||||
Btk.
|
Btk.
|
||||||
Btke.
|
Btke.
|
||||||
Btét.
|
Btét.
|
||||||
|
C.
|
||||||
CSC.
|
CSC.
|
||||||
Cal.
|
Cal.
|
||||||
|
Cg.
|
||||||
|
Cgf.
|
||||||
|
Cgt.
|
||||||
|
Cia.
|
||||||
Co.
|
Co.
|
||||||
Colo.
|
Colo.
|
||||||
Comp.
|
Comp.
|
||||||
Copr.
|
Copr.
|
||||||
|
Corp.
|
||||||
|
Cos.
|
||||||
Cs.
|
Cs.
|
||||||
Csc.
|
Csc.
|
||||||
Csop.
|
Csop.
|
||||||
|
Cstv.
|
||||||
Ctv.
|
Ctv.
|
||||||
|
Ctvr.
|
||||||
D.
|
D.
|
||||||
DR.
|
DR.
|
||||||
Dipl.
|
Dipl.
|
||||||
Dr.
|
Dr.
|
||||||
Dsz.
|
Dsz.
|
||||||
Dzs.
|
Dzs.
|
||||||
|
E.
|
||||||
|
EK.
|
||||||
|
EU.
|
||||||
|
F.
|
||||||
Fla.
|
Fla.
|
||||||
|
Folyt.
|
||||||
|
Fpk.
|
||||||
Főszerk.
|
Főszerk.
|
||||||
|
G.
|
||||||
|
GK.
|
||||||
GM.
|
GM.
|
||||||
|
Gfv.
|
||||||
|
Gmk.
|
||||||
|
Gr.
|
||||||
|
Group.
|
||||||
|
Gt.
|
||||||
Gy.
|
Gy.
|
||||||
|
H.
|
||||||
HKsz.
|
HKsz.
|
||||||
Hmvh.
|
Hmvh.
|
||||||
|
I.
|
||||||
|
Ifj.
|
||||||
|
Inc.
|
||||||
Inform.
|
Inform.
|
||||||
|
Int.
|
||||||
|
J.
|
||||||
|
Jr.
|
||||||
|
Jv.
|
||||||
|
K.
|
||||||
K.m.f.
|
K.m.f.
|
||||||
|
KB.
|
||||||
KER.
|
KER.
|
||||||
KFT.
|
KFT.
|
||||||
KRT.
|
KRT.
|
||||||
|
Kb.
|
||||||
Ker.
|
Ker.
|
||||||
Kft.
|
Kft.
|
||||||
|
Kg.
|
||||||
|
Kht.
|
||||||
|
Kkt.
|
||||||
Kong.
|
Kong.
|
||||||
Korm.
|
Korm.
|
||||||
Kr.
|
Kr.
|
||||||
Kr.e.
|
Kr.e.
|
||||||
Kr.u.
|
Kr.u.
|
||||||
Krt.
|
Krt.
|
||||||
|
L.
|
||||||
|
LB.
|
||||||
|
Llc.
|
||||||
|
Ltd.
|
||||||
|
M.
|
||||||
M.A.
|
M.A.
|
||||||
M.S.
|
M.S.
|
||||||
M.SC.
|
M.SC.
|
||||||
M.Sc.
|
M.Sc.
|
||||||
MA.
|
MA.
|
||||||
|
MH.
|
||||||
MSC.
|
MSC.
|
||||||
MSc.
|
MSc.
|
||||||
Mass.
|
Mass.
|
||||||
|
Max.
|
||||||
Mlle.
|
Mlle.
|
||||||
Mme.
|
Mme.
|
||||||
Mo.
|
Mo.
|
||||||
|
@ -71,45 +125,77 @@ Mr.
|
||||||
Mrs.
|
Mrs.
|
||||||
Ms.
|
Ms.
|
||||||
Mt.
|
Mt.
|
||||||
|
N.
|
||||||
N.N.
|
N.N.
|
||||||
NB.
|
NB.
|
||||||
NBr.
|
NBr.
|
||||||
Nat.
|
Nat.
|
||||||
|
No.
|
||||||
Nr.
|
Nr.
|
||||||
Ny.
|
Ny.
|
||||||
Nyh.
|
Nyh.
|
||||||
Nyr.
|
Nyr.
|
||||||
|
Nyrt.
|
||||||
|
O.
|
||||||
|
OJ.
|
||||||
Op.
|
Op.
|
||||||
|
P.
|
||||||
P.H.
|
P.H.
|
||||||
P.S.
|
P.S.
|
||||||
PH.D.
|
PH.D.
|
||||||
PHD.
|
PHD.
|
||||||
PROF.
|
PROF.
|
||||||
|
Pf.
|
||||||
Ph.D
|
Ph.D
|
||||||
PhD.
|
PhD.
|
||||||
|
Pk.
|
||||||
|
Pl.
|
||||||
|
Plc.
|
||||||
Pp.
|
Pp.
|
||||||
Proc.
|
Proc.
|
||||||
Prof.
|
Prof.
|
||||||
Ptk.
|
Ptk.
|
||||||
|
R.
|
||||||
|
RT.
|
||||||
Rer.
|
Rer.
|
||||||
|
Rt.
|
||||||
|
S.
|
||||||
S.B.
|
S.B.
|
||||||
SZOLG.
|
SZOLG.
|
||||||
Salg.
|
Salg.
|
||||||
|
Sch.
|
||||||
|
Spa.
|
||||||
St.
|
St.
|
||||||
Sz.
|
Sz.
|
||||||
|
SzRt.
|
||||||
|
Szerk.
|
||||||
Szfv.
|
Szfv.
|
||||||
Szjt.
|
Szjt.
|
||||||
Szolg.
|
Szolg.
|
||||||
Szt.
|
Szt.
|
||||||
Sztv.
|
Sztv.
|
||||||
|
Szvt.
|
||||||
|
Számv.
|
||||||
|
T.
|
||||||
TEL.
|
TEL.
|
||||||
Tel.
|
Tel.
|
||||||
Ty.
|
Ty.
|
||||||
Tyr.
|
Tyr.
|
||||||
|
U.
|
||||||
Ui.
|
Ui.
|
||||||
|
Ut.
|
||||||
|
V.
|
||||||
|
VB.
|
||||||
Vcs.
|
Vcs.
|
||||||
Vhr.
|
Vhr.
|
||||||
|
Vht.
|
||||||
|
Várm.
|
||||||
|
W.
|
||||||
|
X.
|
||||||
X.Y.
|
X.Y.
|
||||||
|
Y.
|
||||||
|
Z.
|
||||||
|
Zrt.
|
||||||
Zs.
|
Zs.
|
||||||
a.C.
|
a.C.
|
||||||
ac.
|
ac.
|
||||||
|
@ -119,11 +205,13 @@ ag.
|
||||||
agit.
|
agit.
|
||||||
alez.
|
alez.
|
||||||
alk.
|
alk.
|
||||||
|
all.
|
||||||
altbgy.
|
altbgy.
|
||||||
an.
|
an.
|
||||||
ang.
|
ang.
|
||||||
arch.
|
arch.
|
||||||
at.
|
at.
|
||||||
|
atc.
|
||||||
aug.
|
aug.
|
||||||
b.a.
|
b.a.
|
||||||
b.s.
|
b.s.
|
||||||
|
@ -161,6 +249,7 @@ dikt.
|
||||||
dipl.
|
dipl.
|
||||||
dj.
|
dj.
|
||||||
dk.
|
dk.
|
||||||
|
dl.
|
||||||
dny.
|
dny.
|
||||||
dolg.
|
dolg.
|
||||||
dr.
|
dr.
|
||||||
|
@ -184,6 +273,7 @@ eü.
|
||||||
f.h.
|
f.h.
|
||||||
f.é.
|
f.é.
|
||||||
fam.
|
fam.
|
||||||
|
fb.
|
||||||
febr.
|
febr.
|
||||||
fej.
|
fej.
|
||||||
felv.
|
felv.
|
||||||
|
@ -211,6 +301,7 @@ gazd.
|
||||||
gimn.
|
gimn.
|
||||||
gk.
|
gk.
|
||||||
gkv.
|
gkv.
|
||||||
|
gmk.
|
||||||
gondn.
|
gondn.
|
||||||
gr.
|
gr.
|
||||||
grav.
|
grav.
|
||||||
|
@ -240,6 +331,7 @@ hőm.
|
||||||
i.e.
|
i.e.
|
||||||
i.sz.
|
i.sz.
|
||||||
id.
|
id.
|
||||||
|
ie.
|
||||||
ifj.
|
ifj.
|
||||||
ig.
|
ig.
|
||||||
igh.
|
igh.
|
||||||
|
@ -254,6 +346,7 @@ io.
|
||||||
ip.
|
ip.
|
||||||
ir.
|
ir.
|
||||||
irod.
|
irod.
|
||||||
|
irod.
|
||||||
isk.
|
isk.
|
||||||
ism.
|
ism.
|
||||||
izr.
|
izr.
|
||||||
|
@ -261,6 +354,7 @@ iá.
|
||||||
jan.
|
jan.
|
||||||
jav.
|
jav.
|
||||||
jegyz.
|
jegyz.
|
||||||
|
jgmk.
|
||||||
jjv.
|
jjv.
|
||||||
jkv.
|
jkv.
|
||||||
jogh.
|
jogh.
|
||||||
|
@ -271,6 +365,7 @@ júl.
|
||||||
jún.
|
jún.
|
||||||
karb.
|
karb.
|
||||||
kat.
|
kat.
|
||||||
|
kath.
|
||||||
kb.
|
kb.
|
||||||
kcs.
|
kcs.
|
||||||
kd.
|
kd.
|
||||||
|
@ -285,6 +380,8 @@ kiv.
|
||||||
kk.
|
kk.
|
||||||
kkt.
|
kkt.
|
||||||
klin.
|
klin.
|
||||||
|
km.
|
||||||
|
korm.
|
||||||
kp.
|
kp.
|
||||||
krt.
|
krt.
|
||||||
kt.
|
kt.
|
||||||
|
@ -318,6 +415,7 @@ m.s.
|
||||||
m.sc.
|
m.sc.
|
||||||
ma.
|
ma.
|
||||||
mat.
|
mat.
|
||||||
|
max.
|
||||||
mb.
|
mb.
|
||||||
med.
|
med.
|
||||||
megh.
|
megh.
|
||||||
|
@ -353,6 +451,7 @@ nat.
|
||||||
nb.
|
nb.
|
||||||
neg.
|
neg.
|
||||||
nk.
|
nk.
|
||||||
|
no.
|
||||||
nov.
|
nov.
|
||||||
nu.
|
nu.
|
||||||
ny.
|
ny.
|
||||||
|
@ -362,6 +461,7 @@ nyug.
|
||||||
obj.
|
obj.
|
||||||
okl.
|
okl.
|
||||||
okt.
|
okt.
|
||||||
|
old.
|
||||||
olv.
|
olv.
|
||||||
orsz.
|
orsz.
|
||||||
ort.
|
ort.
|
||||||
|
@ -372,6 +472,8 @@ pg.
|
||||||
ph.d
|
ph.d
|
||||||
ph.d.
|
ph.d.
|
||||||
phd.
|
phd.
|
||||||
|
phil.
|
||||||
|
pjt.
|
||||||
pk.
|
pk.
|
||||||
pl.
|
pl.
|
||||||
plb.
|
plb.
|
||||||
|
@ -406,6 +508,7 @@ röv.
|
||||||
s.b.
|
s.b.
|
||||||
s.k.
|
s.k.
|
||||||
sa.
|
sa.
|
||||||
|
sb.
|
||||||
sel.
|
sel.
|
||||||
sgt.
|
sgt.
|
||||||
sm.
|
sm.
|
||||||
|
@ -413,6 +516,7 @@ st.
|
||||||
stat.
|
stat.
|
||||||
stb.
|
stb.
|
||||||
strat.
|
strat.
|
||||||
|
stud.
|
||||||
sz.
|
sz.
|
||||||
szakm.
|
szakm.
|
||||||
szaksz.
|
szaksz.
|
||||||
|
@ -467,6 +571,7 @@ vb.
|
||||||
vegy.
|
vegy.
|
||||||
vh.
|
vh.
|
||||||
vhol.
|
vhol.
|
||||||
|
vhr.
|
||||||
vill.
|
vill.
|
||||||
vizsg.
|
vizsg.
|
||||||
vk.
|
vk.
|
||||||
|
@ -478,13 +583,20 @@ vs.
|
||||||
vsz.
|
vsz.
|
||||||
vv.
|
vv.
|
||||||
vál.
|
vál.
|
||||||
|
várm.
|
||||||
vízv.
|
vízv.
|
||||||
vö.
|
vö.
|
||||||
zrt.
|
zrt.
|
||||||
zs.
|
zs.
|
||||||
|
Á.
|
||||||
|
Áe.
|
||||||
|
Áht.
|
||||||
|
É.
|
||||||
|
Épt.
|
||||||
Ész.
|
Ész.
|
||||||
Új-Z.
|
Új-Z.
|
||||||
ÚjZ.
|
ÚjZ.
|
||||||
|
Ún.
|
||||||
á.
|
á.
|
||||||
ált.
|
ált.
|
||||||
ápr.
|
ápr.
|
||||||
|
@ -500,6 +612,7 @@ zs.
|
||||||
ötk.
|
ötk.
|
||||||
özv.
|
özv.
|
||||||
ú.
|
ú.
|
||||||
|
ú.n.
|
||||||
úm.
|
úm.
|
||||||
ún.
|
ún.
|
||||||
út.
|
út.
|
||||||
|
@ -510,7 +623,6 @@ zs.
|
||||||
ümk.
|
ümk.
|
||||||
ütk.
|
ütk.
|
||||||
üv.
|
üv.
|
||||||
ő.
|
|
||||||
ű.
|
ű.
|
||||||
őrgy.
|
őrgy.
|
||||||
őrpk.
|
őrpk.
|
||||||
|
@ -520,3 +632,17 @@ zs.
|
||||||
OTHER_EXC = """
|
OTHER_EXC = """
|
||||||
-e
|
-e
|
||||||
""".strip().split()
|
""".strip().split()
|
||||||
|
|
||||||
|
ORD_NUM_OR_DATE = "([A-Z0-9]+[./-])*(\d+\.?)"
|
||||||
|
_NUM = "[+\-]?\d+([,.]\d+)*"
|
||||||
|
_OPS = "[=<>+\-\*/^()÷%²]"
|
||||||
|
_SUFFIXES = "-[{a}]+".format(a=ALPHA_LOWER)
|
||||||
|
NUMERIC_EXP = "({n})(({o})({n}))*[%]?".format(n=_NUM, o=_OPS)
|
||||||
|
TIME_EXP = "\d+(:\d+)*(\.\d+)?"
|
||||||
|
|
||||||
|
NUMS = "(({ne})|({t})|({on})|({c}))({s})?".format(
|
||||||
|
ne=NUMERIC_EXP, t=TIME_EXP, on=ORD_NUM_OR_DATE,
|
||||||
|
c=CURRENCY, s=_SUFFIXES
|
||||||
|
)
|
||||||
|
|
||||||
|
TOKEN_MATCH = re.compile("^({u})|({n})$".format(u=_URL_PATTERN, n=NUMS)).match
|
||||||
|
|
|
@ -57,14 +57,14 @@ LIST_PUNCT = list(_PUNCT.strip().split())
|
||||||
LIST_HYPHENS = list(_HYPHENS.strip().split())
|
LIST_HYPHENS = list(_HYPHENS.strip().split())
|
||||||
|
|
||||||
|
|
||||||
ALPHA_LOWER = _ALPHA_LOWER.strip().replace(' ', '')
|
ALPHA_LOWER = _ALPHA_LOWER.strip().replace(' ', '').replace('\n', '')
|
||||||
ALPHA_UPPER = _ALPHA_UPPER.strip().replace(' ', '')
|
ALPHA_UPPER = _ALPHA_UPPER.strip().replace(' ', '').replace('\n', '')
|
||||||
ALPHA = ALPHA_LOWER + ALPHA_UPPER
|
ALPHA = ALPHA_LOWER + ALPHA_UPPER
|
||||||
|
|
||||||
|
|
||||||
QUOTES = _QUOTES.strip().replace(' ', '|')
|
QUOTES = _QUOTES.strip().replace(' ', '|')
|
||||||
CURRENCY = _CURRENCY.strip().replace(' ', '|')
|
CURRENCY = _CURRENCY.strip().replace(' ', '|')
|
||||||
UNITS = _UNITS.strip().replace(' ', '|')
|
UNITS = _UNITS.strip().replace(' ', '|').replace('\n', '|')
|
||||||
HYPHENS = _HYPHENS.strip().replace(' ', '|')
|
HYPHENS = _HYPHENS.strip().replace(' ', '|')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ from __future__ import unicode_literals
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_TESTS = [
|
DEFAULT_TESTS = [
|
||||||
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
||||||
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
||||||
|
@ -24,23 +23,27 @@ DEFAULT_TESTS = [
|
||||||
|
|
||||||
HYPHEN_TESTS = [
|
HYPHEN_TESTS = [
|
||||||
('Egy -nak, -jaiért, -magyar, bel- van.', ['Egy', '-nak', ',', '-jaiért', ',', '-magyar', ',', 'bel-', 'van', '.']),
|
('Egy -nak, -jaiért, -magyar, bel- van.', ['Egy', '-nak', ',', '-jaiért', ',', '-magyar', ',', 'bel-', 'van', '.']),
|
||||||
|
('Szabolcs-Szatmár-Bereg megye', ['Szabolcs-Szatmár-Bereg', 'megye']),
|
||||||
('Egy -nak.', ['Egy', '-nak', '.']),
|
('Egy -nak.', ['Egy', '-nak', '.']),
|
||||||
('Egy bel-.', ['Egy', 'bel-', '.']),
|
('Egy bel-.', ['Egy', 'bel-', '.']),
|
||||||
('Dinnye-domb-.', ['Dinnye-domb-', '.']),
|
('Dinnye-domb-.', ['Dinnye-domb-', '.']),
|
||||||
('Ezen -e elcsatangolt.', ['Ezen', '-e', 'elcsatangolt', '.']),
|
('Ezen -e elcsatangolt.', ['Ezen', '-e', 'elcsatangolt', '.']),
|
||||||
('Lakik-e', ['Lakik', '-e']),
|
('Lakik-e', ['Lakik', '-e']),
|
||||||
|
('A--B', ['A', '--', 'B']),
|
||||||
('Lakik-e?', ['Lakik', '-e', '?']),
|
('Lakik-e?', ['Lakik', '-e', '?']),
|
||||||
('Lakik-e.', ['Lakik', '-e', '.']),
|
('Lakik-e.', ['Lakik', '-e', '.']),
|
||||||
('Lakik-e...', ['Lakik', '-e', '...']),
|
('Lakik-e...', ['Lakik', '-e', '...']),
|
||||||
('Lakik-e... van.', ['Lakik', '-e', '...', 'van', '.']),
|
('Lakik-e... van.', ['Lakik', '-e', '...', 'van', '.']),
|
||||||
('Lakik-e van?', ['Lakik', '-e', 'van', '?']),
|
('Lakik-e van?', ['Lakik', '-e', 'van', '?']),
|
||||||
('Lakik-elem van?', ['Lakik-elem', 'van', '?']),
|
('Lakik-elem van?', ['Lakik-elem', 'van', '?']),
|
||||||
|
('Az életbiztosításáról- egy.', ['Az', 'életbiztosításáról-', 'egy', '.']),
|
||||||
('Van lakik-elem.', ['Van', 'lakik-elem', '.']),
|
('Van lakik-elem.', ['Van', 'lakik-elem', '.']),
|
||||||
('A 7-es busz?', ['A', '7-es', 'busz', '?']),
|
('A 7-es busz?', ['A', '7-es', 'busz', '?']),
|
||||||
('A 7-es?', ['A', '7-es', '?']),
|
('A 7-es?', ['A', '7-es', '?']),
|
||||||
('A 7-es.', ['A', '7-es', '.']),
|
('A 7-es.', ['A', '7-es', '.']),
|
||||||
('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']),
|
('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']),
|
||||||
('A %-sal.', ['A', '%-sal', '.']),
|
('A %-sal.', ['A', '%-sal', '.']),
|
||||||
|
('A $-sal.', ['A', '$-sal', '.']),
|
||||||
('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.'])
|
('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.'])
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -89,11 +92,15 @@ NUMBER_TESTS = [
|
||||||
('A -23,12 van.', ['A', '-23,12', 'van', '.']),
|
('A -23,12 van.', ['A', '-23,12', 'van', '.']),
|
||||||
('A -23,12-ben van.', ['A', '-23,12-ben', 'van', '.']),
|
('A -23,12-ben van.', ['A', '-23,12-ben', 'van', '.']),
|
||||||
('A -23,12-ben.', ['A', '-23,12-ben', '.']),
|
('A -23,12-ben.', ['A', '-23,12-ben', '.']),
|
||||||
('A 2+3 van.', ['A', '2', '+', '3', 'van', '.']),
|
('A 2+3 van.', ['A', '2+3', 'van', '.']),
|
||||||
('A 2 +3 van.', ['A', '2', '+', '3', 'van', '.']),
|
('A 2<3 van.', ['A', '2<3', 'van', '.']),
|
||||||
|
('A 2=3 van.', ['A', '2=3', 'van', '.']),
|
||||||
|
('A 2÷3 van.', ['A', '2÷3', 'van', '.']),
|
||||||
|
('A 1=(2÷3)-2/5 van.', ['A', '1=(2÷3)-2/5', 'van', '.']),
|
||||||
|
('A 2 +3 van.', ['A', '2', '+3', 'van', '.']),
|
||||||
('A 2+ 3 van.', ['A', '2', '+', '3', 'van', '.']),
|
('A 2+ 3 van.', ['A', '2', '+', '3', 'van', '.']),
|
||||||
('A 2 + 3 van.', ['A', '2', '+', '3', 'van', '.']),
|
('A 2 + 3 van.', ['A', '2', '+', '3', 'van', '.']),
|
||||||
('A 2*3 van.', ['A', '2', '*', '3', 'van', '.']),
|
('A 2*3 van.', ['A', '2*3', 'van', '.']),
|
||||||
('A 2 *3 van.', ['A', '2', '*', '3', 'van', '.']),
|
('A 2 *3 van.', ['A', '2', '*', '3', 'van', '.']),
|
||||||
('A 2* 3 van.', ['A', '2', '*', '3', 'van', '.']),
|
('A 2* 3 van.', ['A', '2', '*', '3', 'van', '.']),
|
||||||
('A 2 * 3 van.', ['A', '2', '*', '3', 'van', '.']),
|
('A 2 * 3 van.', ['A', '2', '*', '3', 'van', '.']),
|
||||||
|
@ -141,7 +148,8 @@ NUMBER_TESTS = [
|
||||||
('A 15.-ben.', ['A', '15.-ben', '.']),
|
('A 15.-ben.', ['A', '15.-ben', '.']),
|
||||||
('A 2002--2003. van.', ['A', '2002--2003.', 'van', '.']),
|
('A 2002--2003. van.', ['A', '2002--2003.', 'van', '.']),
|
||||||
('A 2002--2003-ben van.', ['A', '2002--2003-ben', 'van', '.']),
|
('A 2002--2003-ben van.', ['A', '2002--2003-ben', 'van', '.']),
|
||||||
('A 2002--2003-ben.', ['A', '2002--2003-ben', '.']),
|
('A 2002-2003-ben.', ['A', '2002-2003-ben', '.']),
|
||||||
|
('A +0,99% van.', ['A', '+0,99%', 'van', '.']),
|
||||||
('A -0,99% van.', ['A', '-0,99%', 'van', '.']),
|
('A -0,99% van.', ['A', '-0,99%', 'van', '.']),
|
||||||
('A -0,99%-ben van.', ['A', '-0,99%-ben', 'van', '.']),
|
('A -0,99%-ben van.', ['A', '-0,99%-ben', 'van', '.']),
|
||||||
('A -0,99%.', ['A', '-0,99%', '.']),
|
('A -0,99%.', ['A', '-0,99%', '.']),
|
||||||
|
@ -194,23 +202,33 @@ NUMBER_TESTS = [
|
||||||
('A III/c-ben.', ['A', 'III/c-ben', '.']),
|
('A III/c-ben.', ['A', 'III/c-ben', '.']),
|
||||||
('A TU–154 van.', ['A', 'TU–154', 'van', '.']),
|
('A TU–154 van.', ['A', 'TU–154', 'van', '.']),
|
||||||
('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']),
|
('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']),
|
||||||
('A TU–154-ben.', ['A', 'TU–154-ben', '.'])
|
('A TU–154-ben.', ['A', 'TU–154-ben', '.']),
|
||||||
|
('A 5cm³', ['A', '5', 'cm³']),
|
||||||
|
('A 5 $-ban', ['A', '5', '$-ban']),
|
||||||
|
('A 5$-ban', ['A', '5$-ban']),
|
||||||
|
('A 5$.', ['A', '5', '$', '.']),
|
||||||
|
('A 5$', ['A', '5', '$']),
|
||||||
|
('A $5', ['A', '$5']),
|
||||||
|
('A 5km/h', ['A', '5', 'km/h']),
|
||||||
|
('A 75%+1-100%-ig', ['A', '75%+1-100%-ig']),
|
||||||
|
('A 5km/h.', ['A', '5', 'km/h', '.']),
|
||||||
|
('3434/1992. évi elszámolás', ['3434/1992.', 'évi', 'elszámolás']),
|
||||||
]
|
]
|
||||||
|
|
||||||
QUOTE_TESTS = [
|
QUOTE_TESTS = [
|
||||||
('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
||||||
('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
||||||
('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']),
|
('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']),
|
||||||
('Egy 24"-os monitor.', ['Egy', '24', '"', '-os', 'monitor', '.']),
|
('Egy 24"-os monitor.', ['Egy', '24"-os', 'monitor', '.']),
|
||||||
("A don't van.", ['A', "don't", 'van', '.'])
|
("A McDonald's van.", ['A', "McDonald's", 'van', '.'])
|
||||||
]
|
]
|
||||||
|
|
||||||
DOT_TESTS = [
|
DOT_TESTS = [
|
||||||
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
||||||
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
||||||
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
||||||
('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']),
|
('A pl. rövidítés.', ['A', 'pl.', 'rövidítés', '.']),
|
||||||
('A S.M.A.R.T. szo.', ['A', 'S.M.A.R.T.', 'szo', '.']),
|
('A S.M.A.R.T. szó.', ['A', 'S.M.A.R.T.', 'szó', '.']),
|
||||||
('A .hu.', ['A', '.hu', '.']),
|
('A .hu.', ['A', '.hu', '.']),
|
||||||
('Az egy.ketto.', ['Az', 'egy.ketto', '.']),
|
('Az egy.ketto.', ['Az', 'egy.ketto', '.']),
|
||||||
('A pl.', ['A', 'pl.']),
|
('A pl.', ['A', 'pl.']),
|
||||||
|
@ -223,8 +241,19 @@ DOT_TESTS = [
|
||||||
('Valami ... más.', ['Valami', '...', 'más', '.'])
|
('Valami ... más.', ['Valami', '...', 'más', '.'])
|
||||||
]
|
]
|
||||||
|
|
||||||
|
WIKI_TESTS = [
|
||||||
|
('!"', ['!', '"']),
|
||||||
|
('lány"a', ['lány', '"', 'a']),
|
||||||
|
('lány"a', ['lány', '"', 'a']),
|
||||||
|
('!"-lel', ['!', '"', '-lel']),
|
||||||
|
('""-sorozat ', ['"', '"', '-sorozat']),
|
||||||
|
('"(Köszönöm', ['"', '(', 'Köszönöm']),
|
||||||
|
('(törvénykönyv)-ben ', ['(', 'törvénykönyv', ')', '-ben']),
|
||||||
|
('"(...)"–sokkal ', ['"', '(', '...', ')', '"', '–sokkal']),
|
||||||
|
('cérium(IV)-oxid', ['cérium', '(', 'IV', ')', '-oxid'])
|
||||||
|
]
|
||||||
|
|
||||||
TESTCASES = DEFAULT_TESTS + DOT_TESTS + QUOTE_TESTS # + NUMBER_TESTS + HYPHEN_TESTS
|
TESTCASES = DEFAULT_TESTS + DOT_TESTS + QUOTE_TESTS + NUMBER_TESTS + HYPHEN_TESTS + WIKI_TESTS
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
|
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user