Source code for cltk.phonology.non.phonology
"""
"""
from typing import List
from cltk.phonology.non import syllabifier as ons
from cltk.phonology.non import transcription as ont
from cltk.phonology.non import utils as ut
from cltk.phonology.syllabify import Syllabifier
__author__ = ["Clément Besnier <clem@clementbesnier.fr>"]
[docs]class OldNorseTranscription:
"""
Phonological transcriber for Old Norse
"""
def __init__(self):
self.transcriber = ut.Transcriber(
ont.DIPHTHONGS_IPA,
ont.DIPHTHONGS_IPA_class,
ont.IPA_class,
ont.old_norse_rules,
)
[docs] def transcribe(self, word: str) -> str:
"""
>>> non_transcriber = OldNorseTranscription()
>>> non_transcriber.transcribe("Óðinn")
'[oːðinː]'
:param word: word to transcribe
:return: transcribed word
"""
return self.transcriber.text_to_phonetic_representation(word)
def __repr__(self):
return f"<OldNorseTranscription>"
def __call__(self, word: str) -> str:
return self.transcribe(word)
[docs]class OldNorseSyllabifier:
"""
Syllabifier for Old Norse
"""
def __init__(self):
self.syllabifier = Syllabifier(language="non", break_geminants=True)
self.syllabifier.set_invalid_onsets(ons.invalid_onsets)
[docs] def syllabify(self, word: str) -> List[str]:
"""
>>> non_syllabifier = OldNorseSyllabifier()
>>> non_syllabifier.syllabify('Miðgarðr'.lower())
['mið', 'garðr']
:param word: word to syllabify
:return: syllabified word
"""
return self.syllabifier.syllabify(word)
def __repr__(self):
return f"<OldNorseScanner>"
def __call__(self, word: str) -> List[str]:
return self.syllabify(word)