mirror of
https://github.com/explosion/spaCy.git
synced 2025-01-25 00:34:20 +03:00
Add norwegian lemmatizer and tag_map
This commit is contained in:
parent
fe4748fc38
commit
b9b3a40c78
|
@ -7,6 +7,8 @@ from .morph_rules import MORPH_RULES
|
|||
|
||||
from ..tokenizer_exceptions import BASE_EXCEPTIONS
|
||||
from ..norm_exceptions import BASE_NORMS
|
||||
from .lemmatizer import LOOKUP
|
||||
from .tag_map import TAG_MAP
|
||||
from ...language import Language
|
||||
from ...attrs import LANG, NORM
|
||||
from ...util import update_exc, add_lookups
|
||||
|
@ -18,6 +20,8 @@ class NorwegianDefaults(Language.Defaults):
|
|||
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
|
||||
tag_map = TAG_MAP
|
||||
lemma_lookup = LOOKUP
|
||||
|
||||
|
||||
class Norwegian(Language):
|
||||
|
|
164
spacy/lang/nb/lemmatizer.py
Normal file
164
spacy/lang/nb/lemmatizer.py
Normal file
|
@ -0,0 +1,164 @@
|
|||
# coding: utf8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
LOOKUP = {
|
||||
'a':'a',
|
||||
'aabakken':'aabakken',
|
||||
'aabakkens':'aabakkens',
|
||||
'aarbakke':'aarbakke',
|
||||
'aarum':'aarum',
|
||||
'aase':'aase',
|
||||
'ab':'ab',
|
||||
'abitanti':'abitanti',
|
||||
'abitazione':'abitazione',
|
||||
'ablegøyer':'ablegøyer',
|
||||
'absolutt':'absolutt',
|
||||
'absorberes':'absorberes',
|
||||
'ad':'ad',
|
||||
'adgang':'adgang',
|
||||
'adgangen':'adgangen',
|
||||
'adkomst':'adkomst',
|
||||
'adkomstdokument':'adkomstdokument',
|
||||
'adkomstdokumenter':'adkomstdokumenter',
|
||||
'adkomsten':'adkomsten',
|
||||
'adlyde':'adlyde',
|
||||
'adlyder':'adlyder',
|
||||
'adm':'adm',
|
||||
'administrasjon':'administrasjon',
|
||||
'administrasjonen':'administrasjonen',
|
||||
'administrasjonsdepartementet':'administrasjonsdepartementet',
|
||||
'administrasjonskostnadene':'administrasjonskostnadene',
|
||||
'administrativ':'administrativ',
|
||||
'administrative':'administrative',
|
||||
'administrativt':'administrativt',
|
||||
'administrere':'administrere',
|
||||
'administrerende':'administrerende',
|
||||
'administreres':'administreres',
|
||||
'administrert':'administrert',
|
||||
'adopsjon':'adopsjon',
|
||||
'adopsjonspenger':'adopsjonspenger',
|
||||
'adresse':'adresse',
|
||||
'adresser':'adresser',
|
||||
'adskillelse':'adskillelse',
|
||||
'adskilt':'adskilt',
|
||||
'advare':'advare',
|
||||
'advarselen':'advarselen',
|
||||
'advart':'advart',
|
||||
'advokat':'advokat',
|
||||
'advokatar':'advokatar',
|
||||
'advokatfirmaet':'advokatfirmaet',
|
||||
'advokatfullmektig':'advokatfullmektig',
|
||||
'agder':'agder',
|
||||
'agenter':'agenter',
|
||||
'agenturer':'agenturer',
|
||||
'aggregeres':'aggregeres',
|
||||
'aggregert':'aggregert',
|
||||
'agn':'agn',
|
||||
'agnar':'agnar',
|
||||
'agreement':'agreement',
|
||||
'ajourføring':'ajourføring',
|
||||
'akademikerne':'akademikerne',
|
||||
'akademikernes':'akademikernes',
|
||||
'ake':'ake',
|
||||
'akershus':'akershus',
|
||||
'akkord':'akkord',
|
||||
'akkumulerte':'akkumulerte',
|
||||
'akkurat':'akkurat',
|
||||
'aksept':'aksept',
|
||||
'akseptabel':'akseptabel',
|
||||
'akseptabelt':'akseptabelt',
|
||||
'akseptable':'akseptable',
|
||||
'aksepterast':'aksepterast',
|
||||
'akseptere':'akseptere',
|
||||
'aksepteres':'aksepteres',
|
||||
'akseptert':'akseptert',
|
||||
'aksjane':'aksjane',
|
||||
'aksjar':'aksjar',
|
||||
'aksje':'aksje',
|
||||
'aksjeandel':'aksjeandel',
|
||||
'aksjeavkastning':'aksjeavkastning',
|
||||
'aksjebrev':'aksjebrev',
|
||||
'aksjebustader':'aksjebustader',
|
||||
'aksjeeigar':'aksjeeigar',
|
||||
'aksjeeigarane':'aksjeeigarane',
|
||||
'aksjeeigarar':'aksjeeigarar',
|
||||
'aksjeeigaravtale':'aksjeeigaravtale',
|
||||
'aksjeeigaren':'aksjeeigaren',
|
||||
'aksjegevinster':'aksjegevinster',
|
||||
'aksjeinnskot':'aksjeinnskot',
|
||||
'aksjekapital':'aksjekapital',
|
||||
'aksjekapitalen':'aksjekapitalen',
|
||||
'aksjelov':'aksjelov',
|
||||
'aksjelova':'aksjelova',
|
||||
'aksjeloven':'aksjeloven',
|
||||
'aksjelovens':'aksjelovens',
|
||||
'aksjelovgjeving':'aksjelovgjeving',
|
||||
'aksjelovgjevinga':'aksjelovgjevinga',
|
||||
'aksjer':'aksjer',
|
||||
'aksjerettslig':'aksjerettslig',
|
||||
'aksjeselskap':'aksjeselskap',
|
||||
'aksjeselskaper':'aksjeselskaper',
|
||||
'aksjeselskapet':'aksjeselskapet',
|
||||
'aksjeselskapsformen':'aksjeselskapsformen',
|
||||
'aksjeselskapsrettslege':'aksjeselskapsrettslege',
|
||||
'aksjonær':'aksjonær',
|
||||
'aksjonæroppgaver':'aksjonæroppgaver',
|
||||
'aktersetet':'aktersetet',
|
||||
'aktes':'aktes',
|
||||
'aktiv':'aktiv',
|
||||
'aktiva':'aktiva',
|
||||
'aktivaklasser':'aktivaklasser',
|
||||
'aktivasammensetning':'aktivasammensetning',
|
||||
'aktive':'aktive',
|
||||
'aktivitet':'aktivitet',
|
||||
'aktivitetane':'aktivitetane',
|
||||
'aktivitetar':'aktivitetar',
|
||||
'aktiviteten':'aktiviteten',
|
||||
'aktivitetene':'aktivitetene',
|
||||
'aktiviteter':'aktiviteter',
|
||||
'aktivitetsøkning':'aktivitetsøkning',
|
||||
'aktivt':'aktivt',
|
||||
'aktlaust':'aktlaust',
|
||||
'aktløyse':'aktløyse',
|
||||
'aktsemd':'aktsemd',
|
||||
'aktsemdplikta':'aktsemdplikta',
|
||||
'aktualisere':'aktualisere',
|
||||
'aktuar':'aktuar',
|
||||
'aktuell':'aktuell',
|
||||
'aktuelle':'aktuelle',
|
||||
'aktuelt':'aktuelt',
|
||||
'aktør':'aktør',
|
||||
'aktørane':'aktørane',
|
||||
'aktørar':'aktørar',
|
||||
'aktørene':'aktørene',
|
||||
'aktørenes':'aktørenes',
|
||||
'aktørens':'aktørens',
|
||||
'aktører':'aktører',
|
||||
'aktørers':'aktørers',
|
||||
'aktørgruppe':'aktørgruppe',
|
||||
'aku':'aku',
|
||||
'alarmsignalet':'alarmsignalet',
|
||||
'aldeles':'aldeles',
|
||||
'alder':'alder',
|
||||
'alderdom':'alderdom',
|
||||
'alderdommen':'alderdommen',
|
||||
'alderen':'alderen',
|
||||
'alderkilde':'alderkilde',
|
||||
'alderpensjonen':'alderpensjonen',
|
||||
'alderpensjonskapital':'alderpensjonskapital',
|
||||
'alders':'alders',
|
||||
'aldersdifferanse':'aldersdifferanse',
|
||||
'aldersforskjellen':'aldersforskjellen',
|
||||
'aldersgrense':'aldersgrense',
|
||||
'aldersgrensen':'aldersgrensen',
|
||||
'aldersgrensene':'aldersgrensene',
|
||||
'aldersgrupper':'aldersgrupper',
|
||||
'alderspensjon':'alderspensjon',
|
||||
'alderspensjonen':'alderspensjonen',
|
||||
'alderspensjoner':'alderspensjoner',
|
||||
'alderspensjonist':'alderspensjonist',
|
||||
'alderspensjonistene':'alderspensjonistene',
|
||||
'alderspensjonister':'alderspensjonister',
|
||||
'alderspensjonsforsikring':'alderspensjonsforsikring',
|
||||
'alderspensjonsforsikringen':'alderspensjonsforsikringen',
|
||||
}
|
25
spacy/lang/nb/punctuation.py
Normal file
25
spacy/lang/nb/punctuation.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
# coding: utf8
|
||||
"""Punctuation stolen from Danish"""
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ..char_classes import LIST_ELLIPSES, LIST_ICONS
|
||||
from ..char_classes import QUOTES, ALPHA, ALPHA_LOWER, ALPHA_UPPER
|
||||
from ..punctuation import TOKENIZER_SUFFIXES
|
||||
|
||||
|
||||
_quotes = QUOTES.replace("'", '')
|
||||
|
||||
_infixes = (LIST_ELLIPSES + LIST_ICONS +
|
||||
[r'(?<=[{}])\.(?=[{}])'.format(ALPHA_LOWER, ALPHA_UPPER),
|
||||
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),
|
||||
r'(?<=[{a}])--(?=[{a}])'.format(a=ALPHA)])
|
||||
|
||||
_suffixes = [suffix for suffix in TOKENIZER_SUFFIXES if suffix not in ["'s", "'S", "’s", "’S", r"\'"]]
|
||||
_suffixes += [r"(?<=[^sSxXzZ])\'"]
|
||||
|
||||
|
||||
TOKENIZER_INFIXES = _infixes
|
||||
TOKENIZER_SUFFIXES = _suffixes
|
55
spacy/lang/nb/tag_map.py
Normal file
55
spacy/lang/nb/tag_map.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
# coding: utf8
|
||||
"""Based on Garman tag map, converted using
|
||||
https://pdfs.semanticscholar.org/87b9/24e2134f6782acc59ab567f6bf87cb5e5d9f.pdf"""
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ...symbols import POS, PUNCT, ADJ, CONJ, CCONJ, SCONJ, SYM, NUM, DET, ADV, ADP, X, VERB
|
||||
from ...symbols import NOUN, PROPN, PART, INTJ, SPACE, PRON, AUX
|
||||
|
||||
|
||||
TAG_MAP = {
|
||||
"$(": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
"$)": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
# <parentes-slutt> PUNCT
|
||||
# <parentes-beg> PUNCT
|
||||
"$,": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
"$.": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
"$\"": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
"$-": {POS: PUNCT, "PunctType": "PUNCT"},
|
||||
|
||||
'NOUN': {POS: NOUN},
|
||||
'PROPN': {POS: PROPN},
|
||||
'VERB': {POS: VERB},
|
||||
'PUNCT': {POS: PUNCT},
|
||||
'ADJ': {POS: ADJ},
|
||||
'ADP': {POS: ADP},
|
||||
'PART': {POS: PART},
|
||||
'DET': {POS: DET},
|
||||
'AUX': {POS: AUX},
|
||||
'PRON': {POS: PRON},
|
||||
'CCONJ': {POS: CCONJ},
|
||||
'NUM': {POS: NUM},
|
||||
'ADV': {POS: ADV},
|
||||
'SCONJ': {POS: SCONJ},
|
||||
'SYM': {POS: SYM},
|
||||
'X': {POS: X},
|
||||
'INTJ': {POS: INTJ},
|
||||
|
||||
# <anf> PUNCT
|
||||
# 'adj': {POS: ADJ},
|
||||
# 'adv': {POS: ADV},
|
||||
# 'clb': {POS: PUNCT}, # SYM
|
||||
# 'det': {POS: DET}, # NUM
|
||||
# 'konj': {POS: CONJ},
|
||||
# 'interj': {POS: INTJ},
|
||||
# 'inf-merke': {POS: PART},
|
||||
# 'prep': {POS: ADP},
|
||||
# # 'prep': {POS: ADV},
|
||||
# 'pron': {POS: PRON},
|
||||
# 'sbu': {POS: SCONJ}, #
|
||||
# 'subst': {POS: NOUN}, #, PROPN
|
||||
# 'symb': {POS: SYM}, #
|
||||
# 'ukjent': {POS: X}, #
|
||||
# 'verb': {POS: AUX}, #, VERB
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user