jvamvas commited on
Commit
e49dd9d
·
verified ·
1 Parent(s): 4788fc6

Upload lemmatizer package

Browse files
Files changed (44) hide show
  1. .gitattributes +22 -0
  2. lemmatizer/__init__.py +1 -0
  3. lemmatizer/analyzer.py +116 -0
  4. lemmatizer/edit_trees/rm-puter/adj/et.txt +3 -0
  5. lemmatizer/edit_trees/rm-puter/noun/et.txt +0 -0
  6. lemmatizer/edit_trees/rm-puter/verb/et.txt +3 -0
  7. lemmatizer/edit_trees/rm-rumgr/adj/et.txt +3 -0
  8. lemmatizer/edit_trees/rm-rumgr/noun/et.txt +3 -0
  9. lemmatizer/edit_trees/rm-rumgr/verb/et.txt +3 -0
  10. lemmatizer/edit_trees/rm-surmiran/adj/et.txt +3 -0
  11. lemmatizer/edit_trees/rm-surmiran/noun/et.txt +3 -0
  12. lemmatizer/edit_trees/rm-surmiran/verb/et.txt +3 -0
  13. lemmatizer/edit_trees/rm-sursilv/adj/et.txt +3 -0
  14. lemmatizer/edit_trees/rm-sursilv/noun/et.txt +3 -0
  15. lemmatizer/edit_trees/rm-sursilv/verb/et.txt +3 -0
  16. lemmatizer/edit_trees/rm-sutsilv/adj/et.txt +3 -0
  17. lemmatizer/edit_trees/rm-sutsilv/noun/et.txt +3 -0
  18. lemmatizer/edit_trees/rm-sutsilv/verb/et.txt +3 -0
  19. lemmatizer/edit_trees/rm-vallader/adj/et.txt +3 -0
  20. lemmatizer/edit_trees/rm-vallader/noun/et.txt +0 -0
  21. lemmatizer/edit_trees/rm-vallader/verb/et.txt +3 -0
  22. lemmatizer/edittree.py +83 -0
  23. lemmatizer/idiom_id.py +28 -0
  24. lemmatizer/in_voc/rm-puter.txt +0 -0
  25. lemmatizer/in_voc/rm-rumgr.txt +0 -0
  26. lemmatizer/in_voc/rm-surmiran.txt +0 -0
  27. lemmatizer/in_voc/rm-sursilv.txt +0 -0
  28. lemmatizer/in_voc/rm-sutsilv.txt +0 -0
  29. lemmatizer/in_voc/rm-vallader.txt +0 -0
  30. lemmatizer/lemma_tables/rm-puter.json +3 -0
  31. lemmatizer/lemma_tables/rm-rumgr.json +3 -0
  32. lemmatizer/lemma_tables/rm-surmiran.json +3 -0
  33. lemmatizer/lemma_tables/rm-sursilv.json +3 -0
  34. lemmatizer/lemma_tables/rm-sutsilv.json +3 -0
  35. lemmatizer/lemma_tables/rm-vallader.json +3 -0
  36. lemmatizer/lemmatizer.py +182 -0
  37. lemmatizer/other_de/rm-puter.json +0 -0
  38. lemmatizer/other_de/rm-rumgr.json +0 -0
  39. lemmatizer/other_de/rm-surmiran.json +1 -0
  40. lemmatizer/other_de/rm-sursilv.json +0 -0
  41. lemmatizer/other_de/rm-sutsilv.json +1 -0
  42. lemmatizer/other_de/rm-vallader.json +0 -0
  43. lemmatizer/tokenizer.py +172 -0
  44. lemmatizer/utils.py +60 -0
.gitattributes CHANGED
@@ -33,3 +33,25 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ lemmatizer/edit_trees/rm-puter/adj/et.txt filter=lfs diff=lfs merge=lfs -text
37
+ lemmatizer/edit_trees/rm-puter/verb/et.txt filter=lfs diff=lfs merge=lfs -text
38
+ lemmatizer/edit_trees/rm-rumgr/adj/et.txt filter=lfs diff=lfs merge=lfs -text
39
+ lemmatizer/edit_trees/rm-rumgr/noun/et.txt filter=lfs diff=lfs merge=lfs -text
40
+ lemmatizer/edit_trees/rm-rumgr/verb/et.txt filter=lfs diff=lfs merge=lfs -text
41
+ lemmatizer/edit_trees/rm-surmiran/adj/et.txt filter=lfs diff=lfs merge=lfs -text
42
+ lemmatizer/edit_trees/rm-surmiran/noun/et.txt filter=lfs diff=lfs merge=lfs -text
43
+ lemmatizer/edit_trees/rm-surmiran/verb/et.txt filter=lfs diff=lfs merge=lfs -text
44
+ lemmatizer/edit_trees/rm-sursilv/adj/et.txt filter=lfs diff=lfs merge=lfs -text
45
+ lemmatizer/edit_trees/rm-sursilv/noun/et.txt filter=lfs diff=lfs merge=lfs -text
46
+ lemmatizer/edit_trees/rm-sursilv/verb/et.txt filter=lfs diff=lfs merge=lfs -text
47
+ lemmatizer/edit_trees/rm-sutsilv/adj/et.txt filter=lfs diff=lfs merge=lfs -text
48
+ lemmatizer/edit_trees/rm-sutsilv/noun/et.txt filter=lfs diff=lfs merge=lfs -text
49
+ lemmatizer/edit_trees/rm-sutsilv/verb/et.txt filter=lfs diff=lfs merge=lfs -text
50
+ lemmatizer/edit_trees/rm-vallader/adj/et.txt filter=lfs diff=lfs merge=lfs -text
51
+ lemmatizer/edit_trees/rm-vallader/verb/et.txt filter=lfs diff=lfs merge=lfs -text
52
+ lemmatizer/lemma_tables/rm-puter.json filter=lfs diff=lfs merge=lfs -text
53
+ lemmatizer/lemma_tables/rm-rumgr.json filter=lfs diff=lfs merge=lfs -text
54
+ lemmatizer/lemma_tables/rm-surmiran.json filter=lfs diff=lfs merge=lfs -text
55
+ lemmatizer/lemma_tables/rm-sursilv.json filter=lfs diff=lfs merge=lfs -text
56
+ lemmatizer/lemma_tables/rm-sutsilv.json filter=lfs diff=lfs merge=lfs -text
57
+ lemmatizer/lemma_tables/rm-vallader.json filter=lfs diff=lfs merge=lfs -text
lemmatizer/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ from lemmatizer.lemmatizer import Lemmatizer
lemmatizer/analyzer.py ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ import pickle
4
+ import sys
5
+
6
+ from jiwer import cer
7
+
8
+ import lemmatizer.edittree as edittree
9
+
10
+ BASE_DIR = Path(__file__).parent
11
+
12
+
13
+ class Analyzer:
14
+ """A class to obtain lemmas, unimorph analysis, and de_translations for Romansh tokens"""
15
+
16
+ def __init__(self, idiom: str, in_voc: set,learned_et: bool = True):
17
+
18
+ self.idiom = idiom
19
+
20
+ self.learned_et = learned_et
21
+
22
+ assert self.idiom in [
23
+ "rm-rumgr",
24
+ "rm-surmiran",
25
+ "rm-sursilv",
26
+ "rm-sutsilv",
27
+ "rm-puter",
28
+ "rm-vallader",
29
+ ]
30
+
31
+ json_path = BASE_DIR / "lemma_tables" / f"{self.idiom}.json"
32
+
33
+ with open(json_path, "r", encoding="utf-8") as f:
34
+ self.dict = json.load(f)
35
+
36
+ lem = []
37
+ for v in self.dict.values():
38
+ lem += v["lemma"]
39
+
40
+ self.lemma = lem
41
+ if self.learned_et:
42
+ self.edit_trees = []
43
+
44
+ for pos in "noun", "adj", "verb":
45
+ et_path = BASE_DIR / "edit_trees" / f"{self.idiom}" / f"{pos}" / "et.txt"
46
+ sys.modules["edittree"] = edittree
47
+ with open(et_path, "rb") as f:
48
+ self.edit_trees += pickle.load(f)
49
+
50
+ self.in_voc = in_voc
51
+
52
+ other_de_path = BASE_DIR / "other_de" / f"{self.idiom}.json"
53
+
54
+ with open(other_de_path, "r", encoding="utf-8") as f:
55
+ self.other_de = json.load(f)
56
+
57
+ def get_lemma(self, tok: str):
58
+ """Obtain lemma through table look up; backs off
59
+ to unsupervised edit tree rules if no lemma found
60
+ """
61
+ tok = tok.lower().strip()
62
+ entry = self.dict.get(tok)
63
+ if entry:
64
+ return entry["lemma"]
65
+
66
+ # Check if there's a lemma from the edit trees
67
+ if self.learned_et:
68
+ et_out = self._et_lemma(tok)
69
+ if et_out:
70
+ return [et_out]
71
+
72
+ # Assume the token is a lemma
73
+ return [tok] if tok in self.in_voc else [None]
74
+
75
+ def _et_lemma(self, tok: str):
76
+ candidates = []
77
+
78
+ for et_pack in self.edit_trees:
79
+ et = et_pack["et"]
80
+ out = et.apply(tok)
81
+
82
+ if out != -1:
83
+ candidates.append(out)
84
+
85
+ strong = [c for c in candidates if c in self.lemma]
86
+
87
+ if len(strong) > 1:
88
+ # Choose the candidate with the lowest edit distance to the tok:
89
+ dist = {}
90
+ for c in strong:
91
+ dist[c] = cer(tok, c)
92
+ out = min(dist, key=dist.get)
93
+ return out if out in self.in_voc else None
94
+
95
+ return strong[0] if strong and strong[0] in self.in_voc else None
96
+
97
+ def get_unimorph(self, tok: str):
98
+ """Obtain Unimorph annotation for N, V, and ADJ
99
+ in the Pledari Grond Dict"""
100
+ tok = tok.lower().strip()
101
+ entry = self.dict.get(tok)
102
+ if entry:
103
+ return entry["unimorph"]
104
+
105
+ return [None]
106
+
107
+ def get_de(self, tok: str):
108
+ """Obtain the German word corresponding to Romansh terms in the Pledari Grond Dict"""
109
+ tok = tok.lower().strip()
110
+ entry = self.dict.get(tok)
111
+ if entry:
112
+ return entry["DStichwort"]
113
+ if tok in self.other_de:
114
+ #Check the rest of the de_translations provided by the pledari grond dict
115
+ return self.other_de[tok]
116
+ return [None]
lemmatizer/edit_trees/rm-puter/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ec86e48c45ab0d112acb09363829f19e8ee361cec51ce6f51b8a990f05bdcbd8
3
+ size 711858
lemmatizer/edit_trees/rm-puter/noun/et.txt ADDED
Binary file (77.6 kB). View file
 
lemmatizer/edit_trees/rm-puter/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f8ba818a7a689dd98932341febd0cc85b138ec09f5302a0bd91bd7b48759ee9a
3
+ size 3776288
lemmatizer/edit_trees/rm-rumgr/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6bb2780eb1ff3c03e65c065ce1057325a2bd54a89fa0e4d1e2ecd53590069b6
3
+ size 1051705
lemmatizer/edit_trees/rm-rumgr/noun/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be3bd4773b5488fadaf940619659d470d7f9644c40e806d3cf4ab81221434f73
3
+ size 1855159
lemmatizer/edit_trees/rm-rumgr/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:964046baa471cbb8176eecaa2e2e40d4d29d840da98d2b0c6cf0985b8f5d1b64
3
+ size 2306328
lemmatizer/edit_trees/rm-surmiran/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f9960dca67c1a3ea7b2e0fd9af86aadc7741f27b3f6d8f22e9cc5c5371f0a18
3
+ size 645499
lemmatizer/edit_trees/rm-surmiran/noun/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3680c5aa8a762fc3c97c77dc77232885bef4b218ae420d5a7069f3822ef5f1f1
3
+ size 877428
lemmatizer/edit_trees/rm-surmiran/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b9d26634841511ecc641d67c67064f95b7c2c1eeb403e5e71abc1b3efe2960a
3
+ size 2937498
lemmatizer/edit_trees/rm-sursilv/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:32736c2e99d2b65eec436dc65312c4d3c9363fba181c9f995231360ff945975a
3
+ size 268286
lemmatizer/edit_trees/rm-sursilv/noun/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dce4d07e312864d156692d2e47b2c679bab27b431996b075a9a7e09d6bfedff7
3
+ size 665195
lemmatizer/edit_trees/rm-sursilv/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:332256a2ec776bdbb69f72b9757a5dbd7af176770736b366a59fea2702291814
3
+ size 945980
lemmatizer/edit_trees/rm-sutsilv/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ffc41259fc6ce18ffd15a5db7063c42daf5e23f49e226b0f6d6df52f3f33b2b
3
+ size 495617
lemmatizer/edit_trees/rm-sutsilv/noun/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0db654f374e249bcd61788bcf4d95abcc78de1aed74985a4e35ac35649470c8c
3
+ size 740620
lemmatizer/edit_trees/rm-sutsilv/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00381ea8f42f05287f81262090b5c9505aca375a366086c1b6f924e1cf6d8e67
3
+ size 2689475
lemmatizer/edit_trees/rm-vallader/adj/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d61693418a8cf77a7dffa94b09c2c061e217893377eee7fbc6a25653d432337
3
+ size 669716
lemmatizer/edit_trees/rm-vallader/noun/et.txt ADDED
Binary file (55.2 kB). View file
 
