diff --git a/spacy/fi/__init__.py b/spacy/fi/__init__.py index ab49b5db1..ae33e77dd 100644 --- a/spacy/fi/__init__.py +++ b/spacy/fi/__init__.py @@ -1,9 +1,13 @@ # coding: utf8 -from __future__ import unicode_literals, print_function +from __future__ import unicode_literals +from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS +from .stop_words import STOP_WORDS + +from ..language_data import BASE_EXCEPTIONS from ..language import Language from ..attrs import LANG -from .language_data import * +from ..util import update_exc class Finnish(Language): @@ -13,8 +17,8 @@ class Finnish(Language): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) lex_attr_getters[LANG] = lambda text: 'fi' - tokenizer_exceptions = TOKENIZER_EXCEPTIONS - stop_words = STOP_WORDS + tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS) + stop_words = set(STOP_WORDS) -EXPORT = Finnish \ No newline at end of file +__all__ = ['Finnish'] diff --git a/spacy/fi/tokenizer_exceptions.py b/spacy/fi/tokenizer_exceptions.py index 09775a2f4..3dcc55024 100644 --- a/spacy/fi/tokenizer_exceptions.py +++ b/spacy/fi/tokenizer_exceptions.py @@ -1,199 +1,79 @@ # coding: utf8 from __future__ import unicode_literals -from ..symbols import * -from ..language_data import PRON_LEMMA +from ..symbols import ORTH, LEMMA + + +_exc = {} + # Source https://www.cs.tut.fi/~jkorpela/kielenopas/5.5.html -TOKENIZER_EXCEPTIONS = { - "aik.": [ - {ORTH: "aik.", LEMMA: "aikaisempi"} - ], - "alk.": [ - {ORTH: "alk.", LEMMA: "alkaen"} - ], - "alv.": [ - {ORTH: "alv.", LEMMA: "arvonlisävero"} - ], - "ark.": [ - {ORTH: "ark.", LEMMA: "arkisin"} - ], - "as.": [ - {ORTH: "as.", LEMMA: "asunto"} - ], - "ed.": [ - {ORTH: "ed.", LEMMA: "edellinen"} - ], - "esim.": [ - {ORTH: "esim.", LEMMA: "esimerkki"} - ], - "huom.": [ - {ORTH: "huom.", LEMMA: "huomautus"} - ], - "jne.": [ - {ORTH: "jne.", LEMMA: "ja niin edelleen"} - ], - "joht.": [ - {ORTH: "joht.", LEMMA: "johtaja"} - ], - "k.": [ - {ORTH: "k.", LEMMA: "kuollut"} - ], - "ks.": [ - {ORTH: "ks.", LEMMA: "katso"} - ], - "lk.": [ - {ORTH: "lk.", LEMMA: "luokka"} - ], - "lkm.": [ - {ORTH: "lkm.", LEMMA: "lukumäärä"} - ], - "lyh.": [ - {ORTH: "lyh.", LEMMA: "lyhenne"} - ], - "läh.": [ - {ORTH: "läh.", LEMMA: "lähettäjä"} - ], - "miel.": [ - {ORTH: "miel.", LEMMA: "mieluummin"} - ], - "milj.": [ - {ORTH: "milj.", LEMMA: "miljoona"} - ], - "mm.": [ - {ORTH: "mm.", LEMMA: "muun muassa"} - ], - "myöh.": [ - {ORTH: "myöh.", LEMMA: "myöhempi"} - ], - "n.": [ - {ORTH: "n.", LEMMA: "noin"} - ], - "nimim.": [ - {ORTH: "nimim.", LEMMA: "nimimerkki"} - ], - "ns.": [ - {ORTH: "ns.", LEMMA: "niin sanottu"} - ], - "nyk.": [ - {ORTH: "nyk.", LEMMA: "nykyinen"} - ], - "oik.": [ - {ORTH: "oik.", LEMMA: "oikealla"} - ], - "os.": [ - {ORTH: "os.", LEMMA: "osoite"} - ], - "p.": [ - {ORTH: "p.", LEMMA: "päivä"} - ], - "par.": [ - {ORTH: "par.", LEMMA: "paremmin"} - ], - "per.": [ - {ORTH: "per.", LEMMA: "perustettu"} - ], - "pj.": [ - {ORTH: "pj.", LEMMA: "puheenjohtaja"} - ], - "puh.joht.": [ - {ORTH: "puh.joht.", LEMMA: "puheenjohtaja"} - ], - "prof.": [ - {ORTH: "prof.", LEMMA: "professori"} - ], - "puh.": [ - {ORTH: "puh.", LEMMA: "puhelin"} - ], - "pvm.": [ - {ORTH: "pvm.", LEMMA: "päivämäärä"} - ], - "rak.": [ - {ORTH: "rak.", LEMMA: "rakennettu"} - ], - "ry.": [ - {ORTH: "ry.", LEMMA: "rekisteröity yhdistys"} - ], - "s.": [ - {ORTH: "s.", LEMMA: "sivu"} - ], - "siht.": [ - {ORTH: "siht.", LEMMA: "sihteeri"} - ], - "synt.": [ - {ORTH: "synt.", LEMMA: "syntynyt"} - ], - "t.": [ - {ORTH: "t.", LEMMA: "toivoo"} - ], - "tark.": [ - {ORTH: "tark.", LEMMA: "tarkastanut"} - ], - "til.": [ - {ORTH: "til.", LEMMA: "tilattu"} - ], - "tms.": [ - {ORTH: "tms.", LEMMA: "tai muuta sellaista"} - ], - "toim.": [ - {ORTH: "toim.", LEMMA: "toimittanut"} - ], - "v.": [ - {ORTH: "v.", LEMMA: "vuosi"} - ], - "vas.": [ - {ORTH: "vas.", LEMMA: "vasen"} - ], - "vast.": [ - {ORTH: "vast.", LEMMA: "vastaus"} - ], - "vrt.": [ - {ORTH: "vrt.", LEMMA: "vertaa"} - ], - "yht.": [ - {ORTH: "yht.", LEMMA: "yhteensä"} - ], - "yl.": [ - {ORTH: "yl.", LEMMA: "yleinen"} - ], - "ym.": [ - {ORTH: "ym.", LEMMA: "ynnä muuta"} - ], - "yms.": [ - {ORTH: "yms.", LEMMA: "ynnä muuta sellaista"} - ], - "yo.": [ - {ORTH: "yo.", LEMMA: "ylioppilas"} - ], - "yliopp.": [ - {ORTH: "yliopp.", LEMMA: "ylioppilas"} - ], - "ao.": [ - {ORTH: "ao.", LEMMA: "asianomainen"} - ], - "em.": [ - {ORTH: "em.", LEMMA: "edellä mainittu"} - ], - "ko.": [ - {ORTH: "ko.", LEMMA: "kyseessä oleva"} - ], - "ml.": [ - {ORTH: "ml.", LEMMA: "mukaan luettuna"} - ], - "po.": [ - {ORTH: "po.", LEMMA: "puheena oleva"} - ], - "so.": [ - {ORTH: "so.", LEMMA: "se on"} - ], - "ts.": [ - {ORTH: "ts.", LEMMA: "toisin sanoen"} - ], - "vm.": [ - {ORTH: "vm.", LEMMA: "viimeksi mainittu"} - ], - "srk.": [ - {ORTH: "srk.", LEMMA: "seurakunta"} - ] -} +for exc_data in [ + {ORTH: "aik.", LEMMA: "aikaisempi"}, + {ORTH: "alk.", LEMMA: "alkaen"}, + {ORTH: "alv.", LEMMA: "arvonlisävero"}, + {ORTH: "ark.", LEMMA: "arkisin"}, + {ORTH: "as.", LEMMA: "asunto"}, + {ORTH: "ed.", LEMMA: "edellinen"}, + {ORTH: "esim.", LEMMA: "esimerkki"}, + {ORTH: "huom.", LEMMA: "huomautus"}, + {ORTH: "jne.", LEMMA: "ja niin edelleen"}, + {ORTH: "joht.", LEMMA: "johtaja"}, + {ORTH: "k.", LEMMA: "kuollut"}, + {ORTH: "ks.", LEMMA: "katso"}, + {ORTH: "lk.", LEMMA: "luokka"}, + {ORTH: "lkm.", LEMMA: "lukumäärä"}, + {ORTH: "lyh.", LEMMA: "lyhenne"}, + {ORTH: "läh.", LEMMA: "lähettäjä"}, + {ORTH: "miel.", LEMMA: "mieluummin"}, + {ORTH: "milj.", LEMMA: "miljoona"}, + {ORTH: "mm.", LEMMA: "muun muassa"}, + {ORTH: "myöh.", LEMMA: "myöhempi"}, + {ORTH: "n.", LEMMA: "noin"}, + {ORTH: "nimim.", LEMMA: "nimimerkki"}, + {ORTH: "ns.", LEMMA: "niin sanottu"}, + {ORTH: "nyk.", LEMMA: "nykyinen"}, + {ORTH: "oik.", LEMMA: "oikealla"}, + {ORTH: "os.", LEMMA: "osoite"}, + {ORTH: "p.", LEMMA: "päivä"}, + {ORTH: "par.", LEMMA: "paremmin"}, + {ORTH: "per.", LEMMA: "perustettu"}, + {ORTH: "pj.", LEMMA: "puheenjohtaja"}, + {ORTH: "puh.joht.", LEMMA: "puheenjohtaja"}, + {ORTH: "prof.", LEMMA: "professori"}, + {ORTH: "puh.", LEMMA: "puhelin"}, + {ORTH: "pvm.", LEMMA: "päivämäärä"}, + {ORTH: "rak.", LEMMA: "rakennettu"}, + {ORTH: "ry.", LEMMA: "rekisteröity yhdistys"}, + {ORTH: "s.", LEMMA: "sivu"}, + {ORTH: "siht.", LEMMA: "sihteeri"}, + {ORTH: "synt.", LEMMA: "syntynyt"}, + {ORTH: "t.", LEMMA: "toivoo"}, + {ORTH: "tark.", LEMMA: "tarkastanut"}, + {ORTH: "til.", LEMMA: "tilattu"}, + {ORTH: "tms.", LEMMA: "tai muuta sellaista"}, + {ORTH: "toim.", LEMMA: "toimittanut"}, + {ORTH: "v.", LEMMA: "vuosi"}, + {ORTH: "vas.", LEMMA: "vasen"}, + {ORTH: "vast.", LEMMA: "vastaus"}, + {ORTH: "vrt.", LEMMA: "vertaa"}, + {ORTH: "yht.", LEMMA: "yhteensä"}, + {ORTH: "yl.", LEMMA: "yleinen"}, + {ORTH: "ym.", LEMMA: "ynnä muuta"}, + {ORTH: "yms.", LEMMA: "ynnä muuta sellaista"}, + {ORTH: "yo.", LEMMA: "ylioppilas"}, + {ORTH: "yliopp.", LEMMA: "ylioppilas"}, + {ORTH: "ao.", LEMMA: "asianomainen"}, + {ORTH: "em.", LEMMA: "edellä mainittu"}, + {ORTH: "ko.", LEMMA: "kyseessä oleva"}, + {ORTH: "ml.", LEMMA: "mukaan luettuna"}, + {ORTH: "po.", LEMMA: "puheena oleva"}, + {ORTH: "so.", LEMMA: "se on"}, + {ORTH: "ts.", LEMMA: "toisin sanoen"}, + {ORTH: "vm.", LEMMA: "viimeksi mainittu"}, + {ORTH: "srk.", LEMMA: "seurakunta"}]: + _exc[exc_data[ORTH]] = [dict(exc_data)] + + +TOKENIZER_EXCEPTIONS = dict(_exc)