lemmatizer/edit_trees/rm-vallader/verb/et.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b46c0a689b22cc9bcdea8e1b73bf904016360ee4ab823a01c4e67da803ae98e3
3
+ size 3455312
lemmatizer/edittree.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """A script from https://github.com/zhopto3/morpho-baseline defining
2
+ the edit tree class learned from the pledari grond dictionaries"""
3
+
4
+ from difflib import SequenceMatcher
5
+
6
+
7
+ class EditTreeNode(object):
8
+ def __init__(self, val):
9
+ self.left = None
10
+ self.right = None
11
+ self.val = val
12
+
13
+ def apply(self, word):
14
+ """Applies learned edit rules to a string;
15
+ I've changed the original code so that it lemmatizes rather than completes a pradigm"""
16
+ assert isinstance(word, str)
17
+ if isinstance(self.val[0], str): # replace
18
+ if word == self.val[0]:
19
+ return self.val[1]
20
+
21
+ return -1
22
+ if isinstance(self.val[0], int): # split
23
+ assert isinstance(self.left, EditTreeNode)
24
+ assert isinstance(self.right, EditTreeNode)
25
+ word_left = word[: self.val[0]]
26
+ word_mid = word[self.val[0] : len(word) - self.val[1]]
27
+ word_right = word[len(word) - self.val[1] :]
28
+
29
+ word_left = self.left.apply(word_left)
30
+ word_right = self.right.apply(word_right)
31
+
32
+ if word_left == -1 or word_right == -1:
33
+ return -1
34
+ out = word_left + word_mid + word_right
35
+ return out
36
+
37
+ def __str__(self):
38
+ if self.left is None: # leaf
39
+ return str(self.val)
40
+
41
+ left_str = str(self.left)
42
+ right_str = str(self.right)
43
+ ret = str(self.val) + "\n"
44
+ for line in left_str.split("\n"):
45
+ ret += " " + line + "\n"
46
+ for line in right_str.split("\n"):
47
+ ret += " " + line + "\n"
48
+ return ret.strip()
49
+
50
+ def __hash__(self):
51
+ return hash(self.__str__())
52
+
53
+ def __eq__(self, other):
54
+ if not isinstance(other, EditTreeNode):
55
+ return False
56
+
57
+ if (
58
+ (self.left == other.left)
59
+ and (self.right == other.right)
60
+ and (self.val == other.val)
61
+ ):
62
+ return True
63
+ return False
64
+
65
+
66
+ def longestSubstring(str1, str2):
67
+ """Get the longest substring between two str"""
68
+ seqMatch = SequenceMatcher(None, str1, str2)
69
+ match = seqMatch.find_longest_match(0, len(str1), 0, len(str2))
70
+ return (match.a, match.b, match.size)
71
+
72
+
73
+ def editTree(str1, str2):
74
+ """Define the edit rules between any two strings"""
75
+ if str1 is None or str2 is None:
76
+ return None
77
+ idx1, idx2, size = longestSubstring(str1, str2)
78
+ if size == 0:
79
+ return EditTreeNode((str1, str2))
80
+ node = EditTreeNode((idx1, len(str1) - idx1 - size))
81
+ node.left = editTree(str1[:idx1], str2[:idx2])
82
+ node.right = editTree(str1[idx1 + size :], str2[idx2 + size :])
83
+ return node
lemmatizer/idiom_id.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Implement dictionary-based LID for lemmatizer"""
2
+
3
+ from lemmatizer.utils import Idiom
4
+
5
+
6
+ def _get_counts(toks: list, fast_dict: set):
7
+ t = 0
8
+
9
+ for tok in toks:
10
+ if tok.lower() in fast_dict:
11
+ t += 1
12
+ try:
13
+ out = t / len(toks)
14
+ except ZeroDivisionError:
15
+ out = 0.0
16
+ return out
17
+
18
+
19
+ def get_scores(toks, in_voc: dict[Idiom, set]) -> dict[Idiom, float]:
20
+ """Calculate the proportion of tokens in a document that belong to the vocabulary of a given idiom"""
21
+ output = {}
22
+
23
+ for dial in in_voc.keys():
24
+ fast_dict = in_voc[dial]
25
+
26
+ output[dial] = _get_counts(toks, fast_dict)
27
+
28
+ return output
lemmatizer/in_voc/rm-puter.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/in_voc/rm-rumgr.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/in_voc/rm-surmiran.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/in_voc/rm-sursilv.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/in_voc/rm-sutsilv.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/in_voc/rm-vallader.txt ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/lemma_tables/rm-puter.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d3c21e1627f595b1efc0cab14652f6b29c7db1555e533a0f17abab0388779fa
3
+ size 72160485
lemmatizer/lemma_tables/rm-rumgr.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4249af7abfe44c4514ed9cae6e09fb68d3f2b516d212f1cf7412dcd49f334ea0
3
+ size 53406043
lemmatizer/lemma_tables/rm-surmiran.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6a9b7d0d8c6b9ed826d32866bf29d4a0842fd799e2a91553183597431db7d85e
3
+ size 18738329
lemmatizer/lemma_tables/rm-sursilv.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4cbfd3a7a720cc225a2aad05cffc5e30bbd9f8332934d878b41a90e53710047a
3
+ size 11678634
lemmatizer/lemma_tables/rm-sutsilv.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8a856146306ff88cafa7087f1837b86f9a19ea2276be33ea583a65a20c21720
3
+ size 31453170
lemmatizer/lemma_tables/rm-vallader.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7dca4cc9d8b266d65bc6725a503034d6e5983a5d47bdc58996cb77a04b6c5200
3
+ size 79507135
lemmatizer/lemmatizer.py ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from collections import defaultdict
2
+ from dataclasses import dataclass
3
+ from pathlib import Path
4
+
5
+ from frozendict import frozendict
6
+
7
+ from lemmatizer.analyzer import Analyzer
8
+ from lemmatizer.idiom_id import get_scores
9
+ from lemmatizer.tokenizer import Rm_Tokenizer
10
+ from lemmatizer.utils import Idiom, get_features
11
+
12
+
13
+ @dataclass(frozen=True)
14
+ class Lemma:
15
+ idiom: Idiom
16
+ text: str
17
+ translation_de: str
18
+
19
+ def __str__(self):
20
+ return f"{self.idiom.value}::{self.text}"
21
+
22
+ def __repr__(self):
23
+ return f"{self.idiom.value}::{self.text}"
24
+
25
+ def __eq__(self, other):
26
+ return (
27
+ isinstance(other, Lemma)
28
+ and self.idiom == other.idiom
29
+ and self.text == other.text
30
+ and self.translation_de == other.translation_de
31
+ )
32
+
33
+ def __hash__(self):
34
+ # Collapse dictionary entries when the idiom and text are the same
35
+ return hash((self.idiom, self.text, self.translation_de))
36
+
37
+
38
+ @dataclass(frozen=True)
39
+ class MorphAnalysis:
40
+ """
41
+ Uses feature values from Unimorph for Nouns, Adj, and Verbs
42
+ """
43
+
44
+ features: frozendict[str, str]
45
+
46
+ def __str__(self):
47
+ """
48
+ "Feat1;Feat2;..."
49
+ """
50
+ return ";".join(f"{k}={v}" for k, v in self.features.items())
51
+
52
+ def __repr__(self):
53
+ return (
54
+ ";".join(f"{k}={v}" for k, v in self.features.items())
55
+ if self.features
56
+ else "null"
57
+ )
58
+
59
+
60
+ @dataclass(frozen=True)
61
+ class Token:
62
+ text: str
63
+ all_lemmas: dict[Lemma, list[MorphAnalysis]]
64
+ _doc_idiom: Idiom = None
65
+
66
+ def __str__(self):
67
+ return self.text
68
+
69
+ def __repr__(self):
70
+ return f"{self.text!r}"
71
+
72
+ @property
73
+ def lemmas(self) -> dict[Lemma, list[MorphAnalysis]]:
74
+ """
75
+ Returns only lemmas for the document's idiom.
76
+ If no document idiom is set, returns all lemmas.
77
+ """
78
+ if self._doc_idiom is None:
79
+ return self.all_lemmas
80
+
81
+ return {
82
+ lemma: analyses
83
+ for lemma, analyses in self.all_lemmas.items()
84
+ if lemma.idiom == self._doc_idiom
85
+ }
86
+
87
+
88
+ @dataclass(frozen=True)
89
+ class Doc:
90
+ text: str
91
+ tokens: list[Token]
92
+ _in_voc: dict[Idiom, set]
93
+ _user_idiom: Idiom = None # Pass an optional idiom
94
+
95
+ def __str__(self):
96
+ return self.text
97
+
98
+ def __len__(self):
99
+ return len(self.tokens)
100
+
101
+ def __post_init__(self):
102
+ """
103
+ Set the document idiom reference in all tokens after initialization.
104
+ """
105
+ new_tokens = []
106
+
107
+ for token in self.tokens:
108
+ new_tokens.append(Token(token.text, token.all_lemmas, self.idiom))
109
+
110
+ object.__setattr__(self, "tokens", new_tokens)
111
+
112
+ @property
113
+ def idiom_scores(self) -> dict[Idiom, float]:
114
+ """
115
+ Get the idiom scores for a given document
116
+ """
117
+ if self._user_idiom:
118
+ # Give all weight to the idiom the user passed
119
+ return {
120
+ idiom: (1.0 if idiom == self._user_idiom else 0.0) for idiom in Idiom
121
+ }
122
+
123
+ # Do Dictionary-based idiom ID
124
+ return get_scores([tok.text for tok in self.tokens], self._in_voc)
125
+
126
+ @property
127
+ def idiom(self) -> Idiom:
128
+ """
129
+ Returns the idiom with the highest idiom score.
130
+ """
131
+ return Idiom(max(self.idiom_scores, key=self.idiom_scores.get))
132
+
133
+
134
+ class Lemmatizer:
135
+
136
+ def __init__(self, idiom: Idiom = None, leanred_et: bool = True):
137
+ if isinstance(idiom, str):
138
+ idiom = Idiom(idiom)
139
+ self.idiom = idiom
140
+ # If no idiom passed, use the unknown idiom tokenizer
141
+ self.tokenizer = Rm_Tokenizer(lang=self.idiom.value if self.idiom else None)
142
+
143
+ self.in_voc = {}
144
+ BASE_DIR = Path(__file__).parent
145
+ for dial in Idiom:
146
+ voc_path = BASE_DIR / "in_voc" / f"{dial.value}.txt"
147
+ with open(voc_path, "r", encoding="utf-8") as f:
148
+ fast_dict = set()
149
+ for line in f:
150
+ fast_dict.add(line.strip("\n"))
151
+ self.in_voc[dial] = fast_dict
152
+
153
+ # Initialize all analyzers
154
+ self._analyzers = {
155
+ i: Analyzer(idiom=i.value, in_voc = self.in_voc[i], learned_et=leanred_et) for i in Idiom
156
+ }
157
+
158
+ def __call__(self, text: str) -> Doc:
159
+ # Tokenize the text
160
+ toks = self.tokenizer.tokenize(text)
161
+
162
+ tok_obj = []
163
+
164
+ for t in toks:
165
+ full_lemma = defaultdict(list)
166
+ t_lower = t.lower()
167
+ for idiom in Idiom:
168
+ a = self._analyzers[idiom]
169
+
170
+ lemma = a.get_lemma(t_lower)
171
+ de = a.get_de(t_lower)
172
+ unimorph = a.get_unimorph(t_lower)
173
+
174
+ for l, d, u in zip(lemma, de, unimorph):
175
+ if l:
176
+ lem = Lemma(idiom, l, d if d else "null")
177
+ analysis = MorphAnalysis(get_features(u))
178
+ full_lemma[lem].append(analysis)
179
+
180
+ tok_obj.append(Token(t, full_lemma, self.idiom))
181
+
182
+ return Doc(text, tok_obj, self.in_voc, self.idiom,)
lemmatizer/other_de/rm-puter.json ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/other_de/rm-rumgr.json ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/other_de/rm-surmiran.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"giu": ["ab", "herab", "herunter", "hinab", "hinunter", "nieder", "nach ... hinunter/herunter"], "mintgatant": ["ab und zu", "bisweilen", "hie und da", "manchmal", "mitunter", "hin und wieder", "zuweilen", "hie und da /ab und zu", "hie und da /ab und zu", "ab und zu / hie und da"], "cuptgier": ["abbilden", "abmalen", "abschreiben", "abzeichnen", "durchpausen", "nachahmen", "nacharbeiten", "nachbilden", "nachmachen", "spicken", "überspielen", "übertragen", "kopieren"], "ma": ["aber", "allein", "doch", "jedoch", "mich", "sondern"], "pero": ["aber", "allerdings", "indessen", "jedoch"], "dantant": ["aber", "indessen", "inzwischen", "jedoch", "mittlerweile", "unterdessen", "währenddessen"], "danovamaintg": ["abermals", "erneut", "aufs neue", "von neuem", "neuerlich", "von neuem", "wieder", "wiederum"], "puspe": ["abermals", "wieder", "wiederum"], "s'ancleir": ["sich abfinden", "abmachen", "sich absprechen", "übereinkommen", "sich vergleichen", "sich verstehen"], "s'occupar": ["sich abgeben", "sich betätigen"], "s'ampatger": ["sich abgeben", "sich befassen", "fragen", "sich kümmern"], "d'accord!": ["abgemacht!", "bereit!", "einverstanden!"], "abstraho": ["abgesehen davon"], "gleis": ["abgetragen", "fadenscheinig", "flüssig", "wässerig"], "s'andireir": ["sich abhärten", "erhärten", "sich härten", "sich verhärten"], "fugeir": ["abhauen", "durchgehen", "enteilen", "flüchten", "fortlaufen", "meiden", "weglaufen", "fliehen"], "s'isolar": ["sich abkapseln", "sich abschliessen", "vereinsamen"], "s'accumadar": ["abmachen", "sich bequemen"], "roir": ["abnagen", "kauen", "knabbern", "nagen", "zerfressen"], "ordvart": ["abseits", "ausnehmend", "ausserhalb", "ausserordentlich", "äusserst", "besonders", "sehr", "überaus", "ungemein"], "persasez": ["abseits", "natürlich", "selbstverständlich"], "aposta": ["absichtlich", "eigens", "extra", "geflissentlich", "zum trotz", "aus/mit vorbedacht", "vorsätzlich"], "belaposta": ["absichtlich"], "sguttar": ["abtropfen", "tropfenweise ausfliessen", "durchsickern"], "angiu": ["abwärts", "herunter", "hinab", "hinunter", "nieder", "stromabwärts"], "alternativamaintg": ["abwechslungsweise", "wechselweise"], "o!": ["ach", "je!"], "ai": ["ach"], "geagea": ["ach ja"], "aba!": ["ach was!"], "otgtschent": ["achthundert"], "adatg!": ["achtung!", "vorsicht!"], "attenziun!": ["achtung!", "obacht!", "vorsicht!"], "dischdotg": ["achtzehn"], "otganta": ["achtzig"], "êr": ["acker", "feld"], "a-dur": ["a-dur"], "avs": ["ahv"], "s'acclimatisar": ["sich akklimatisieren", "sich eingewöhnen", "sich einleben"], "surtot": ["vor allem", "besonders", "vor allen dingen", "ganz besonders", "hauptsächlich", "vor allem", "vornehmlich", "zumal"], "forsa": ["allenfalls", "etwa", "vielleicht", "möglicherweise", "womöglich"], "francamaintg": ["allerdings", "bestimmt", "frank und frei", "sicherlich"], "dapertot": ["allerorts", "landaus landein", "überall"], "aglmanc": ["allerwenigstens", "immerhin", "zum mindesten", "mindestens", "wenigstens", "zumindest"], "mengia": ["allzu", "arg", "zu sehr", "zu viel", "zu"], "curtgi": ["als", "wenn"], "da": ["als", "auf", "aus", "bei", "über", "von", "zu", "zu", "von", "in", "von", "von"], "tgi": ["als", "das", "dass", "den", "denn", "welche, -r, -s", "wen", "wer", "der, die, das; welcher, welche, welches", "die einen, die anderen"], "alloura": ["alsdann", "da", "danach", "dann", "hernach", "so", "sodann"], "sessour": ["alsdann", "anschliessend", "darauf", "darauf", "daraufhin", "darüber", "hierauf", "nachher"], "damai": ["also", "denn", "folglich", "mithin", "somit"], "ossuscheia": ["also", "so"], "a-mol": ["a-moll"], "ve": ["an", "hin", "hinüber", "nach"], "a": ["an", "auf", "bei", "bis", "für", "in", "nach", "pro", "um", "zu", "zu", "zu", "zu", "zu", "an", "um", "von", "zu", "zu"], "per": ["an", "auf", "aus", "dazu", "durch", "für", "je", "per", "pro", "um", "um", "um", "um", "um", "um zu + inf.", "via", "wegen", "zu", "zu", "zu", "zu", "zu", "zwecks", "für, um, wegen, zu, zwecks", "aus, auf, um, zu", "auf, für, um, zu", "an, auf, durch, zu, per", "durch, hindurch, über, zu", "um, zu, je", "dafür", "auf", "um ... willen"], "sper": ["an", "bei", "neben"], "ansasez": ["an und für sich", "an und für sich", "im grunde (genommen)", "an und für sich", "im wesentlichen"], "agiunto": ["anbei"], "l'oter": ["der andere"], "gl'oter": ["das andere"], "tschegl": ["das andere", "jenes"], "utro": ["am anderen ort", "anderswo(hin)", "anderwärts", "an anderen orten", "an anderer stelle", "woanders(hin)"], "schiglio": ["andernfalls", "ansonsten", "oder", "sonst", "widrigenfalls"], "oter": ["anders", "verschieden"], "otramaintg": ["anders", "anderweitig", "ansonsten", "sonst"], "ulteriouramaintg": ["anderweitig", "ferner"], "s'appropriier": ["sich aneignen", "sich bemächtigen", "sich zueignen"], "ansemen": ["aneinander", "beieinander", "beisammen", "gemeinsam", "mit", "miteinander", "zusammen"], "all'antschatta": ["am/im/zu anfang", "anfänglich", "anfangs", "eingangs", "ursprünglich", "zu beginn"], "primarmaintg": ["anfänglich", "anfangs", "erstens", "zuerst"], "s'infurmar": ["anfragen", "nachfrage halten", "nachfragen", "sich umhören", "sich unterrichten"], "cun": ["anhand", "aus", "bei", "dadurch", "durch", "indem", "mit", "mittels", "nebst", "samt", "um", "zu", "gegen"], "s'amplunar": ["anlaufen", "sich häufen"], "s'annunztgier": ["sich anmelden", "sich bewerben", "sich melden"], "s'inscreiver": ["sich anmelden"], "s'approximar": ["sich annähern", "im anzug sein", "herannahen", "herkommen", "nahe kommen", "nahen", "zukommen"], "s'avischinar": ["sich annähern", "beikommen", "herangehen", "herankommen", "nahe kommen", "sich nähern", "zukommen"], "pressapac": ["annähernd", "etwa", "ungefähr", "zirka"], "apparentamaintg": ["anscheinend", "äusserlich", "offensichtlich", "scheinbar"], "s'uneir": ["sich anschliessen", "sich gesellen", "sich verbinden", "zusammenfliessen", "sich zusammenschliessen", "sich zusammentun"], "s'associier": ["sich anschliessen", "sich gesellen", "sich vereinigen", "sich zusammenschliessen", "sich zusammentun"], "siva": ["im anschluss an", "danach", "dann", "darauf", "folgend", "hernach", "hintendrein", "hintennach", "hinterher", "nach", "nach", "nach", "nachher", "nachträglich", "später"], "anfevlar": ["anschnallen", "schnallen", "zuschnallen"], "anstagl": ["anstatt", "statt"], "s'augmentar": ["ansteigen", "aufschlagen", "sich erhöhen", "sich häufen", "steigen", "sich steigern", "sich vermehren", "sich verschärfen", "sich verstärken", "wachsen", "zunehmen"], "s'anschignier": ["sich anstellen"], "adester": ["anstellig"], "bumperfatscha!": ["guten appetit!", "wohl bekomms!"], "aua": ["au"], "oi": ["au"], "er": ["auch", "ausserdem"], "sen": ["auf"], "an": ["auf", "bei", "in", "nach", "zu", "zu", "zu", "zu", "in", "in", "zu", "an"], "tottanegna": ["auf einmal", "auf einmal", "handkehrum", "mit einem mal", "mit einem mal", "plötzlich", "auf einen schlag", "schlagartig", "unvermittelt", "unversehens", "urplötzlich"], "se": ["auf", "herauf", "hinauf"], "giuase": ["auf und ab"], "s'opponer": ["sich aufbäumen", "sich auflehnen", "entgegenstehen", "sich sperren (gegen)", "sich stemmen", "widerstehen", "widerstreben"], "scuvreir": ["aufdecken", "abdecken", "aufstöbern (fig.)", "blosslegen", "durchschauen", "entblössen", "entdecken", "durchschauen (fig, erkennen)", "freilegen (abdecken)", "herausfinden", "fündig werden"], "prueir": ["aufgehen", "treiben", "spriessen"], "cala!": ["hör doch auf!"], "sedretg": ["aufrecht"], "paradoxamaintg": ["paradoxerweise"], "palesar": ["aufschliessen", "ausplaudern", "austragen", "bekannt machen", "enthüllen", "kundgeben", "offenbaren", "verbreiten", "verraten"], "anse": ["aufwärts", "empor", "hinauf", "nach oben", "stromaufwärts"], "amunt": ["aufwärts", "bergauf", "bergwärts", "flussaufwärts", "hinauf", "nach oben"], "sfoir": ["aufwühlen", "durchwühlen"], "all'amprema": ["im ersten augenblick"], "anachella": ["in diesem augenblick"], "dapart": ["auseinander", "entzwei"], "detagledamaintg": ["ausführlich"], "manedlamaintg": ["ausführlich", "gründlich", "einlässlich"], "amplamaintg": ["ausführlich", "weitgehend"], "resalvo": ["ausgenommen"], "veiramaintg": ["ausgesprochen", "buchstäblich", "echt", "tatsächlich", "wahrhaft(ig)", "wahrlich", "wirklich"], "gidanter": ["aushilfskraft"], "all'angronda": ["in grossem ausmass", "in grossem massstab", "verschwenderisch"], "excepziunalmaintg": ["ausnahmsweise"], "samnar": ["aussäen"], "sulettamaintg": ["ausschliesslich", "bloss", "lediglich", "nur"], "spirontamaintg": ["ausschliesslich", "rein"], "oransom": ["aussen am rand", "zuäusserst"], "dafor": ["ausserhalb"], "orsoura": ["ausserhalb", "auswärts"], "exteriouramaintg": ["äusserlich"], "ordafora": ["äusserlich", "auswendig", "draussen", "aus dem gedächtnis"], "superfizialamaintg": ["äusserlich"], "s'exprimer": ["sich äussern", "sich aussprechen", "sich fassen"], "extralocal": ["ausserorts"], "extremamaintg": ["äusserst"], "fitg": ["äusserst", "höchst", "sehr", "stark", "überaus", "ungemein"], "dar": ["ausspielen", "beimessen", "bescheren", "bieten", "ergeben", "erteilen", "geben", "geben", "halten", "langen", "schlagen", "spenden", "spielen", "spielen", "verabreichen", "verleihen", "verpassen", "versetzen", "verteilen", "zuwenden"], "anor": ["auswärts", "heraus", "hinaus"], "bod": ["bald", "früh"], "prest": ["bald", "bald", "beinahe", "fast"], "bagnbod": ["bald", "in bälde"], "bagnspert": ["bald"], "bunamaintg": ["bald", "beinahe", "fast", "förmlich", "nahezu", "schier"], "deplorablamaintg": ["bedauerlicherweise", "leider gottes!", "leider"], "displaschevlamaintg": ["bedauerlicherweise", "leider", "zu unserem leidwesen"], "s'ampansar": ["sich bedenken", "sich kümmern"], "sainz'impurtanza": ["bedeutungslos", "ohne belang"], "cundiziunalmaintg": ["bedingt"], "pover": ["bedürftig", "elend", "erbärmlich", "karg", "kärglich", "knapp", "kümmerlich", "mittellos", "unbemittelt", "spärlich"], "s'inflammar": ["sich begeistern", "erglühen"], "tgapiblamaintg": ["begreiflicherweise", "verständlicherweise"], "tar": ["bei", "zu", "zu"], "vicendevlamaintg": ["beiderseits", "auf gegenseitigkeit", "gegenseitig"], "casualmaintg": ["beiläufig", "gelegentlich", "zufällig", "zufälligerweise"], "pe": ["bein", "fuss", "stand"], "belabagn": ["beinahe", "fast"], "quasi": ["beinahe", "fast", "gleichsam", "nahezu", "quasi", "so gut wie"], "ancunaschaintamaintg": ["bekanntlich"], "d'impurtanza": ["von belang"], "s'entusiasmar": ["sich berauschen", "sich erwärmen", "schwärmen"], "legitimamaintg": ["berechtigterweise"], "gio": ["bereits", "schon", "ja"], "gugent": ["bereitwillig", "gern"], "considerond": ["in/unter berücksichtigung (von)"], "risguardond": ["in/unter berücksichtigung (von)"], "simpel": ["bescheiden", "gemein", "leicht"], "particularmaintg": ["besonders", "insbesondere"], "spezialmaintg": ["besonders", "insbesondere"], "extra": ["besonders", "extra"], "separadamaintg": ["besonders", "gesondert", "getrennt"], "adegna": ["beständig", "immer", "jederzeit", "ständig", "stets"], "cuntinuadamaintg": ["beständig", "fortwährend", "immerfort", "immerzu", "ständig", "unablässig", "unaufhörlich", "ununterbrochen", "anhaltend"], "excellentamaintg": ["bestens"], "tschertamaintg": ["bestimmt"], "s'ambrodar": ["sich besudeln"], "arisguard": ["betreffend", "in bezug auf", "bezüglich", "hinsichtlich"], "concernent": ["betreffend", "bezüglich", "hinsichtlich"], "davart": ["betreffend", "über"], "partenent": ["betreffend", "bezüglich"], "s'anclinar": ["sich beugen", "sich neigen", "sich verbeugen", "sich verneigen"], "respectivamaintg": ["beziehungsweise", "respektive"], "ainfer": ["binnen", "innerhalb", "innert"], "anfignen": ["bis"], "fign(en)": ["bis"], "bagndouras": ["bisweilen", "hin und wieder", "manchmal", "mitunter", "zuzeiten"], "anzi": ["bitte schön/sehr", "eher", "vielmehr"], "petramaintg": ["bitterlich"], "aschamaintg": ["bitterlich"], "blanco": ["blanko"], "all'orva": ["blindlings"], "calm!": ["ruhig blut!"], "giumez": ["am boden"], "s'ambartger": ["an bord gehen"], "fi": ["brand", "feuer", "feuersbrunst", "haushaltung", "leuchtfeuer", "schwung"], "bravo!": ["bravo!"], "bramar": ["brennen", "ersehnen", "fiebern", "gieren", "lechzen", "schmachten", "verlangen", "wünschen", "sehnsüchtig verlangen"], "s'urtilar": ["sich brennen", "sich an brennesseln brennen"], "brutto": ["brutto"], "fo": ["buche"], "veritablamaintg": ["buchstäblich"], "pumfata!": ["bums!", "patsch!", "plumps!"], "ca.": ["ca."], "c-dur": ["c-dur"], "c-mol": ["c-moll"], "cò": ["da", "dahin", "hie", "hier", "hierhin", "hier"], "chi": ["da", "hier"], "dasperas": ["dabei", "daneben", "daneben", "nahe", "nebenan", "nebenbei", "nebenberuflich", "nebenher"], "ultra": ["ausserdem", "neben"], "tuttegna": ["dabei", "dennoch", "doch", "egal", "einerlei", "gleich", "gleichviel", "gleichwohl", "immerhin", "nichtsdestoweniger", "ohnedies", "ohnehin", "sowieso", "trotzdem"], "cotras": ["dadurch", "hierdurch", "hiermit"], "persiva": ["dafür", "dafür", "dafür", "stattdessen"], "ancunter": ["dagegen", "dawider", "entgegen", "gegen", "gegen", "wider", "zuwider"], "anvezza": ["dagegen", "hingegen"], "loancunter": ["dagegen", "hingegen", "umgekehrt"], "perancunter": ["dagegen", "demgegenüber", "hingegen"], "percuntrari": ["dagegen"], "dalonder": ["daher"], "perchegl": ["daher", "darum", "deshalb", "deswegen"], "lò": ["dahin", "dort"], "d'alloura": ["damalig"], "losiva": ["danach", "entsprechend", "hiernach"], "sperasgiu": ["daneben"], "sperasor": ["daneben"], "vedlonder": ["daran"], "londerve": ["daran"], "senchegl": ["daraufhin", "hierauf"], "ordlonder": ["daraus"], "londeror": ["daraus"], "liaint": ["darein", "darin", "drinnen"], "londergiu": ["darob"], "suraint": ["darüber", "obendrein"], "surave": ["darüber", "flüchtig", "obenauf", "obenhin", "oberflächlich"], "suror": ["darüber", "darüber hinaus", "oben hinaus", "obenaus", "obenhin", "oberflächlich", "über", "darüber hinaus"], "giudlonder": ["darüber", "darunter", "davon"], "surlonder": ["darüber", "davon", "hierüber"], "daple": ["darüber", "mehr", "über"], "anturn": ["darum", "etwa", "gegen", "herum", "rings", "um", "um", "um", "um-", "umher", "umher-", "ungefähr"], "sotve": ["darunter"], "tranteraint": ["darunter", "dazwischen", "zwischendurch", "zwischenhinein"], "chegl": ["das", "dasjenige", "dies", "es"], "glez": ["das", "jenes"], "constantamaintg": ["dauernd"], "davent": ["davon", "fort", "hinweg", "weg"], "avant": ["davor", "erst", "vor", "vorher", "zuvor"], "lotiers": ["dazu", "hierzu"], "vetiers": ["dazu", "hinzu"], "rot": ["defekt", "entzwei"], "s'extender": ["sich dehnen", "sich erstrecken", "sich hinziehen", "laufen", "reichen", "sich ziehen"], "proximamaintg": ["demnächst", "nächstens", "in nächster zeit", "in naher/absehbarer zukunft"], "consequentamaintg": ["demzufolge", "folglich", "infolgedessen"], "igl": ["den", "der", "es", "ihm", "ihn", "der"], "pomai": ["denn", "eigentlich (überhaupt)"], "tantatant": ["dennoch"], "ancalloura": ["dennoch"], "alla": ["der"], "talaveisa": ["derart", "dermassen", "so sehr"], "talmaintg": ["derart", "dermassen", "so sehr", "so sehr"], "eneda": ["dereinst", "einmal", "einmal", "einst", "je", "jemals"], "ensacuras": ["dereinst", "einst", "irgendeinmal", "irgendwann", "je", "jemals"], "antrouras": ["dereinst", "ehemals", "einst", "früher", "vormals"], "preschaintamaintg": ["derzeit", "gegenwärtig", "jetzt"], "mademamaintg": ["desgleichen", "ebenfalls", "gleichermassen", "gleichfalls"], "nunobstant": ["dessen ungeachtet", "nichtsdestoweniger", "ungeachtet"], "tè": ["dich"], "at": ["dich", "dir"], "ta": ["dich"], "la": ["die", "ihr", "sie", "die"], "chest'eda": ["diesmal"], "nodvart": ["diesseits", "herwärts", "auf dieser seite"], "docter/doctoressa": ["doktor, -in"], "possancher!": ["donnerwetter!"], "sacramostas!": ["donnerwetter!"], "sapperment!": ["donnerwetter!"], "tscho": ["dort"], "chive": ["dort drüben", "drüben"], "chior": ["draussen"], "treis": ["drei"], "trepêra": ["drei paar", "drei paar"], "tretschent": ["dreihundert"], "trenta": ["dreissig"], "tremella": ["dreitausend"], "tredesch": ["dreizehn"], "driblar": ["dribbeln"], "chiaint": ["drinnen"], "terzio": ["drittens"], "chise": ["droben", "dort oben"], "lise": ["droben"], "live": ["drüben"], "vedvart": ["drüben", "jenseits"], "chigiu": ["drunten", "dort unten"], "ligiu": ["drunten", "dort unten"], "sotsour(a)": ["drunter und drüber", "wie kraut und rüben", "verkehrt", "verkehrt"], "te": ["du"], "s'umiliier": ["sich ducken", "sich erniedrigen"], "tras": ["durch", "hindurch", "durch"], "antras": ["durch", "mittels"], "trasatras": ["durch und durch", "durchwegs"], "absolutamaintg": ["durchaus", "schlechterdings", "unbedingt"], "exnom": ["durchaus", "unbedingt"], "tottaveia": ["durchwegs", "ohnehin"], "pudeir": ["dürfen", "können", "mögen", "vermögen", "können"], "maier": ["dürr", "karg", "schmal", "spärlich"], "exactamaintg": ["eben", "genau", "sorgfältig"], "precisamaintg": ["eben", "genau"], "glistessamaintg": ["ebenfalls", "gleichfalls"], "sumigliaintamaintg": ["ebenso", "in gleicher weise", "gleichfalls"], "propi": ["echt", "eigentlich", "ernstlich", "tatsächlich", "wahrhaft(ig)", "wirklich"], "glistess": ["egal", "einerlei", "gleich", "gleichviel", "gleichwohl", "ohnedies", "ohnehin", "sowieso", "trotzdem"], "om": ["ehegatte", "ehemann", "mann", "mannsbild", "gemahl"], "d'eneda": ["ehemalig"], "pitost": ["eher", "lieber", "vielmehr"], "franc!": ["ehrlich!"], "sainz'onour": ["ehrlos"], "ov": ["ei"], "expressamaintg": ["eigens"], "atgnamaintg": ["eigentlich"], "dabot": ["eilends", "geschwind", "rasch", "schleunig", "schnell"], "all'egna": ["um ein uhr", "um ein uhr"], "aint": ["ein", "herein", "hinein"], "inclusiv": ["einbegriffen", "einschliesslich", "inbegriffen", "inklusive"], "s'imaginar": ["sich einbilden", "ermessen", "sich vergegenwärtigen", "erahnen"], "s'adattar": ["sich einfügen", "sich einordnen", "sich einpassen", "sich finden", "sich fügen", "sich schicken", "sich umstellen"], "s'andisar": ["sich eingewöhnen"], "s'acquistar": ["einhandeln", "erarbeiten"], "d'accord": ["einig", "einverstanden"], "peregna": ["einig", "friedlich"], "enqualgedas": ["einige mal", "hie und da"], "tottaneneda": ["auf einmal"], "s'anrischier": ["einreissen", "wurzeln schlagen", "wurzeln"], "s'exercitar": ["sich einspielen"], "s'antrenar": ["sich einspielen"], "s'equilibrar": ["sich einspielen"], "en'andada": ["einst", "eine weile", "eine zeitlang"], "unisono": ["einstimmig", "unisono"], "amperneda": ["einstweilen", "vorderhand", "vorläufig"], "s'accumplaneir": ["eintreffen", "sich erfüllen"], "otgantegn": ["einundachtzig"], "vantgegn": ["einundzwanzig"], "unicamaintg": ["einzig und allein"], "seador": ["empor", "herauf", "hervor", "hinauf"], "finalmaintg": ["endlich", "schliesslich", "zuletzt"], "datschert": ["energisch", "entschieden", "entschlossen", "resolut"], "s'angascher": ["sich engagieren", "sich einsetzen (für)"], "danvanz": ["entbehrlich", "vorig"], "dagliunsch": ["entfernt", "von fern", "aus der ferne", "von weitem", "weither"], "s'abstigneir": ["sich enthalten"], "dalos": ["entlang", "längs"], "stgise!": ["ich bitte sie um entschuldigung", "pardon!", "entschuldigen sie!"], "permez": ["entzwei", "mittendurch"], "el": ["er", "ihn"], "legrevlamaintg": ["erfreulicherweise"], "seriousamaintg": ["im ernst"], "datschertamaintg": ["im ernst", "hart"], "subsidiarmaintg": ["ersatzweise", "hilfsweise"], "pir": ["erst", "nur", "ärger, schlimmer"], "s'anquagler": ["erstarren", "gerinnen", "stocken"], "primo": ["erstens"], "cumprovadamaintg": ["erwiesenermassen"], "i": ["es", "ihr", "sie", "wir", "wir/ihr/sie"], "circa": ["etwa", "rund", "ungefähr", "zirka"], "var": ["etwa", "gegen", "ungefähr"], "ensatge": ["etwas", "irgendetwas", "irgendwas", "was"], "vous": ["euch", "ihr"], "vusoters": ["euch"], "az": ["euch", "euch", "euch", "sich", "sie"], "paratosta": ["dörrbirnen"], "facticamaintg": ["faktisch", "tatsächlich"], "practicamaintg": ["faktisch", "praktisch", "so gut wie"], "schi": ["falls", "ob", "so", "so", "so", "so", "wenn", "wo"], "fozamaintg": ["fälschlich"], "malgistamaintg": ["fälschlich", "zu unrecht"], "pinavant": ["ferner", "überdies", "weiterhin"], "li": ["fleck", "flecken", "ort", "örtlichkeit", "ortschaft", "platz", "stand", "standort", "stätte", "stelle"], "ferventamaintg": ["flehentlich"], "instantamaintg": ["flehentlich", "angelegentlich"], "dalunga": ["flugs", "gleich", "sofort", "sogleich", "stracks", "unverzüglich"], "uscheia": ["folgendermassen", "so", "somit", "auf diese weise"], "perscrutader": ["forscher"], "anavant": ["fort", "vorwärts", "weiter"], "s'allontanar": ["fortgehen", "weggehen"], "fila!": ["mach, dass du fortkommst!"], "avertamaintg": ["frank und frei", "freiheraus", "geradeheraus", "rückhaltlos", "rundheraus", "unumwunden", "unverhohlen"], "franco": ["franko"], "voluntariamaintg": ["aus freiem antrieb", "gutwillig", "unaufgefordert", "aus freiem willen", "freiwillig"], "libramaintg": ["aus freien stücken", "unverhohlen", "zwanglos", "frei"], "ordavert": ["im freien"], "s'anclei": ["freilich", "selbstverständlich"], "bagnfranc!": ["ja freilich!"], "amicablamaintg": ["freundlicherweise"], "gentilmaintg": ["freundlicherweise"], "frestgamaintg": ["frisch"], "forza!": ["frischauf!"], "ozandumang": ["heute früh", "heute morgen", "heute morgen"], "ierandumang": ["gestern früh", "gestern morgen", "gestern morgen"], "tschintg": ["fünf"], "tschin(tg)tschent": ["fünfhundert"], "tschintgmella": ["fünftausend"], "quindesch": ["fünfzehn"], "tschuncanta": ["fünfzig"], "tgenegn?": ["was für ein?"], "daveiras": ["fürwahr", "in der tat", "tatsächlich", "wirklich"], "piglveir": ["fürwahr", "wahrhaft(ig)", "wahrlich"], "giudapeis": ["zu füssen", "unten"], "s'amburtgier": ["sich gabeln", "sich verzweigen"], "tottafatg": ["ganz", "voll", "vollständig"], "navotzont": ["ganz und gar nicht"], "cumplettamaintg": ["gänzlich", "über und über"], "totalmaintg": ["gänzlich", "insgesamt"], "ansomma": ["gar", "kurzum", "schlechthin", "überhaupt"], "mianc": ["gar nicht", "nicht einmal"], "perfign": ["gar", "selbst", "sogar"], "d'occasiun": ["gebraucht", "aus zweiter hand"], "eventualmaintg": ["gegebenenfalls", "möglicherweise", "unter umständen"], "casumai": ["gegebenenfalls"], "cunter": ["gegen", "gegen", "kontra", "wider", "gegen"], "anvers": ["gegen", "gegenüber"], "viceversa": ["gegenseitig", "umgekehrt"], "ozande": ["gegenwärtig", "heutzutage"], "ubetg!": ["gelt!", "nicht wahr!"], "nusche!": ["gelt!", "nicht wahr!"], "planget": ["gemächlich"], "plangsia": ["gemächlich", "langsam"], "om/donna": ["gemahl, -in"], "avonda": ["genug", "zur genüge", "genügend", "zulänglich"], "basta!": ["genug!", "halt!", "stopp!"], "suffiziaintamaintg": ["zur genüge", "genügend"], "adretgor": ["geradeaus", "geradeheraus", "rundheraus", "ungeschminkt", "unverblümt"], "directamaintg": ["geradewegs", "geradezu", "schnurstracks", "stracks"], "sotansiel/suransiel": ["gerstenkorn"], "nundeir": ["geschweige (denn)"], "ier": ["gestern", "am gestrigen tag"], "viva!": ["gesundheit!", "lebe hoch!", "prosit!", "prost!", "zum wohl!", "zum wohlsein!"], "fidevlamaintg": ["getreulich"], "ruassevlamaintg": ["getrost", "ruhig"], "sfurzadamaintg": ["gezwungenermassen", "notgedrungen", "zwangsläufig", "zwangsweise"], "simplamaintg": ["glattweg", "kurzweg", "schlechterdings", "schlechthin", "schlichtweg", "einfach"], "fè": ["glaube", "treue"], "furtinadamaintg": ["glücklicherweise"], "ôr": ["gold"], "paiadia!": ["vergelts gott!"], "s'anguschier": ["sich grämen"], "gratuitamaintg": ["gratis", "umsonst"], "tampestar": ["graupeln", "hageln"], "avantmang": ["greifbar"], "grogl": ["griffig", "uneben"], "malamaintg": ["gröblich", "notdürftig", "schlecht"], "all'angrossa": ["im grossen"], "allegra!": ["grüezi!", "grüss gott!"], "basta": ["kurz und gut", "kurzum"], "garnelar": ["hageln"], "holla!": ["hallo!"], "hallo!": ["hallo!"], "tgau!": ["hallo!", "salü!", "tschüs(s)!"], "halt!": ["halt!"], "oha!": ["halt!"], "mattagn": ["halt", "wohl", "wahrscheinlich"], "oramai": ["halt", "nun", "nunmehr"], "tgunschamaintg": ["mit leichter hand", "leicht", "ohne mühe"], "s'accordar": ["harmonieren", "übereinstimmen", "sich vertragen"], "rigurousamaintg": ["hart"], "savens": ["häufig", "oft", "öfters", "oftmals", "vielfach", "vielmals"], "professiunalmaintg": ["hauptberuflich"], "davosnoda": ["heimlich"], "no": ["her", "herüber"], "noagiu": ["herab", "herunter"], "oragiu": ["herab", "herunter", "hinunter"], "notiers": ["heran", "herbei", "herzu"], "noase": ["herauf"], "orase": ["herauf", "hinauf", "auswärts hinauf"], "or": ["heraus", "hervor", "hinaus"], "noador": ["heraus", "hervor"], "sotor": ["unten heraus", "unten hervor", "unten hinaus", "unten heraus"], "d'aton": ["herbstlich"], "noadaint": ["herein"], "bagnmarvegl": ["in aller herrgottsfrühe"], "annò": ["herüber"], "nonavant": ["hervor"], "nodem": ["ganz herwärts"], "cuntercor": ["schweren herzens", "unwillig", "widerstrebend", "widerwillig"], "cordialmaintg": ["herzlich"], "oz": ["heute"], "d'ozande": ["heutig"], "mainsvart": ["hie und da", "öfters"], "anve": ["hin", "hinwärts"], "giuador": ["hinab und hinaus", "hinaus"], "seadaint": ["hinauf und hinein", "hinauf und hinein"], "adretgse": ["gerade hinauf", "stehend"], "aintase": ["talwärts hinauf", "talaufwärts"], "veador": ["hinaus"], "veadaint": ["hinein"], "s'anschanuglier": ["sich hinknien", "knien", "niederknien"], "anavos": ["nach hinten", "hintenüber", "rücklings", "rückwärts", "zurück"], "posteriouramaintg": ["hintendrein", "später"], "aintagiu": ["hinunter"], "veagiu": ["hinunter"], "tiers": ["hinzu"], "s'alterar": ["in hitze geraten"], "en'otezza": ["sehr hoch"], "grondamaintg": ["höchst", "in hohem mass", "sehr", "wesentlich"], "tschentadegn": ["hunderteins"], "tschentmella": ["hunderttausend"], "tschentadus": ["hundertzwei"], "ia": ["ich", "ich"], "tgappe'l!": ["ergreift ihn!"], "igls/las": ["ihnen", "sie"], "semper": ["immer", "stets"], "trasor": ["immer", "unaufhörlich", "die ganze zeit", "ununterbrochen"], "veaple": ["immer mehr"], "adegn'anavant": ["immerzu", "am laufenden band"], "tematicamaintg": ["inhaltlich"], "incognito": ["inkognito", "unerkannt"], "aintamez": ["inmitten", "in der mitte", "mitten", "mittendrin"], "anmez": ["inmitten", "in der mitte", "mitten"], "internamaintg": ["innen", "innerlich"], "interiouramaintg": ["innerlich"], "dascousamaintg": ["insgeheim", "heimlich"], "secretamaintg": ["insgeheim"], "sottascous": ["insgeheim"], "instinctivamaintg": ["aus instinkt", "instinktiv"], "pertge": ["inwiefern, -weit", "warum", "weshalb", "wieso", "wozu", "inwieweit"], "ensacu": ["irgend", "irgendwie"], "ensatgi": ["irgendjemand", "irgendwer", "jemand"], "ensanoua": ["irgendwo"], "d'ensanoua(s)": ["irgendwoher"], "ensanoua(s)": ["irgendwohin"], "s'anfallar": ["sich irren", "sich täuschen", "sich vertun"], "salv'errour": ["irrtum vorbehalten", "irrtum vorbehalten"], "ea": ["ja", "ja"], "geabagn": ["ja gewiss!", "jawohl"], "uscheia!": ["ja so!"], "mintg'onn": ["jährlich"], "capasche": ["jawohl"], "mintgamai": ["je", "jedes mal", "jeweils"], "veamanc": ["je länger, desto weniger", "immer weniger"], "mintg'eda": ["jedes mal"], "actualmaintg": ["jetzt"], "d'ancurt": ["jüngst", "kürzlich", "unlängst"], "strousch": ["kaum", "knapp"], "apagna": ["kaum", "knapp", "schwerlich"], "bagnstainta": ["kaum"], "chicherichi": ["kikeriki"], "kilogram": ["kilogramm"], "kilometer": ["kilometer"], "d'unfant": ["kindlich"], "net": ["klar", "netto", "reinlich", "sauber", "reinlich"], "cleramaintg": ["klar und deutlich", "unmissverständlich"], "malapagna": ["mit knapper not", "mit knapper not", "kaum, knapp"], "s'ambratscher": ["knutschen"], "s'antupar": ["sich kreuzen", "sich treffen", "zusammentreffen"], "curtamaintg": ["in aller kürze", "kurzerhand"], "s'anreir": ["lächeln"], "dei": ["lange"], "deialung": ["lange", "lange zeit"], "dadei": ["längst"], "levamaintg": ["leicht", "mühelos", "unschwer"], "manevlamaintg": ["leicht"], "sottavousch": ["leise", "mit leiser stimme"], "davent!": ["los!"], "dai!": ["los!", "tempo!"], "gedas": ["mal"], "l'amprem'eda": ["das erste mal"], "ins": ["man", "man"], "enqualgeda": ["manchmal"], "enqualgia": ["manchmal"], "marsch!": ["marsch!"], "abundantamaintg": ["in vollem masse", "in reichem masse"], "cumplagnamaintg": ["in vollem masse", "voll", "vollends", "völlig", "vollumfänglich", "in vollen zügen", "vollumfänglich"], "ple": ["mehr", "mehr", "plus"], "pi": ["mehr"], "veapi": ["immer mehr"], "repeteidamaintg": ["mehrfach", "öfters", "verschiedentlich", "wiederholt"], "diversamaintg": ["mehrmals", "verschiedentlich"], "s'accorscher": ["merken", "spüren", "verspüren"], "me": ["mich"], "am": ["mich", "mir"], "seglmanc": ["mindestens", "wenigstens"], "pusseblamaintg": ["möglicherweise", "tunlichst"], "mensilmaintg": ["monatlich"], "sivamang": ["der reihe nach", "nach und nach", "nacheinander", "der reihe nach"], "successivamaintg": ["nach und nach", "nacheinander", "der reihe nach"], "s'avanzar": ["nachrücken", "sich verbessern", "sich vorarbeiten", "vorgehen"], "dasper": ["nächst", "nahe", "in der nähe von", "neben", "unweit", "zunächst"], "na": ["nein", "nein"], "damanevel": ["nahe", "unweit"], "numnadamaintg": ["nämlich"], "naturalmaintg": ["natürlich", "selbstredend", "selbstverständlich"], "sperasve": ["nebenbei", "nebenher", "vorbei", "vorüber"], "novtschent": ["neunhundert"], "dischnov": ["neunzehn"], "novanta": ["neunzig"], "betg": ["nicht", "nicht"], "mai": ["nie", "niemals"], "nagliour": ["nirgends"], "anc": ["noch"], "ni": ["noch", "oder"], "normalmaintg": ["normalerweise", "in der regel"], "oss": ["nun", "nunmehr"], "ossa": ["nun"], "mobagn": ["nun denn!"], "tgavestrar": ["nuten", "verstricken", "verzahnen"], "adumbatten": ["nutzlos", "umsonst", "vergebens"], "sur": ["ob", "oberhalb", "über", "über"], "sesoura": ["oben", "obenauf"], "survart": ["oben", "oberhalb"], "sessom": ["ganz oben", "obenan", "zuoberst"], "u": ["oder"], "sainza": ["ohne"], "sainz'oter": ["ohne weiteres", "unbedingt", "ohne weiteres"], "s'unfreir": ["sich opfern"], "andretg": ["ordentlich", "ordentlich", "recht", "richtig"], "pulitamaintg": ["ordentlich", "weidlich"], "dupêra": ["zwei paar"], "persunalmaintg": ["persönlich"], "fui!": ["pfui!"], "anetgamaintg": ["plötzlich", "schlagartig"], "enditgos": ["plötzlich", "unvermutet", "unversehens"], "pumf!": ["plumps!"], "sapperlot!": ["potztausend!"], "sappermentschent!": ["potztausend!"], "professer": ["professor"], "aduravonda": ["rechtzeitig"], "daratger": ["heftig regnen"], "daried": ["reichlich"], "antieramaintg": ["restlos", "vollends"], "s'anriclar": ["reuen"], "bagnatgavegl": ["richtig"], "correctamaintg": ["richtig"], "s'anzuglier": ["sich rollen"], "salda": ["ruhig", "still", "unbeweglich"], "quietamaintg": ["ruhig"], "pacificamaintg": ["ruhig", "friedlich"], "levet": ["sachte"], "lev-levign": ["sachte"], "plang-plangign": ["sachte", "sachte, nach und nach"], "minuziousamaintg": ["säuberlich"], "s'antardar": ["säumen"], "approximativamaintg": ["schätzungsweise"], "malatgavegl": ["schlecht"], "subit": ["schleunigst", "sofort", "stracks", "unverzüglich"], "veamender": ["immer schlimmer"], "tai!": ["schweig!"], "malmanevel": ["schwerlich"], "seistschent": ["sechshundert"], "sedesch": ["sechzehn"], "sessanta": ["sechzig"], "dall'orma": ["seelisch"], "ardentamaintg": ["sehnlichst"], "quant": ["wie sehr", "wie", "wie viel"], "darar": ["selten"], "sa": ["sich"], "sieiramaintg": ["sicherlich"], "ella": ["sie", "sie"], "els/ellas": ["sie", "sie"], "-igl": ["sie", "sie"], "dischset": ["siebzehn"], "settanta": ["siebzig"], "usche": ["so", "cf. uscheia"], "scheia?": ["so?"], "stueir": ["sollen", "müssen"], "duessa?": ["soll ich?"], "mabagn": ["sondern"], "sivave": ["später", "vorbei"], "gi": ["spiel", "lachen"], "fermamaintg": ["stark", "kräftig", "fest"], "s'accumular": ["sich stauen"], "stop!": ["stopp!"], "gradualmaintg": ["stufenweise"], "progressivamaintg": ["stufenweise"], "radicalmaintg": ["mit stumpf und stiel"], "de": ["tag"], "squarsas": ["vor drei tagen", "vorvorgestern"], "stersas": ["vor zwei tagen", "vorgestern"], "effectivamaintg": ["tatsächlich"], "té": ["tee"], "parzialmaintg": ["teilweise"], "malgro": ["trotz", "unbeschadet", "ungeachtet"], "bravamaintg": ["tüchtig", "weidlich"], "pertot": ["überall", "dafür"], "supraple": ["überdies"], "damengia": ["überflüssig", "überzählig", "zu viel"], "puschmang": ["übermorgen"], "evitond": ["unter umgehung"], "untgond": ["unter umgehung"], "e": ["und"], "ed": ["und"], "etcetera": ["und so weiter"], "incrediblamaintg": ["unerhört"], "nunspitgeidamaintg": ["unerwartet", "unversehens"], "suroura": ["unerwartet", "unverhofft"], "londer": ["ungefähr"], "anaveidas": ["ungern", "unwillig"], "disgraztgedamaintg": ["unglücklicherweise"], "enorm(amaintg)": ["unheimlich"], "nous": ["uns", "wir"], "ans": ["uns", "uns", "uns"], "nusoters": ["uns", "unsereiner, -eins"], "giudem": ["unten", "zuunterst"], "giusot": ["unten", "unterhalb"], "sotvart": ["unten"], "sotse": ["von unten"], "tranter": ["unter", "zwischen"], "damanc": ["unter", "weniger"], "uriundamaintg": ["ursprünglich"], "e.u.a.": ["usw."], "s'alliier": ["sich verbinden", "sich vereinigen"], "s'angurgneir": ["verbittert werden"], "s'anglatscher": ["vereisen", "vergletschern"], "dianzer!": ["verflixt!"], "s'abinar": ["sich vergleichen", "sich verständigen", "sich vertragen", "sich zusammenraufen"], "s'ambruglier": ["sich verhaspeln", "sich verheddern", "sich verwickeln"], "davantdavos": ["verkehrt"], "all'anversa": ["verkehrt herum"], "s'anclotrar": ["sich verklemmen"], "s'ancrustar": ["verkrusten"], "s'inamurar": ["sich verlieben", "sich verschiessen"], "s'andubitar": ["vermuten"], "s'ampuppar": ["sich verpuppen"], "s'ampurmetter": ["sich versprechen"], "via": ["via"], "quattertschent": ["vierhundert"], "quattermella": ["viertausend"], "vantgaquatter": ["vierundzwanzig"], "quittordesch": ["vierzehn"], "curanta": ["vierzig"], "d'": ["von"], "dad": ["von"], "digl": ["von dem (vom), von den"], "ordavant": ["voran", "voraus", "von vornherein", "vorweg", "zunächst"], "davantor": ["voran", "vorn"], "or(d)avant": ["im voraus", "zuvor"], "prudentamaintg": ["in weiser voraussicht", "wohlweislich"], "davantvart": ["auf der vorderen seite", "im vordergrund", "vorn"], "ansant": ["vorher", "vorhin"], "tschell'emda": ["vorige woche"], "d'antrouras": ["vormalig"], "vevant": ["vormals"], "anteriouramaintg": ["vormals"], "principalmaintg": ["vornehmlich"], "davantgiu": ["vornüber"], "preferiblamaintg": ["vorzugsweise"], "s'armar": ["sich wappnen"], "qual?": ["was für ein?"], "s'absentar": ["weggehen"], "guai!": ["weh(e)!"], "gliunsch": ["weit", "weithin"], "schinavant": ["so weit"], "schigliunsch": ["so weit"], "blerung": ["weitaus"], "anavant!": ["weiter!"], "venavant": ["weiterhin"], "miglsanavant": ["weiterhin", "ferner"], "scu": ["wie", "wie", "wie"], "re-": ["wieder-/wieder-"], "bavagnez!": ["willkommen!"], "bavegna!": ["willkommen!"], "d'anviern": ["winterlich"], "noua": ["wo", "wohin"], "chest'emda": ["diese woche"], "l'otr'emda": ["nächste woche"], "danonder": ["woher"], "bagntgapia": ["wohlgemerkt"], "magari": ["womöglich", "hie und da / ab und zu"], "dieschmella": ["zehntausend"], "angraztg!": ["danke!"], "temporarmaintg": ["auf zeit", "zeitweise"], "prematuradamaintg": ["vor der zeit"], "en'urela": ["eine zeitlang"], "mecta": ["ziemlich"], "oradem": ["zuäusserst"], "vedem": ["zuäusserst"], "aintadem": ["zuhinterst", "zuinnerst"], "auditours": ["zuhörerschaft"], "s'angrondaneir": ["zunehmen"], "sensom": ["zuoberst", "ganz oben"], "resumond": ["zusammenfassend"], "visiblamaintg": ["zusehends"], "profundamaintg": ["zutiefst", "tief"], "nign'antrada!": ["kein zutritt!"], "giufons": ["zuunterst"], "consultond": ["unter zuziehung (von)"], "necessariamaintg": ["zwangsläufig"], "vantg": ["zwanzig"], "dus": ["zwei"], "indubitablamaintg": ["ausser (allem) zweifel", "zweifelsfrei", "zweifelsohne"], "dutschent": ["zweihundert"], "dumella": ["zweitausend"], "secondo": ["zweitens"], "otgantadus": ["zweiundachtzig"], "vantgadus": ["zweiundzwanzig"], "dodesch": ["zwölf"], "ad": ["cf. a", "und"], "adanc": ["cf. ad anc"], "adancunter": ["cf. ancunter"], "ainta": ["cf. aint"], "s'ampipar": ["pfeifen (auf)"], "anfign": ["cf. anfignen"], "s'arder": ["schlimme erfahrungen machen"], "burmaintg": ["cf. bunamaintg"], "catter": ["cf. quatter"], "ainten": ["cf. aint"], "els": ["cf. el"], "co": ["cf. scu"], "cu": ["cf. scu"], "cuntrara": ["cf. cuntrari"], "currentamaintg": ["fliessend, geläufig"], "energicamaintg": ["eindringlich"], "ègl": ["es ist"], "etc.": ["usw."], "expressivamaintg": ["ausdrücklich"], "ez": ["cf. lez"], "fegnfatg": ["ganz und gar", "gewiss"], "reciprocamaintg": ["gegenseitig"], "giud": ["cf. giu"], "giunsom": ["zuunterst; am äussersten rand"], "gl'": ["cf. i", "cf. igl"], "gnoul": ["etwas; wenig"], "igls": ["die", "sie", "ihnen", "die", "sie", "ihnen"], "gl'unfant": ["das kind"], "las": ["sie", "ihnen", "die", "sie", "ihnen", "die"], "all'ambrusiana": ["nachlässig, ohne sorgfalt", "überstürzt, in eile"], "en'eda": ["einmal"], "ord": ["aus", "cf. or"], "orsot": ["unten hinaus"], "all'oura": ["pro stunde/in der stunde"], "pachign": ["sehr wenig"], "passa": ["mehr als, über, darüber"], "pianavant": ["cf. pinavant"], "po": ["doch, denn"], "quegl": ["cf. chegl"], "quel": ["cf. chel"], "radagn": ["cf. radaint"], "savurar": ["cf. suarar"], "scheia": ["kurzform von 'uscheia'"], "schianavant": ["cf. schinavant"], "seagiu": ["auf und ab"], "sotanse": ["von unten nach oben"], "stgisa!": ["entschuldige!"], "strantgamaintg": ["streng"], "strictamaintg": ["strengstens"], "surangiu": ["von oben nach unten"], "tgavegl": ["geordnet, geregelt"], "tgenegna?": ["was für eine?"], "s'annivleir": ["sich umwölken"], "insapientivamaintg": ["unwissentlich", "unbewusst"], "vease": ["hinauf"], "ved": ["ve+da", "ve+vocal..."], "vedano": ["hin und her"], "ven": ["drüben, hinüber"], "vensom": ["drüben am äussersten rand"], "vusez": ["sie selbst"], "giuadaint": ["hinunter und hinein"], "giuadainten": ["hinunter und hinein"], "plangign": ["sachte"], "angraztger": ["danken", "sich bedanken", "verdanken"], "condolar": ["kondolieren", "sein beileid aussprechen"], "dacormaintg": ["herzlich"], "intersecziun": ["schnittmenge"], "casmang": ["überübermorgen"], "caschmang": ["überübermorgen"], "manischunz": ["chauffeur"], "baghet": ["baguette"], "dalmatin": ["dalmatiner"], "darts": ["darts"], "endeschigna": ["elfchen"], "graficra": ["grafikerin"], "guardiabogn": ["badeaufseher", "badeaufseherin"], "kiwi": ["kiwi", "kiwi"], "leggins": ["leggins"], "magliafurmeilas": ["ameisenbär"], "tgaschetta": ["kästchen"], "nettegiacalzers": ["schuhputzer"], "meirung": ["schermaus"], "sottaragn": ["untergrund"], "chepli": ["käppi"], "brunslis": ["brunsli"], "buccareia": ["maikäfer"], "campiunessa-tiradoura": ["schützenkönigin"], "telefonign": ["handy"], "pandemia": ["pandemie"], "dominanza": ["dominanz"], "truschet": ["rührstab"], "e-mail": ["e-mail"], "tignavelo": ["veloständer"], "portavelo": ["veloständer"], "geoinfurmaziun": ["geoinformation"], "forestalesser": ["forstwesen"], "antgaschamaint": ["wasserfassung"], "trafo": ["trafo"], "giun": ["unten"], "implementaziun": ["implentierung"], "autofinanziaziun": ["selbstfinanzierung"], "inspectorat": ["inspektorat"], "consorzi": ["konsorzium"], "preproject": ["vorprojekt"], "preavertimaint": ["vorwarnung"], "reconcessiun": ["wiederkonzessionierung"], "reconcessiunamaint": ["wiederkonzessionierung"], "revitalisaziun": ["wiederbelebung"], "tgesigna": ["häuschen"], "consuprastant": ["vorstandskollege"], "propa": ["wirklich"], "perscrutadra": ["forscherin"], "consuprastanta": ["vorstandskollegin"], "rangaziun": ["rangierung"], "ensemble": ["ensemble"], "calostra": ["mesmerin"], "kilo": ["kilo"], "durmigliet": ["gartenschläfer"], "hellebardier": ["hellabardier"], "concretisaziun": ["konkretisierung", "verbildlichung"], "cucurel": ["dummkopf"], "anghiboda ": ["hokuspokus"], "optimaziun": ["optmierung"], "l'": ["der, die, das"], "numerousamaintg": ["zahlreich"], "nizzader": ["schredder"], "clicca": ["clique"], "pacifitgiedra": ["friedensstifterin", "schlichterin"], "testichel": ["hoden"], "ultrasung": ["ultraschall"], "ensanouas": ["irgendwo"], "saimiri": ["totenkopfaffe"], "manati": ["seekuh"], "cambrium": ["kambrium"], "ardera": ["verbrennungsanlage"], "tactil": ["taktil"], "motorica": ["motorik"], "anschignevladad": ["gewandtheit"], "memori": ["memory"], "disvantatg": ["nachteil"], "logopedic": ["logopädisch"], "narratour": ["erzähler"], "skateline": ["skateline"], "vasarauls": ["vazerol"], "scooter": ["scooter"], "antonim": ["antonym"], "lemur": ["lemur"], "paster": ["hirte"], "ògl": ["es gibt"], "scoligna": ["kindergarten"], "pesch-ballun": ["kugelfisch"], "biatlon": ["biathlon"], "cuncantadour": ["mitsänger"], "flommetta": ["sparflamme"], "magliatot": ["allesfresser"], "visualisaziun": ["verbildlichung", "visualisierung"], "fleissa": ["fleissig"], "commentatour": ["kommentator"], "commentatoura": ["kommantatorin"], "premnascheida": ["erstgeborene"], "serbia": ["serbien"], "figlia": ["blatt"], "capriol": ["reh"], "runda": ["runde"], "explicit": ["explizit", "explizit"], "obstachel": ["hürde", "hindernis"], "tgirunza": ["pflegefachfrau"], "strasbourg": ["strassburg"], "fondue": ["fondue"], "ervignas": ["kräuter"], "cider": ["most"], "cherosin": ["kerosin"], "salam": ["salami"], "pêrign": ["liebespaar"], "bargialera": ["heulsuse"], "speidafi": ["feuerspucker, -in"], "impressum": ["impressum"], "presaveida": ["vorwissen"], "modul": ["modul"], "carign": ["niedlich", "herzig"], "diatesa": ["diathese"], "cutter": ["cutter "], "legramaintg": ["freudig (mit freude)"], "adretgve": ["gerade hinüber"], "plang-tera": ["erdgeschoss"], "davosvart": ["hinten", "dahinter"], "bratschlet": ["armband", "armreif"], "marschung": ["faul"], "popcorn": ["popcorn"], "koala": ["koala", "koala"], "smiley": ["smiley"], "pool": ["pool"], "sombrero": ["sombrero"], "bregncler": ["hellbraun"], "clic": ["klick", "klicklaut"], "sutgruppa": ["untergruppe"], "mobil": ["mobil"], "quadratic": ["quadratisch"], "legos": ["legosteine", "legos"], "plievgous": ["regnerisch"], "omnivor": ["allesfresser"], "enveloppa": ["umschlag"], "etascha": ["etage"], "cumprabel": ["käuflich"], "mexico": ["mexiko"], "rucola": ["rucola"], "turchis": ["türkis"], "sprint": ["sprint"], "pointa": ["pointe"], "biolog": ["biologe"], "biologa": ["biologin"], "brasilia": ["brasilien"], "giapung": ["japan"], "giapunes": ["japanisch"], "trilogia": ["trilogie"], "alfabetic": ["alphabetisch"], "mediateca": ["mediathek"], "ficziunal": ["fiktional"], "illetrissem": ["illetrismus"], "empatia": ["empathie"], "tibet": ["tibet"], "venezia": ["venedig"], "galizian": ["galizisch", "galicisch, galegisch"], "galizia": ["galizien (landschaft in südpolen und der westukraine)", "galicien (nordwestspanische region)"], "magliacodeschs": ["bücherwurm", "leseratte"], "leguan": ["leguan"], "drona": ["drohne"], "sfinx": ["sphinx"], "tatgeder": ["aufkleber"], "infurmativ": ["informativ", "aufschlussreich"], "rosner": ["locher (bürogerät)"], "segnacodesch": ["lesezeichen", "buchzeichen"], "tibetan": ["tibetisch"], "truvaglia": ["trouvaille (fund)"], "magliadultschem": ["schleckmaul"], "maglia-actas": ["aktenvernichter"], "trenadi": ["training"], "fluent": ["fliessend"], "seiatschispet": ["rasenmäher"], "pomfrits": ["pommes frites"], "neolategn": ["neolateinisch"], "tilda": ["tilde"], "pizzaria": ["pizzeria"], "ebreic": ["hebräisch"]}
lemmatizer/other_de/rm-sursilv.json ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/other_de/rm-sutsilv.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"annà": ["herüber"], "anor(a)": ["auswärts", "hinaus", "talauswärts"], "anoragiou": ["abwärts", "im unterland", "talauswärts hinunter"], "anorasei": ["aufwärts", "talauswärts hinauf"], "anor(vearz)": ["auswärts", "nach aussen"], "anqual": ["hie und da einer", "manch einer", "mancher"], "anqualegn": ["hie und da einer", "manch einer", "mancher"], "anqualegns": ["einzelne"], "anqualgea(das)": ["dann und wann", "hie und da", "manchmal", "mitunter", "zuweilen", "zuzeiten"], "ansànt": ["eben erst", "vor einem augenblick", "vorher", "vorhin"], "ansasez": ["an und für sich", "eigentlich", "im grunde genommen"], "d'acord": ["beifällig", "einverstanden", "übereinstimmend"], "ansei": ["aufwärts", "bergan", "bergauf", "bergwärts", "empor", "hinauf", "talaufwärts", "taleinwärts"], "(an)squarzas": ["vor drei tagen", "vorvorgestern"], "anstagl": ["als ersatz", "anstatt", "für", "statt"], "anstearzas": ["vor zwei tagen", "vorgestern"], "s'antali!": ["aber natürlich!", "allerdings!", "natürlich!", "selbstverständlich!"], "antierameing": ["restlos", "vollends", "völlig", "vollkommen", "vollständig", "zutiefst"], "nign'antrada!": ["kein eintritt!"], "(an)tras": ["mittels"], "(an)trocen": ["cf. (an)tocen"], "antruras": ["dereinst", "ehedem", "ehemals", "einst", "früher", "vormals"], "l'antscheata": ["am anfang", "im anfang", "eingangs", "zu beginn", "anfangs"], "d'antscheata": ["am anfang", "im anfang", "anfangs", "anfänglich", "eingangs", "zu beginn"], "anturn": ["etwa", "schätzungsweise", "um", "ungefähr", "zirka", "cf. (d)anturn"], "anualmeing": ["alljährlich", "jährlich"], "sainz'anur": ["ehrlos"], "anvei": ["hin", "hinwärts"], "(an)zaco": ["irgendwie"], "(an)zacu(ras)": ["dereinst", "einst", "irgendeinmal", "irgendwann", "je", "jemals"], "(an)zanoua": ["irgendwo", "irgendwohin"], "(an)zanou'oter": ["anderswo", "anderswohin", "anderwärts"], "anzaquànts": ["einige"], "(an)zaquànts": ["etliche", "gewisse", "einige"], "(an)zatge": ["etwas", "irgendetwas", "irgendwas", "was"], "(an)zatgeet": ["etwas weniges"], "(an)zatgi": ["irgendeiner", "irgendwer", "jemand"], "anzemen": ["cf. anzemel"], "anzi": ["eher", "im gegenteil", "lieber", "vielmehr"], "anzi!": ["bitte (schön)!", "keine ursache!"], "anzuma": ["überhaupt"], "aparaintameing": ["anscheinend", "scheinbar"], "aposta": ["absichtlich", "eigens", "extra", "vorsätzlich", "zum trotz"], "aproximativameing": ["annähernd", "beinahe", "schätzungsweise"], "actualmeing": ["derzeit", "gegenwärtig", "jetzt", "zurzeit"], "arisguard": ["betreffend", "betreffs", "bezüglich", "hinsichtlich"], "nus": ["wir", "wir"], "vus": ["ihr", "ihr", "euch", "sie"], "aschameing": ["bitter", "bitterlich"], "ascheia": ["auf diese weise", "derart", "dergestalt", "dermassen", "folgendermassen", "so"], "aten": ["athen"], "atenziùn!": ["vorsicht!"], "atgnameing": ["an und für sich", "eigentlich", "im grunde genommen", "von rechts wegen"], "automaticameing": ["selbsttätig"], "autonomameing": ["auf eigene faust", "selbstständig"], "avànt": ["davor", "vorher", "zuvor", "cf. (d)avànt"], "avras": ["avers"], "avunda": ["ausreichend", "genug", "genügend", "sattsam"], "b": ["b, b"], "bagnanqual": ["hie und da einer", "manch einer", "mancher"], "bagnantaletg": ["wohlgemerkt", "wohlverstanden"], "bagnbòld": ["bald", "demnächst", "in bälde"], "bagncapieu": ["wohlgemerkt", "wohlverstanden"], "bagndalùnga": ["baldigst", "baldmöglichst"], "bagnduras": ["bisweilen", "dann und wann", "hie und da", "manchmal", "mitunter", "zuweilen", "zuzeiten"], "bagniras": ["ausgezeichnet"], "adatg!": ["aufgepasst!", "vorsicht!"], "bagnvagnieu(s)!": ["willkommen!"], "balamburtg": ["bärenburg"], "baltarmieu": ["bartolomäus"], "balzer": ["balthasar"], "banadetg": ["benedikt"], "barbla": ["barbara"], "bargugn": ["bergün"], "bartola": ["bartolomäus"], "basileia": ["basel"], "adigna": ["cf. adegna"], "basta!": ["genug (davon)!", "halt!", "kurz und gut!", "kurzum!", "stopp!"], "bastgàn": ["sebastian"], "batas?": ["bei dir piept's wohl?", "bist du verrückt?"], "bealaposta": ["eigens"], "beglia": ["cf. biglia"], "betg(a)": ["nicht"], "bien!": ["gut!", "schön!"], "biestga": ["vieh"], "bischuber": ["recht", "wacker", "zünftig"], "bitschier": ["cf. patschier"], "biuss": ["gerade jetzt", "sofort"], "blanco": ["blanko"], "bleariras": ["sehr viel"], "blinzùna": ["bellinzona"], "bo": ["käfer"], "bol": ["stempel"], "bòld": ["früh", "zeitig"], "boldezias": ["sehr früh"], "brahadira": ["wergabfall"], "bravameing": ["recht", "wacker", "weidlich", "zünftig"], "bravo!": ["bravo!"], "adretggiou": ["gerade hinunter"], "adretgor": ["aufrichtig", "geradeaus"], "adumbaten": ["erfolglos", "umsonst", "vergebens", "vergeblich"], "bu(g)agear": ["cf. uagear"], "bugent": ["bereitwillig", "gern(e)"], "bulameing": ["cf. bunameing"], "bùn!": ["fein!", "gut!"], "buniras": ["sehr gut"], "bunparfatscha!": ["gesegnete mahlzeit!", "wohl bekomm's!", "guten appetit!"], "buntads": ["sehr gut", "lecker"], "burameing": ["cf. bunameing"], "afùns": ["gründlich", "tief"], "agn": ["cf. aint"], "angravagear": ["belasten"], "ahà!": ["ach so!"], "aintadem": ["zuhinterst", "zuinnerst"], "aintafùns": ["zuhinterst", "zuinnerst"], "aintamiez": ["in der mitte", "inmitten"], "aintantgieu": ["zuhinterst"], "al": ["ihn"], "a": ["und", "zu", "bei", "um", "zu", "an"], "almen": ["almens"], "alternàntameing": ["abwechselnd", "wechselweise"], "alternativameing": ["alternativ"], "alu(ra)": ["alsdann", "danach", "dann", "darauf", "hierauf", "so", "sodann", "damals", "dazumal"], "alvagni": ["alvaneu"], "abà!": ["ach was!"], "ambriesch": ["ambrosius"], "amiez": ["cf. (d)amiez"], "ampe": ["als ersatz", "anstatt", "für", "statt"], "ampo": ["ein bisschen", "ein klein wenig", "ein wenig", "etwas"], "ampoet": ["ein bisschen", "ein klein wenig"], "absolutameing": ["absolut", "schlechterdings", "unbedingt"], "anagn": ["cf. anaint"], "anaintasei": ["taleinwärts hinauf"], "anaquella": ["da", "in diesem augenblick"], "anavànt": ["vorwärts", "weiter"], "anavànt!": ["los!", "weiter!"], "anavos": ["hintenüber", "nach hinten", "retour", "rücklings", "rückwärts", "zurück"], "anavos!": ["zurück!"], "ànc": ["noch"], "(an)cunaschaintameing": ["bekanntlich"], "(an)cùnter": ["dagegen", "entgegen", "wider", "zuwider", "entgegen", "um", "ungefähr"], "andeer": ["andeer"], "andreia": ["andreas"], "andretg": ["recht", "richtig"], "angiou": ["abwärts", "bergab", "herunter", "hinab", "hinunter", "nieder", "talabwärts"], "angiou(vearz)": ["abwärts", "nach unten"], "angual": ["cf. ual"], "cordialmeing": ["herzlich"], "calm!": ["ruhig blut!"], "corectameing": ["recht", "richtig"], "criet": ["cröt"], "cristus": ["christus"], "cuira": ["cf. cuera"], "cumadevlameing": ["gemächlich"], "cumegnameing": ["gewöhnlich"], "cuminevlameing": ["gemeinsam", "gemeinschaftlich"], "(cum)plagnameing": ["reichlich", "vollends", "völlig"], "cumpletameing": ["ganz", "ganz und gar", "gänzlich", "komplett", "lückenlos", "ratzekahl", "restlos", "vollends", "völlig", "vollkommen", "vollständig"], "cumprovadameing": ["erwiesenermassen"], "cun": ["mit", "mitsamt", "mittels", "samt", "zuzüglich"], "cunaschaint": ["cf. (an)cunaschaint"], "cunaschaintameing": ["cf. (an)cunaschaintameing"], "cundiziunadameing": ["bedingt"], "cunsiderablameing": ["beträchtlich", "wesentlich"], "cunstàntameing": ["andauernd", "dauernd", "die ganze zeit", "durchgehend", "fortgesetzt", "fortwährend", "immerfort", "immerzu", "ständig", "unablässig", "unaufhörlich", "ununterbrochen"], "cuntemporans": ["mitwelt"], "cuntinuadameing": ["andauernd", "beständig", "dauernd", "die ganze zeit", "fortgesetzt", "fortwährend", "immer", "immerfort", "immerzu", "ständig", "stets", "unablässig", "unaufhörlich", "ununterbrochen", "durchgehend"], "cunzund": ["besonders", "hauptsächlich", "insbesondere", "namentlich", "vornehmlich", "vorzugsweise"], "curànta": ["vierzig"], "curdegn": ["konrad(in)"], "curo": ["konrad"], "curtameing": ["kurzerhand", "kurzweg"], "cuvitgs": ["gemeinderat", "gemeindevorstand"], "dabot": ["eilends", "flüchtig", "flugs", "geschwind", "im flug", "prompt", "rasch", "schnell"], "daco": ["warum", "was", "wieso"], "dacormeing": ["herzlich"], "dadòlt": ["laut", "lautstark", "mit lauter stimme"], "dadoltiras": ["sehr laut"], "[dafatg]": ["ganz", "ganz und gar", "gänzlich", "ratzekahl", "restlos", "vollends", "völlig", "vollkommen", "vollständig"], "dafor": ["ausserhalb"], "dafora": ["aussen", "draussen"], "daforavei": ["aussen herum"], "dagliegn": ["dalin"], "dalànder": ["davon"], "dalientsch": ["von fern", "von weitem", "weither"], "dalurannà": ["seitdem", "seither"], "damains": ["darunter", "weniger"], "damànasera": ["morgen abend"], "dama(s)dus": ["cf. ama(s)dus"], "damena": ["also", "daher", "demnach", "folglich", "infolgedessen", "somit"], "(d)amiez": ["in der mitte liegend", "in der mitte", "mittendrin", "mitten"], "danievmeing": ["abermals", "erneut", "neuerdings", "noch einmal", "nochmals", "von neuem", "wieder", "wiederum"], "dano": ["ausgenommen"], "danovameing": ["abermals", "erneut", "neuerdings", "noch einmal", "nochmals", "von neuem", "wieder", "wiederum"], "dantànt": ["inzwischen", "mittlerweile", "unterdessen", "währenddessen", "aber", "allein", "allerdings", "dagegen", "freilich", "hingegen", "indessen", "(je)doch", "nur"], "(d)anturn": ["zugegen"], "danunder": ["von wo", "woher"], "daparse": ["abseits", "getrennt"], "dapartut": ["allenthalben", "allerorten", "allerorts", "durchweg", "überall"], "daple": ["darüber", "mehr"], "dapreschaint": ["derzeit", "gegenwärtig", "jetzt", "zurzeit"], "daquaaint": ["da hinein"], "daquagiou": ["da hinunter"], "daquaor": ["da hinaus"], "daquasei": ["da hinauf"], "daque": ["derart", "so"], "darar": ["selten"], "daried": ["reichlich", "viel", "vollauf"], "(da)schnu(v)ar": ["abknöpfen", "aufknöpfen", "auflösen", "aufmachen", "entwirren"], "(da)speras": ["dabei", "daneben", "nebenan", "nebenher"], "(da)sperasvei": ["daneben", "nebenbei", "nebenher", "vorbei", "vorüber"], "datier": ["in der nähe", "nahe", "neben"], "davandavos": ["verkehrt"], "davàntgiou": ["vornüber"], "davàntvart": ["auf der vorderen seite"], "davart": ["betreffend", "betreffs", "bezüglich"], "daveras": ["fürwahr", "im ernst", "in der tat", "tatsächlich", "ungelogen", "wahrhaft", "wahrhaftig", "wahrlich", "wirklich"], "davo": ["hinter"], "davosor": ["hinten hinaus"], "davostier": ["dahinter", "hinten herum", "hinterrücks"], "davosvart": ["dahinter"], "davosvei": ["im hintergrund"], "de!": ["tempo!"], "definitivameing": ["endgültig"], "capevlameing": ["begreiflicherweise"], "deplorablameing": ["bedauerlicherweise"], "detaglieadameing": ["ausführlich", "detailliert", "eingehend", "einlässlich"], "detg(adir)avunda": ["in hülle und fülle", "sattsam", "vollauf"], "detgadiravunda": ["mehr als genug"], "dieschmeli": ["zehntausend"], "diferenztga": ["unterschied"], "diraglias": ["sehr hart"], "directameing": ["direkt", "geradewegs", "schnurstracks"], "direzias": ["sehr hart"], "discretameing": ["verstohlen"], "displaschevlameing": ["bedauerlicherweise", "leider"], "domat": ["ems"], "donat": ["donath"], "carischeias": ["sehr teuer"], "dublameing": ["doppelt", "in zweifacher ausführung"], "dudesch": ["zwölf"], "dumeli": ["zweitausend"], "durànt": ["während"], "durisch": ["ulrich"], "dutschient": ["zweihundert"], "duveartameing": ["cf. aviertameing"], "d'irom": ["kupfern"], "d'unviern": ["im winter"], "cartevlameing": ["aller vermutung nach", "vermutlich"], "ca": ["was", "welche(r -s)", "dass"], "ocasualmeing": ["gelegentlich"], "casualmeing": ["zufälligerweise"], "categoricameing": ["rundweg"], "catregna": ["katharina"], "da": ["von"], "cavegl": ["cf. tgavegl"], "cavorgia": ["schlucht"], "cicarici": ["kikeriki"], "clavena": ["chiavenna"], "clerameing": ["klar und deutlich"], "clo": ["nikolaus"], "clugen": ["clugin"], "co": ["wie"], "colorado": ["colorado"], "calantgil": ["innerferrera"], "consequentameing": ["also", "daher", "darum", "demzufolge", "folglich", "infolgedessen"], "constànza": ["konstanz"], "finalmeing": ["am ende", "endlich", "schliesslich"], "egn(a)": ["ein(e)"], "flearda": ["flerden"], "flep": ["philipp"], "flisch": ["felix"], "fo": ["buche"], "fòlzameing": ["fälschlich"], "egntraglioter": ["durchschnittlich", "im durchschnitt"], "formalmeing": ["förmlich"], "fràncameing": ["frank und frei", "offen und frei"], "franzestg": ["franziskus"], "el": ["er"], "freana": ["verena"], "frestgameing": ["frisch"], "fri": ["reichlich", "ziemlich"], "frona": ["veronika"], "fudi!": ["pfui!"], "garschiras": ["sehr fett"], "garvurs": ["sehr schwer"], "(g)ea": ["ja"], "(g)eabagn": ["jawohl"], "(g)eabagn!": ["so so!"], "gearmains": ["immerhin", "mindestens", "wenigstens", "zumindest"], "geli": ["julius"], "generalmeing": ["allgemein", "gemeinhin", "generell", "im allgemeinen"], "gens": ["erbgut"], "gi": ["tag"], "giahanas": ["johann", "johannes"], "gianteraint!": ["donnerwetter!"], "gianzeraint!": ["donnerwetter!"], "r": ["kläffen"], "giatgen": ["jakob"], "giavatschaint!": ["donnerwetter!", "zum teufel!"], "giavelaint!": ["zum teufel!"], "gieri": ["georg"], "giodapes": ["zuunterst"], "giodem": ["zuunterst"], "giohem": ["joachim"], "giolà": ["dort unten", "dort unten"], "gion": ["hans", "johann", "johannes"], "gionas": ["jonas"], "gionzum": ["zuunterst"], "giopes": ["zuunterst"], "gioqua": ["hier unten"], "giou": ["ab"], "giouadaint": ["hinab", "hinein", "hinunter"], "giouador": ["hinaus"], "giobass": ["am boden"], "giodlànder": ["darunter"], "giodvart": ["abseits"], "giofùns": ["zuunterst", "(bis nach) ganz unten"], "giosut": ["unten"], "gisep": ["joseph"], "gisseat": ["siebzehn"], "gitg": ["cf. gî"], "givòlta": ["rotenbrunnen"], "gliànt": ["ilanz"], "glieschiras": ["aalglatt"], "gliez": ["jenes"], "gnànc": ["nicht einmal"], "ea(da)s": ["verschiedentlich", "viele male"], "lez'ea(da)": ["damals, dazumal"], "l'otr'ea(da)": ["das nächste mal", "das nächste mal"], "quell'ea(da)": ["damals, dazumal", "diesmal"], "tschell'ea(da)": ["letztes mal"], "d'egn'ea(da)": ["einstig"], "egn'ea(da)": ["dereinst", "einmal", "irgendwann"], "l'amprem'ea(da)": ["das erste mal"], "en": ["inn"], "gràndameing": ["in hohem mass"], "gratuitameing": ["gratis", "kostenfrei", "kostenlos", "ohne entgelt", "umsonst", "unentgeltlich"], "greata": ["margarete"], "energicameing": ["eindringlich"], "grossezias": ["sehr dick"], "enormameing": ["enorm", "in hohem mass", "sehr", "unbändig", "unheimlich"], "gualp": ["fuchs"], "gudentg": ["gaudenz"], "gugliearm": ["wilhelm"], "gustegn": ["augustin"], "er": ["acker", "feld"], "essenzialmeing": ["hauptsächlich"], "eventualmeing": ["allenfalls", "eventuell", "gegebenenfalls", "unter umständen", "womöglich"], "evidaintameing": ["zusehends"], "ea": ["cf. (g)ea", "cf. ea(da)"], "graztga!": ["danke!"], "eabagn": ["cf. (g)eabagn"], "exactameing": ["eben", "genau", "gründlich"], "exactameing!": ["eben!"], "sainz'exaimpel": ["beispiellos"], "exclusivameing": ["ausschliesslich", "exklusive"], "ear": ["auch"], "extraordinariameing": ["aussergewöhnlich"], "sainz'exzepziùn": ["ausnahmslos", "einmütig"], "exzepziunalmeing": ["ausnahmsweise"], "f(a)rantur": ["cf. (s)f(a)rantur"], "farden": ["fardün"], "farschno": ["fürstenau"], "fe": ["treue"], "fearmameing": ["fest", "stark"], "fegn'udida": ["scharfes gehör"], "fegnadegn": ["alle", "ein jeder", "jedermann"], "fegnfatg": ["absolut"], "fegniras": ["sehr fein"], "fetg": ["ausnehmend", "ausserordentlich", "äusserst", "besonders", "hochgradig", "höchst", "sehr", "überaus", "unbändig"], "fidevlameing": ["getreulich"], "efectivameing": ["effektiv"], "jou": ["ich"], "là": ["dahin", "dort"], "laagn": ["cf. laaint"], "laancùnter": ["dagegen", "hingegen", "jedoch"], "lamegl": ["cf. limegl"], "lanà": ["dorther"], "landergiou": ["unter einer sache"], "landeror": ["daraus", "hieraus"], "landervei": ["dabei", "daran"], "hess!": ["zurück!"], "làntsch": ["lenz"], "laor": ["cf. lior"], "laoragiou": ["cf. lioragiou"], "laorasei": ["cf. liorasei"], "largias": ["hilarius"], "lasei": ["cf. lisei"], "lasperas": ["daneben"], "lasura": ["über eine sache"], "latier": ["dabei", "dann", "dazu", "hinzu"], "làtras": ["dadurch"], "lavei": ["dort hinüber", "dorthin"], "leav(ameing)": ["leicht", "unschwer", "spielend"], "legitimameing": ["berechtigterweise"], "legrameing": ["fröhlich", "lustig"], "legrevlameing": ["erfreulicherweise"], "lena": ["helena", "magdalena"], "liagn": ["cf. liaint"], "liàn": ["lugano"], "librameing": ["aus freien stücken", "frei"], "lientsch": ["fern", "in weiter ferne", "weit", "weithin"], "ligiou": ["drunten", "unten"], "ligrezia": ["lukrezia"], "linard": ["leonhard"], "hio!": ["hü!"], "lisabet": ["elisabeth"], "live": ["live"], "livei": ["drüben"], "localmeing": ["strichweise"], "lon": ["lohn"], "lu(a)": ["dann"], "lu": ["so", "sodann"], "lunghezias": ["sehr lang"], "lunghiras": ["sehr lang"], "luregn": ["lorenz"], "mademameing": ["desgleichen", "ebenfalls", "ebenso", "genauso", "gleich", "gleichermassen", "gleicherweise", "gleichfalls"], "magari": ["allenfalls", "womöglich", "manchmal"], "holà!": ["hallo!"], "mai": ["mein lebtag nicht", "nie", "niemals", "nimmer"], "mainsduras": ["hie und da"], "mainsilmeing": ["monatlich"], "mainsvart": ["cf. mainsguart"], "mal-": ["un-"], "malameing": ["gröblich", "notdürftig"], "malgestameing": ["ungerechterweise"], "malgro": ["trotz", "ungeachtet"], "maliras": ["abgefeimt", "durchtrieben"], "malvantirevlameing": ["unglücklicherweise"], "manedlameing": ["haarklein", "einlässlich", "gründlich"], "hot!": ["kehr dich!"], "mareia": ["marie"], "margreata": ["margarete"], "marlena": ["magdalena"], "marsch!": ["marsch!"], "marvantar": ["erstarren machen"], "hrest": ["cf. crest"], "masagn": ["masein"], "maté": ["matthias"], "mateias": ["matthias"], "matem": ["denk", "wahrscheinlich", "womöglich"], "matieu": ["matthäus"], "maton": ["mathon"], "maximalmeing": ["höchstens", "maximal", "wenn es hochkommt"], "megna": ["allzu"], "meia": ["marie"], "meli": ["tausend"], "meltger": ["melchior"], "men": ["cf. dumeni"], "mena": ["keinmal", "mein lebtag nicht", "nie", "niemals", "nimmer"], "mengia": ["cf. megna", "dominika", "monika", "zu viel"], "sainz'ideias": ["einfallslos"], "milàn": ["mailand"], "minimalmeing": ["mindestens"], "identicameing": ["gleich"], "mintga": ["jeder, jede, jedes"], "mintg'on": ["jahraus, jahrein", "alljährlich"], "mintgame": ["jeweils"], "mintgatànt": ["ab und zu", "bisweilen", "dann und wann", "hie und da", "hin und wieder", "manchmal", "mitunter", "zeitweilig", "zeitweise", "zuweilen", "zuzeiten"], "mintgegn(a)": ["jede(r -s)"], "minuziusameing": ["eingehend"], "mo": ["aber", "allein", "doch", "indessen", "nur", "sondern"], "mobagn": ["sondern"], "momentanameing": ["augenblicklich", "einstweilen", "gegenwärtig", "momentan", "zur zeit"], "ier": ["am gestrigen tag", "gestern"], "ierandamàn": ["gestern morgen"], "iernotg": ["gestern nacht"], "iersera": ["gestern abend"], "mortalmeing": ["tödlich"], "moscha(peia)!": ["also denn!", "nun denn!"], "mucas": ["lust"], "igl": ["es"], "murezi": ["moritz"], "ign": ["man"], "müstair": ["münster"], "mustér": ["disentis"], "îl": ["auge", "blattknospe"], "imediat(ameing)": ["auf anhieb", "augenblicklich", "geradewegs", "mit umgehender post", "postwendend", "prompt", "schnurstracks", "sofort", "umgehend", "unmittelbar", "unverzüglich"], "(h)abitànts": ["einwohnerschaft"], "improvisadameing": ["aus dem stegreif"], "sainz'impurtànza": ["bedeutungslos", "belanglos"], "in-": ["un-"], "inclusivameing": ["inbegriffen", "inklusive", "samt"], "independentameing": ["auf eigene faust", "selbstständig"], "halo!": ["hallo!"], "halt": ["halt"], "inevitablameing": ["zwangsläufig"], "halt!": ["halt!", "stopp!"], "instàntameing": ["eindringlich", "ernsthaft", "ernstlich"], "d'amprem'instànza": ["erstinstanzlich"], "instinctivameing": ["aus instinkt", "instinktiv"], "intensivameing": ["hochgradig"], "internameing": ["innerlich"], "otgtschient": ["achthundert"], "otrameing": ["anders", "sonst", "widrigenfalls"], "ov": ["ei"], "oz": ["heute"], "ozandamàn": ["heute früh", "heute morgen"], "oziglgi": ["heutzutage"], "ozseglgi": ["cf. oziglgi"], "paf!": ["paff!"], "pamf!": ["plumps!"], "pamfaditec!": ["plumps!"], "panaduz": ["bonaduz"], "par": ["für", "für", "um ... zu", "zwecks"], "paralelmeing": ["parallel"], "parancùnter": ["dagegen", "hingegen", "jedoch"], "natiralmeing": ["freilich", "ja freilich", "natürlich"], "paregnameing": ["friedlich"], "parevlameing": ["anscheinend", "scheinbar"], "parfetgameing": ["bestens"], "pargues": ["sicherlich"], "parleramainta": ["gesindel", "mob", "pack"], "parmiez": ["entzwei", "mittendurch"], "parmiezvei": ["mittendurch"], "parpoc": ["bald", "beinahe", "fast", "geradezu", "nachgerade"], "parsieua": ["dafür", "ersatzweise"], "parsuainter": ["dafür", "ersatzweise"], "parsunalmeing": ["persönlich"], "partanànt": ["betreffend", "betreffs", "bezüglich", "hinsichtlich", "cf. (a)partanànt"], "partànt": ["inzwischen", "mittlerweile", "unterdessen", "währenddessen"], "sapa(r)tartgear": ["sich besinnen"], "partge": ["inwiefern", "warum", "was", "weshalb", "wieso", "wofür"], "partut": ["allenthalben", "allerorten", "allerorts", "überall"], "partutgànt": ["bezüglich", "betreffend", "betreffs", "bezüglich"], "ne": ["beziehungsweise", "oder"], "parzialmeing": ["teils", "teilweise"], "pasqual": ["paspels"], "neader": ["oder"], "pat": ["beat"], "patgificameing": ["cf. patschificameing"], "near": ["beziehungsweise", "oder"], "patsch!": ["patsch!"], "neasa": ["agnes"], "pazen": ["patzen"], "pe": ["fuss", "bein", "stütze"], "peader": ["peter"], "peblut": ["barfuss"], "per": ["erst"], "permanentameing": ["andauernd", "dauernd", "die ganze zeit", "durchgehend", "fortgesetzt", "fortwährend", "immerfort", "immerzu", "ständig", "unablässig", "unaufhörlich", "ununterbrochen"], "petrameing": ["bitter", "bitterlich"], "pic": ["cf. pecel"], "picel": ["cf. pecel"], "piglple": ["meist", "meistens", "vorwiegend"], "piglver": ["fürwahr", "gewiss", "im ernst", "in der tat", "in der tat", "sicherlich", "tatsächlich", "ungelogen", "wahrhaft", "wahrhaftig", "wahrlich", "wirklich"], "pintgiras": ["sehr klein"], "plagnameing": ["cf. (cum)plagnameing"], "plànsieu": ["gemach", "gemächlich", "langsam"], "plasch": ["blasius"], "plenanaint": ["weiter innen"], "plenangiou": ["weiter unten"], "plenanor": ["weiter aussen"], "plenansei": ["weiter oben"], "plenanvei": ["weiter drüben"], "plenavànt": ["ausserdem", "daneben", "überdies", "übrigens", "weiter", "weiterhin", "zudem"], "plenàvant": ["ferner", "fernerhin", "fort"], "pletost": ["eher", "im gegenteil", "lieber", "tunlichst", "vielmehr"], "plumf!": ["plumps!"], "nevér?": ["gelt?", "nicht wahr?", "nicht?"], "pocet": ["ganz wenig"], "poranturs": ["sehr hässlich"], "poriras": ["sehr hässlich"], "prazisameing": ["gründlich"], "niegn": ["cf. nign"], "preaz": ["präz"], "pressapoc": ["annähernd", "bald", "beinahe", "etwa", "schätzungsweise", "ungefähr", "zirka"], "prest": ["alsbald", "bald", "demnächst", "beinahe", "fast", "geradezu"], "prig(u)lusadad": ["cf. privlusadad"], "primo": ["erstens"], "prinzipalmeing": ["hauptsächlich", "vornehmlich", "vorzugsweise"], "probablameing": ["aller vermutung nach", "vermutlich", "voraussichtlich", "wahrscheinlich", "wohl"], "professiunalmeing": ["beruflich"], "profundameing": ["tief", "zutiefst"], "propi": ["echt", "eigentlich", "im ernst", "im grunde genommen", "tatsächlich", "ungelogen", "wahrhaft", "wahrhaftig", "wahrlich", "wirklich"], "proporziunalmeing": ["verhältnismässig"], "provisoriameing": ["behelfsmässig"], "publicameing": ["in aller öffentlichkeit", "öffentlich"], "pumf!": ["bums!", "patsch!"], "pumfaditec!": ["bums!", "patsch!"], "pumfati!": ["bums!", "patsch!", "plumps!"], "pumfatitec!": ["plumps!"], "purtagn": ["portein"], "puschmàn": ["übermorgen"], "puspe": ["abermals", "noch einmal", "nochmals", "von neuem", "wieder", "wiederum"], "pussevlameing": ["möglicherweise"], "normalmeing": ["gewöhnlich", "in der regel", "normalerweise"], "otg": ["acht"], "otgànta": ["achtzig"], "noua": ["wo", "wobei", "wohin"], "novagnas": ["nufenen"], "novànta": ["neunzig"], "novtschient": ["neunhundert"], "nuda-": ["cf. (sa)nuda-"], "numnadameing": ["nämlich"], "nun-": ["un-"], "na": ["nein"], "nà": ["her", "herbei", "herüber", "herzu"], "naadagn": ["cf. naadaint"], "naador": ["heraus", "hervor"], "naagiou": ["herab", "herunter"], "naasei": ["herauf"], "nundatgànt": ["trotz", "ungeachtet"], "nundependentameing": ["auf eigene faust", "selbstständig"], "nundubitevlameing": ["unzweifelhaft", "zweifellos", "zweifelsohne"], "nadem": ["am diesseitigen ende"], "nunnezessariameing": ["unnötigerweise"], "nunparageadameing": ["aus dem stegreif"], "nunpreparadameing": ["aus dem stegreif"], "nagliur": ["cf. nigliur"], "nunspitgeadameing": ["jäh", "plötzlich", "unerwartet", "unverhofft", "unversehens", "wider erwarten"], "nutzund": ["gar nichts"], "nu(v)idas": ["ungern", "widerstrebend"], "nanavànt": ["hervor"], "oc": ["cf. ô", "gänserich"], "nanvart": ["cf. nadvart"], "oha!": ["halt!", "schade!"], "betg'olma": ["niemand"], "oltezias": ["himmelhoch", "sehr hoch"], "om": ["angel"], "on": ["letztes jahr", "vor einem jahr", "voriges jahr", "jahr"], "d'otgànt'ons": ["achtzigjährig"], "ona": ["cf. nona"], "onz": ["cf. ànz"], "or": ["hinaus", "cf. (d)or"], "oradem": ["zuäusserst"], "oragionzum": ["zuunterst"], "orantgieu": ["zuäusserst"], "oranzum": ["zuäusserst"], "orasenzum": ["zuoberst"], "orasetschà": ["dort oben"], "oravànttut": ["in erster linie", "vor allem", "vor allen dingen", "zuallererst", "zuerst", "zunächst"], "ordafora": ["aussen", "äusserlich", "draussen", "im freien", "aus dem gedächtnis", "auswendig"], "ordainfer": ["auswärts", "ausserhalb"], "ordamiez": ["aus der mitte heraus"], "ordapar": ["auseinander"], "or(d)avànt": ["im voraus", "von vornherein", "vorab", "voran", "voraus", "vorweg", "zuvor"], "ordiglsen": ["verrückt", "von sinnen"], "ordinariameing": ["gewöhnlich"], "ordlànder": ["daraus", "hieraus"], "ordvart": ["ausnehmend", "ausserordentlich", "äusserst", "besonders", "sehr", "überaus", "ungemein", "unheimlich"], "oriundameing": ["ursprünglich", "von haus aus"], "orlà": ["dort draussen"], "orqua": ["dort draussen", "hier aussen"], "orsut": ["unten hervor"], "ortier": ["ganz am rand draussen"], "ortschà": ["dort draussen"], "l'otr'eanda": ["nächste woche"], "sainz'oter": ["ruhig", "durchaus", "ohne weiteres"], "resalvànt": ["ausgenommen"], "reschen": ["reischen"], "respectiv(ameing)": ["beziehungsweise", "respektive"], "quart(a)": ["vierte(r -s)"], "quarto": ["viertens"], "quasei": ["da oben", "hier hoch"], "quasi": ["quasi", "so gut wie"], "quatermeli": ["viertausend"], "quatertschient": ["vierhundert"], "quatras": ["dadurch", "hierdurch"], "riget": ["cf. riet"], "rihezias": ["steinreich"], "riòlta": ["realta"], "que": ["cf. quegl"], "quegl ": ["dies"], "quel": ["der", "derjenige"], "quella": ["diejenige", "diese hier"], "roten": ["rodels"], "ruassevlameing": ["getrost", "ruhig"], "qua": ["da", "hier", "hierher", "hierhin"], "quaaint": ["dort drinnen", "dort hinein"], "ruma": ["rom"], "runtgaglia": ["rongellen"], "quellacanùn": ["andernfalls"], "quendesch": ["fünfzehn"], "sa-": ["sich"], "que(r)sera": ["heute abend"], "sacapescha": ["selbstverständlich", "allerdings", "selbstverständlich"], "sacarlot!": ["potztausend!"], "sacarment!": ["potztausend!"], "sacarmust!": ["potztausend!"], "saimper": ["cf. semper"], "sainza": ["ohne"], "qui": ["da", "hier", "hierher", "hierhin"], "quiaint": ["dort drinnen", "dort hinein"], "quietameing": ["ruhig"], "salvadi(a)": ["wilde(r)"], "quigiou": ["dort unten", "drunten"], "san": ["cf. sant"], "quinto": ["fünftens"], "quior": ["dort draussen"], "quisei": ["dort oben", "droben"], "saparlot!": ["donnerwetter!", "potztausend!", "sackerlot!"], "saparment!": ["donnerwetter!", "potztausend!", "sackerlot!"], "saparmust!": ["donnerwetter!", "potztausend!", "sackerlot!"], "sapientivameing": ["wissentlich"], "saptgaintameing": ["wissentlich"], "quitordesch": ["vierzehn"], "quivei": ["drüben"], "quotidianameing": ["täglich", "tagtäglich"], "sasez": ["sich selbst"], "satànta": ["siebzig"], "savens": ["häufig", "oft", "oftmals", "so manches mal", "vielfach", "vielmals"], "(vu)ler": ["mögen"], "radulf": ["rudolf"], "rariras": ["sehr selten"], "razén": ["rhäzüns"], "quagiou": ["da unten"], "regularmeing": ["regelmässig"], "quànt": ["in welchem mass", "wie sehr"], "relativameing": ["einigermassen", "verhältnismässig"], "repetidameing": ["mehrfach", "wiederholt"], "seat": ["sieben"], "seatmeli": ["siebentausend"], "seattschient": ["siebenhundert"], "secundo": ["zweitens"], "sed": ["cf. se"], "sedatgieu!": ["kopf hoch!"], "sedesch": ["sechzehn"], "sedretg": ["aufrecht", "aufrichtig"], "seglias": ["sils"], "seglmains": ["immerhin", "mindestens", "wenigstens", "zumindest"], "seglple": ["höchstens", "längstens", "wenn es hochkommt"], "segneret!": ["oh weh!"], "sei": ["empor", "herauf", "hinauf"], "sei!": ["los!"], "seiadaint": ["hinauf und hinein"], "selà": ["dort oben"], "semplameing": ["cf. semblameing"], "senaque": ["cf. senaquegl"], "senzum": ["obenan", "obenauf", "obendrauf", "zuoberst"], "sequa": ["da oben", "hier oben"], "seriusameing": ["ernsthaft", "ernstlich"], "sessur": ["darauf", "darüber"], "sesura": ["oben"], "setschà": ["dort oben"], "sexto": ["sechstens"], "sfurzadameing": ["gezwungenermassen", "notgedrungen", "widerstrebend", "zwangsweise"], "sgarschevlameing": ["schrecklich"], "sgu(r)salar": ["cf. scursalar"], "si(a)tada": ["cf. sagitada"], "siatar": ["cf. sagitar"], "siir(ameing)": ["freilich", "sicher", "sicherlich"], "sila!": ["lockruf für ziegen"], "simultanameing": ["dabei", "dazu", "gleichzeitig", "zugleich", "zur gleichen zeit"], "scha": ["falls", "insofern als", "sofern", "wenn", "ob"], "sinzerameing": ["aufrichtig", "geradeheraus", "unverblümt"], "sismeli": ["sechstausend"], "sissànta": ["sechzig"], "sistschient": ["sechshundert"], "son(a)!": ["willkommen!"], "schaglioc": ["cf. schiglio(c)"], "speartezias": ["rasant"], "speartiras": ["sehr schnell"], "sper": ["ganz nahe bei", "nächst", "neben"], "speras": ["cf. (da)speras"], "sperasvei": ["cf. (da)sperasvei"], "spessaglias": ["sehr dicht"], "spessiras": ["sehr dicht"], "spezialmeing": ["besonders", "insbesondere", "namentlich", "speziell"], "spiraintameing": ["ausschliesslich", "rein"], "schamùn": ["simon"], "spleia": ["splügen"], "sporadicameing": ["sporadisch"], "squarzas": ["cf. (an)squarzas"], "squarzmàn": ["überübermorgen"], "squarzon": ["vorvorletztes jahr"], "statisticameing": ["statistisch"], "scharons": ["scharans"], "steafen": ["stephan"], "stgiraglias": ["pechfinster", "sehr dunkel", "stockdunkel", "stockfinster"], "sched": ["scheid"], "stop!": ["halt!", "stopp!"], "straordinariameing": ["aussergewöhnlich", "überaus"], "stretgiras": ["eng anliegend", "hauteng"], "strusch": ["kaum", "notdürftig", "schwerlich"], "schenev": ["neunzehn"], "stupent!": ["fein!"], "suaintermàn": ["der reihe nach"], "schi": ["cf. (a)schi"], "suczessivameing": ["fortlaufend"], "schi(a)navànt": ["cf. (a)schi(a)navànt"], "suletameing": ["allein", "ausschliesslich", "bloss", "einzig", "lediglich", "nur"], "[sumagliàntameing]": ["samagliàntameing"], "superfizialmeing": ["obenhin", "oberflächlich"], "suplementarmeing": ["nachträglich"], "suranà": ["darüber her", "oben herüber"], "surangiou": ["darüber hinab"], "suranstearzas": ["vor drei tagen", "vorvorgestern"], "suravei": ["darüber hinweg", "oben hinüber"], "surmasiradameing": ["übermässig", "zur genüge"], "suron": ["das ganze jahr über", "das jahr durch"], "suror": ["darüber hinaus", "flüchtig", "oben hinaus", "obenaus", "obenhin", "oberflächlich"], "suroragiou": ["darüber hinaus und nach unten"], "suroravei": ["obenhin", "oberflächlich"], "surpuschmàn": ["überübermorgen"], "surtut": ["besonders", "in erster linie", "insbesondere", "namentlich", "überwiegend", "vor allem", "vor allen dingen", "vornehmlich", "vorzugsweise"], "survart": ["darüber", "oben"], "schigea": ["cf. schagea"], "sutnà": ["unten herüber"], "sutor": ["unten heraus", "unten hinaus"], "sutsura": ["drunter und drüber", "durcheinander", "verkehrt"], "sutvart": ["darunter befindlich", "unten"], "sutvei": ["darunter hinweg"], "schizund": ["gar", "selbst", "sogar"], "schlarigna": ["celerina"], "[scadegn(a)]": ["alle", "ein jeder", "jede(r -s)", "jedermann"], "scadiola": ["tasse"], "schnu(v)ar": ["cf. (da)schnu(v)ar"], "schon": ["bereits"], "tutaveia": ["schon"], "schotg": ["achtzehn"], "sco": ["cf. co", "als", "wie"], "scodangir": ["gewissermassen", "gleichsam", "quasi", "sozusagen"], "trainta": ["dreissig"], "tràn": ["trans"], "trànter": ["zwischen"], "trànteraint": ["darunter", "dazwischen", "zwischendurch"], "tras": ["hindurch", "durch"], "trasor": ["andauernd", "beständig", "dauernd", "die ganze zeit", "durchgehend", "fortgesetzt", "fortwährend", "immerfort", "immerzu", "ständig", "unablässig", "unaufhörlich", "ununterbrochen"], "travasev-": ["cf. travazev-"], "tredesch": ["dreizehn"], "tregn": ["trin"], "tremeli": ["dreitausend"], "tretschient": ["dreihundert"], "talmeing": ["derart", "dergestalt", "dermassen", "so, so sehr"], "tscha": ["dahin", "dort"], "tschiaint": ["dort drinnen", "ganz weit hinten"], "tschaaint": ["dort hinein"], "tschàgiou": ["dort unten"], "taluisa": ["so sehr"], "tschaor": ["dort draussen"], "tschasei": ["dort oben"], "tschavei": ["dort drüben"], "tscheart(a)s": ["einige", "gewisse"], "tscheartegns": ["gewisse leute"], "tschegl": ["jenes"], "tschell'eanda": ["vorige woche"], "tschentgmeli": ["fünftausend"], "tschentgtschient": ["fünfhundert"], "tschessa!": ["zurück!"], "tschient": ["einhundert", "hundert"], "tschientmeli": ["hunderttausend"], "tschigiou": ["weit unten"], "tschior": ["(ganz) weit draussen"], "tschisei": ["weit oben"], "tschuc!": ["lockruf für schweine"], "tschucel!": ["lockruf für schweine"], "tschufareias": ["sehr schmutzig"], "tschui!": ["lockruf für schweine"], "tschuncànta": ["fünfzig"], "tschupegna": ["tschappina"], "tschuta!": ["lockruf für schafe"], "tschuti!": ["lockruf für schafe"], "tamegn": ["tamins"], "tugi": ["andauernd", "den ganzen tag", "ständig"], "tumasch": ["thomas"], "tumegl": ["tomils"], "tùndatschiel!": ["potztausend!"], "turitg": ["zürich"], "turté": ["cf. turteia"], "tusàn": ["thusis"], "tutanegna": ["auf einmal", "knall und fall", "mit einem mal", "plötzlich", "sprunghaft", "unversehens", "zumal"], "tutegna": ["einerlei", "einerlei", "dennoch", "dessen ungeachtet", "doch", "gleichwohl", "indessen", "nichtsdestoweniger", "trotzdem"], "tutiglple": ["meist", "meistens"], "u": ["oder"], "ualti": ["reichlich", "ziemlich"], "tànatànt": ["dennoch", "dessen ungeachtet", "doch", "gleichwohl", "nichtsdestoweniger", "trotzdem"], "ufizialmeing": ["offiziell"], "ulteriurameing": ["nachträglich"], "unanimameing": ["einhellig", "einmütig", "einstimmig"], "uon": ["dieses jahr", "heuer"], "ur": ["kante", "rand", "ufer", "umrandung", "einfassung", "saum"], "mintg'ura": ["stündlich"], "d'urezi": ["gewitterig"], "urmagn": ["urmein"], "urschla": ["ursula"], "uss(a)": ["derzeit", "jetzt", "nun", "nunmehr", "zurzeit"], "ust!": ["oh!"], "utro": ["anderswo", "anderswohin", "anderwärts", "woanders", "woandershin"], "tanor": ["entsprechend", "gemäss", "laut", "nach", "zufolge"], "valantegn": ["valentin"], "um": ["mann", "mannsbild", "ehegatte", "ehemann", "gatte", "gemahl"], "var": ["annähernd", "etwa", "schätzungsweise", "ungefähr", "zirka"], "varda-": ["cf. guarda-"], "vargistagn": ["wergenstein"], "varsaquànts": ["einige", "etliche", "gewisse"], "vaz": ["obervaz"], "vedem": ["zuäusserst"], "vedlànder": ["dabei", "daran"], "vedvart": ["gegenüber", "jenseits"], "vei": ["hinüber"], "veiadaint": ["hinein"], "veiador": ["hinaus"], "veiagiou": ["hinunter"], "veiamender": ["immer schlimmer"], "veiasei": ["hinauf"], "veintg": ["zwanzig"], "veintgadus": ["zweiundzwanzig"], "veintgegn": ["einundzwanzig"], "velà": ["dort drüben", "dorthin"], "venavànt": ["ferner", "fernerhin", "fort", "weiterhin"], "vendem": ["zuhinterst"], "venzum": ["zuäusserst"], "verdaque": ["cf. verdaquegl"], "verdò": ["cf. verdà"], "vess": ["mühsam", "schwerlich"], "vetger": ["viktor"], "vetschà": ["dort drüben"], "veulden": ["feldis"], "vevànt": ["ehedem", "ehemals", "einst", "früher", "vormals"], "via": ["via"], "tar": ["cf. tier"], "vidavànt": ["bis auf weiteres", "vorderhand", "vorerst", "vorläufig"], "viena": ["wien"], "viva!": ["gesundheit!", "prosit!", "zum wohl!"], "vivameing": ["lebhaft"], "vizandevlameing": ["gegenseitig"], "vo": ["bachbett", "flussbett", "furt"], "voss": ["eurige(r -s)", "ihrige(r -s)"], "tardezias": ["sehr spät"], "tardiras": ["sehr spät"], "zacarlen!": ["sackerlot!"], "zacarlot!": ["sackerlot!"], "zacarment!": ["sackerlot!"], "zacarmust!": ["sackerlot!"], "zaco": ["cf. (an)zaco"], "zapocura?": ["wer weiss wann?"], "zaquànts": ["cf. (an)zaquànts"], "zatge": ["cf. (an)zatge"], "zatgeet": ["cf. (an)zatgeet"], "zatgi": ["cf. (an)zatgi"], "zelgia": ["cäcilie"], "zev": ["zaun"], "zezras": ["zizers"], "zipert": ["sigisbert"], "ziràn": ["zillis"], "zirca": ["annähernd", "beinahe", "etwa", "rund", "schätzungsweise", "ungefähr", "zirka"], "[tarineias]": ["sehr teuer"], "zund": ["gar", "hochgradig", "höchst", "sehr", "überaus", "unheimlich"], "zupadameing": ["im geheimen", "verstohlen"], "tarteifel!": ["potztausend!"], "t": ["t, t"], "ta": ["dir", "dich"], "t(a)ùndalalata!": ["potztausend!"], "taùnschent!": ["potztausend!"], "tausischent!": ["potztausend!"], "tavo": ["davos"], "tearz(a)": ["dritte(r, -s)"], "tearzon": ["vor zwei jahren", "vorletztes jahr"], "teas": ["cf. tieus"], "tecati!": ["plumps!"], "tei": ["du", "cf. te"], "tablag-": ["cf. tavlag-"], "terzio": ["drittens"], "tac!": ["plumps!"], "tgasper": ["kaspar"], "tgau!": ["ciao!", "tschüss!"], "tgav-": ["cf. cav-"], "tgazas": ["cazis"], "tge": ["was"], "tgenegn(a)": ["was für eine(r -s)"], "tgi": ["wer", "welche(r -s)", "wen", "dir"], "tgissà!": ["wer weiss!"], "tieni": ["anton"], "tacticameing": ["taktisch"], "tieus": ["dein, deine"], "tieudieu!": ["ach gott!"], "tocen": ["cf. (an)tocen"], "totalmeing": ["ganz", "ganz und gar", "gänzlich", "insgesamt", "restlos", "vollends", "völlig", "vollkommen", "vollständig", "zutiefst"], "profitar": ["profitieren"], "restructurar": ["umbauen"], "veiadaple": ["immer mehr"], "consonànza": ["gleichspiel"], "acumpagnear": ["begleiten"], "sainz'interrupziùn": ["durchgehend"], "nuninterrutameing": ["durchgehend"], "dismeter": ["aufheben"], "s'andinar": ["hartnäckig ein ziel verfolgen", "ausdauer zeigen", "ausdauernd sein", "sich bemühen"], "qual": ["schirànca"], "plage": ["schirànca"], "quälerei": ["schirànca"], "quälen": ["far schiràncas"], "dispes": ["trotz"], "sfirar": ["verunfallen", "verunglücken"], "sasfirar": ["verunglücken", "verunfallen"], "davànttier": ["davor", "vorn"], "saparstgisar": ["sich entschuldigen"], "odiar": ["hassen"], "distrer": ["ablenken"], "prevasevlameing": ["voraussichtlich", "aller voraussicht nach"], "i": ["sie (unbest. anzahl personen)"], "ebraic": ["hebräisch"], "bosnia": ["bosnien"], "intscheart": ["ungewiss"], "casàn": ["zum haus gehörend", "hauswirtschaftlich, haus-"], "influenztgear": ["beeinflussen"], "orase": ["hinauf nach", "oben in"], "perzepir": ["wahrnehmen"], "distinguer": ["auseinanderhalten", "differenzieren", "auszeichnen (hervorheben)", "erkennen (unterscheiden)", "trennen (unterscheiden)"], "sadistinguer": ["hervorragen", "hervorstechen", "hervortreten", "sich herausheben", "sich auszeichnen"], "evapurar": ["verdunsten, verdampfen"], "contagius": ["ansteckend"], "aschinumno": ["sogenannt"], "saspearder": ["sich verlieren"], "exclamar": ["ausrufen"], "giotschà": ["dort unten"], "oraselà": ["dort oben"], "oragiolà": ["dort unten"], "oragiotschà": ["dort unten"], "aintaselà": ["dort oben"], "aintasetschà": ["dort oben"], "aintagiolà": ["dort unten"], "aintagiotschà": ["dort unten"], "aintasequa": ["hier oben"], "aintagioqua": ["hier unten"], "oragioqua": ["hier unten"], "orasequa": ["hier oben"], "partscheart": ["bestimmt"], "pandemeia": ["pandemie"], "sensum": ["zuoberst"], "tscharvalo": ["gestört"], "boldiras": ["sehr früh"], "gravànt": ["gravierend"], "schnorclar": ["schnorcheln"], "par'n'ea(da)": ["erstmal", "vorläufig"], "suc": ["saft"], "anbutigliear": ["abfüllen, in eine flasche füllen"], "plenanavos": ["weiter hinten", "weiter nach hinten"], "scogngi": ["wie man sagt"], "tschessar": ["nachgeben", "zurückgehen", "abklingen", "(zurück-)weichen", "nachlassen", "sich legen", "abflauen"], "patitschus": ["verschwenderisch"], "captivànt": ["fesselnd"], "coronavirus": ["coronavirus"], "catalugna": ["katalonien"], "fimatsch": ["wasserfall, sprühregen"], "obstacel": ["hindernis"], "adaquella": ["so, dazu, soweit"], "digl": ["von dem (vom)"], "ella": ["sie"], "pigl": ["für den"], "betga": ["nicht"], "ad": ["an"], "an": ["in"], "dad ": ["von"], "giut": ["gerstenkorn"], "magnascola": ["schulleiter"], "tgavorgia": ["schlucht"], "ved(a)": ["an"], "antras": ["durch"], "magnafatschenda": ["geschäftsführer"], "sez": ["selber", "selbst"], "lur": ["ihr"], "mievleztga": ["milde"], "diferenza": ["unterschied"], "moderatura": ["moderatorin"], "precursur": ["vorreiter"], "sieus": ["sein, seine"], "aschi": ["so"], "sagliera": ["sprungbrett"], "cursur": ["curser"], "preferientscha": ["vorzug"], "instrumentalist": ["instrumentalist"], "interessenza": ["interessenz"], "artisan": ["kunsthandwerker"], "planisader": ["planer"], "sustanider": ["unterstützer"], "video": ["video"], "culiamaint": ["verbindung"], "emulsiùn": ["emulsion"], "tgavatur": ["bagger"], "pumicultura": ["obstbau"], "multifariadad": ["vielfalt"], "tarvaschegn": ["bürger"], "gibusset": ["rosenkohl"], "tessin": ["tessin"], "cumpart": ["anteil"], "stoschafagn": ["heuschieber"], "agroturissem": ["agrotourismus"], "posiziunàmaint": ["positionierung"], "finanziamaint": ["finanzierung"], "biodiversitad": ["biodiversität"], "alevatur": ["züchter"], "animatur": ["animateur"], "opiniùn": ["meinung"], "passascha": ["passage"], "sgugiladra": ["jodlerin"], "signalisaziùn": ["signalisierung"], "postanenta": ["posthalterin"], "trambletga": ["angst"], "magistraglia": ["lehrerschaft"], "libretist": ["libretist"], "cunsuprastànt": ["vorstandskollege"], "atempo": ["betagter"], "papetarist": ["papeterist"], "coniferas": ["nadelbäume"], "autodidact": ["autodidakt"], "cooperatur": ["mitwirkender"], "varan": ["waran"], "passlunghista": ["langläuferin"], "passlunghist": ["langläufer"], "furnider": ["lieferant"], "salvatg(a)": ["wilde(r)"], "biolog": ["biologe"], "biologa": ["biologin"], "nobilitad": ["adel"], "scrivànta": ["schriftstellerin"], "coati": ["nasenbär, rüsselbär"], "fufargnear": ["schnuppern"], "cleritad": ["helligkeit, klarheit"], "sfida": ["herausforderung"], "jugoslav": ["jugoslawe"], "curàntavel": ["vierzigster", "vierzigste, vierzigster"], "muffin": ["muffin"], "maiavilla": ["maienfeld"], "edutgeadra": ["erzieherin"], "vicaria": ["vikarin"], "ual": ["bach"], "pignola": ["tännchen"], "pardavànta": ["vorfahrin"], "arveglia": ["erbsen"], "quintet": ["quintett"], "fànt": ["hanfröste"], "fanturi": ["verwirrt"], "infracotschen": ["infrarot"]}
lemmatizer/other_de/rm-vallader.json ADDED
The diff for this file is too large to render. See raw diff
 
lemmatizer/tokenizer.py ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Wrapper for Italian Moses tokenizer to respect rules of
2
+ apostrophe contractions in romansh varieties"""
3
+
4
+ import re
5
+
6
+ from sacremoses import MosesTokenizer
7
+
8
+
9
+ class Rm_Tokenizer:
10
+ def __init__(self, lang: str):
11
+
12
+ self.lang = lang if lang else "unk"
13
+
14
+ assert self.lang in [
15
+ "rm-rumgr",
16
+ "rm-surmiran",
17
+ "rm-sursilv",
18
+ "rm-sutsilv",
19
+ "rm-puter",
20
+ "rm-vallader",
21
+ "unk",
22
+ ]
23
+
24
+ # Add the protected patterns
25
+ if self.lang == "rm-rumgr":
26
+ self.protected = [r"(?<!\w)'ins\b"]
27
+ elif self.lang == "rm-surmiran":
28
+ self.protected = [
29
+ r"(?<!\w)'m\b",
30
+ r"(?<!\w)'l\b",
31
+ r"(?<!\w)'la\b",
32
+ r"(?<!\w)'ns\b",
33
+ r"(?<!\w)'ls\b",
34
+ r"(?<!\w)'las\b",
35
+ ]
36
+ elif self.lang == "rm-sursilv":
37
+ self.protected = [r"(?<!\w)'l\b", r"(?<!\w)'la\b", r"(?<!\w)'las\b"]
38
+ elif self.lang == "rm-sutsilv":
39
+ self.protected = [
40
+ r"(?<!\w)'ign\b",
41
+ r"(?<!\w)'gl\b",
42
+ r"(?<!\w)'igl\b",
43
+ r"(?<!\w)'igls\b",
44
+ ]
45
+ elif self.lang == "rm-puter":
46
+ self.protected = [
47
+ r"(?<!\w)'m\b",
48
+ r"(?<!\w)'l\b",
49
+ r"(?<!\w)'la\b",
50
+ r"(?<!\w)'ns\b",
51
+ r"(?<!\w)'ls\b",
52
+ r"(?<!\w)'las\b",
53
+ r"(?<!\w)'t\b",
54
+ r"(?<!\w)'s\b",
55
+ ]
56
+ elif self.lang == "rm-vallader":
57
+ self.protected = [
58
+ r"(?<!\w)'m\b",
59
+ r"(?<!\w)'l\b",
60
+ r"(?<!\w)'ns\b",
61
+ r"(?<!\w)'ls\b",
62
+ r"(?<!\w)'t\b",
63
+ r"(?<!\w)'s\b",
64
+ ]
65
+ else:
66
+ # unk
67
+ self.protected = [
68
+ r"(?<!\w)'ins\b",
69
+ r"(?<!\w)'m\b",
70
+ r"(?<!\w)'l\b",
71
+ r"(?<!\w)'la\b",
72
+ r"(?<!\w)'ns\b",
73
+ r"(?<!\w)'ls\b",
74
+ r"(?<!\w)'las\b",
75
+ r"(?<!\w)'ign\b",
76
+ r"(?<!\w)'gl\b",
77
+ r"(?<!\w)'igl\b",
78
+ r"(?<!\w)'igls\b",
79
+ r"(?<!\w)'t\b",
80
+ r"(?<!\w)'s\b",
81
+ ]
82
+
83
+ self.base_tokenizer = MosesTokenizer(lang="it")
84
+
85
+ def preprocess_rumgr(self, text):
86
+ """Break up suffixes"""
87
+ text = re.sub(r"([aeiouAEIOU])'ins\b", r"\1 'ins", text)
88
+ return text
89
+
90
+ def preprocess_surmiran(self, text):
91
+ """Break up suffixes"""
92
+ text = re.sub(r"([aeiAEI])'m\b", r"\1 'm", text)
93
+ text = re.sub(r"([aeiAEI])'l\b", r"\1 'l", text)
94
+ text = re.sub(r"([aeiAEI])'la\b", r"\1 'la", text)
95
+ text = re.sub(r"([aeiAEI])'ns\b", r"\1 'ns", text)
96
+ text = re.sub(r"([aeiAEI])'ls\b", r"\1 'ls", text)
97
+ text = re.sub(r"([aeiAEI])'las\b", r"\1 'las", text)
98
+
99
+ return text
100
+
101
+ def preprocess_sursilv(self, text):
102
+ """Break up suffixes"""
103
+ text = re.sub(r"([aeiAEI])'l\b", r"\1 'l", text)
104
+ text = re.sub(r"([aeiAEI])'la\b", r"\1 'la", text)
105
+ text = re.sub(r"([aeiAEI])'las\b", r"\1 'las", text)
106
+
107
+ return text
108
+
109
+ def preprocess_sutsilv(self, text):
110
+ """Break up suffixes"""
111
+ text = re.sub(r"([aâeiouAÂEIOU])'ign\b", r"\1 'ign", text)
112
+ text = re.sub(r"'gl\b", r" 'gl", text)
113
+ text = re.sub(r"([aâeiouAÂEIOU])'igl\b", r"\1 'igl", text)
114
+ text = re.sub(r"([aâeiouAÂEIOU])'igls\b", r"\1 'igls", text)
115
+
116
+ return text
117
+
118
+ def preprocess_puter(self, text):
119
+ """Break up suffixes"""
120
+ text = re.sub(r"'m\b", r" 'm", text)
121
+ text = re.sub(r"'l\b", r" 'l", text)
122
+ text = re.sub(r"'la\b", r" 'la", text)
123
+ text = re.sub(r"'ns\b", r" 'ns", text)
124
+ text = re.sub(r"'ls\b", r" 'ls", text)
125
+ text = re.sub(r"'las\b", r" 'las", text)
126
+ text = re.sub(r"'t\b", r" 't", text)
127
+ text = re.sub(r"'s\b", r" 's", text)
128
+
129
+ return text
130
+
131
+ def preprocess_vallader(self, text):
132
+ """Break up suffixes"""
133
+ text = re.sub(r"'m\b", r" 'm", text)
134
+ text = re.sub(r"'l\b", r" 'l", text)
135
+ text = re.sub(r"'ns\b", r" 'ns", text)
136
+ text = re.sub(r"'ls\b", r" 'ls", text)
137
+ text = re.sub(r"'t\b", r" 't", text)
138
+ text = re.sub(r"'s\b", r" 's", text)
139
+
140
+ return text
141
+
142
+ def tokenize(self, text):
143
+ """Main function for running tokenization"""
144
+ # normalize apos
145
+ text = re.sub("’", "'", text)
146
+ if self.lang == "rm-rumgr":
147
+ text = self.preprocess_rumgr(text)
148
+ elif self.lang == "rm-surmiran":
149
+ text = self.preprocess_surmiran(text)
150
+ elif self.lang == "rm-sursilv":
151
+ text = self.preprocess_sursilv(text)
152
+ elif self.lang == "rm-sutsilv":
153
+ text = self.preprocess_sutsilv(text)
154
+ elif self.lang == "rm-puter":
155
+ text = self.preprocess_puter(text)
156
+ elif self.lang == "rm-vallader":
157
+ text = self.preprocess_vallader(text)
158
+ else:
159
+ # Idiom unknown; aggressively break apart suffixes and tokenize the result
160
+ text = self.preprocess_rumgr(text)
161
+ text = self.preprocess_surmiran(text)
162
+ text = self.preprocess_sursilv(text)
163
+ text = self.preprocess_sutsilv(text)
164
+ text = self.preprocess_puter(text)
165
+ text = self.preprocess_vallader(text)
166
+
167
+ return self.base_tokenizer.tokenize(
168
+ text,
169
+ protected_patterns=self.protected,
170
+ escape=False,
171
+ aggressive_dash_splits=False,
172
+ )
lemmatizer/utils.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from enum import Enum
2
+ from frozendict import frozendict
3
+
4
+ # Map UniMorph features to categories
5
+ FEATURE_MAP = {
6
+ # Mood
7
+ "IND": ("Mood", "IND"),
8
+ "SBJV": ("Mood", "SBJV"),
9
+ "COND": ("Mood", "COND"),
10
+ "IMP": ("Mood", "IMP"),
11
+ # Tense
12
+ "PRS": ("Tense", "PRS"),
13
+ "PST": ("Tense", "PST"),
14
+ "FUT": ("Tense", "FUT"),
15
+ # Aspect
16
+ "IPFV": ("Aspect", "IPFV"),
17
+ # Finiteness
18
+ "NFIN": ("Finiteness", "NFIN"),
19
+ # Verb forms
20
+ "V.PTCP": ("VerbForm", "PTCP"),
21
+ # Person
22
+ "1": ("Person", "1"),
23
+ "2": ("Person", "2"),
24
+ "3": ("Person", "3"),
25
+ # Number
26
+ "SG": ("Number", "SG"),
27
+ "PL": ("Number", "PL"),
28
+ # Gender
29
+ "MASC": ("Gender", "MASC"),
30
+ "FEM": ("Gender", "FEM"),
31
+ "NEUT": ("Gender", "NEUT"),
32
+ }
33
+
34
+
35
+ class Idiom(Enum):
36
+ RUMGR = "rm-rumgr"
37
+ SURSILV = "rm-sursilv"
38
+ SUTSILV = "rm-sutsilv"
39
+ SURMIRAN = "rm-surmiran"
40
+ PUTER = "rm-puter"
41
+ VALLADER = "rm-vallader"
42
+
43
+
44
+ def get_features(feat):
45
+ """Format and categorize UniMorph features for MorphAnalysis"""
46
+ if feat:
47
+ feat = feat.split(";")
48
+ if "ADJ" in feat:
49
+ return frozendict({"PoS": "ADJ", "Gender": feat[1], "Number": feat[-1]})
50
+ if "N" in feat:
51
+ return frozendict({"PoS": "N", "Gender": feat[1], "Number": feat[-1]})
52
+
53
+ f = {"PoS": "V"}
54
+ for part in feat:
55
+ if part in FEATURE_MAP:
56
+ category, value = FEATURE_MAP[part]
57
+ f[category] = value
58
+ return frozendict(f)
59
+
60
+ return None