Michal commited on
Commit
2930bce
·
verified ·
1 Parent(s): 721f6f6

Upload folder using huggingface_hub

Browse files
README.md ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-sa-4.0
3
+ language:
4
+ - te
5
+ tags:
6
+ - dependency-parsing
7
+ - combo
8
+ - universal-dependencies
9
+ datasets:
10
+ - universal_dependencies
11
+ model-name: Combo Nlp Xlm Roberta Base Telugu Mtg Ud2.17
12
+ pipeline_tag: token-classification
13
+ ---
14
+
15
+ # COMBO-NLP Model for Telugu
16
+
17
+ ## Model Description
18
+
19
+ This is a Telugu-language model based on [COMBO-NLP](https://gitlab.clarin-pl.eu/syntactic-tools/combo-nlp), an open-source natural language preprocessing system. It performs:
20
+
21
+ - sentence segmentation (via [LAMBO](https://gitlab.clarin-pl.eu/syntactic-tools/lambo))
22
+ - tokenisation (via [LAMBO](https://gitlab.clarin-pl.eu/syntactic-tools/lambo))
23
+ - part-of-speech tagging
24
+ - morphological analysis
25
+ - lemmatisation
26
+ - dependency parsing
27
+
28
+ The Telugu model uses ``FacebookAI/xlm-roberta-base`` as its base encoder and is trained on [UD_Telugu-MTG](https://github.com/UniversalDependencies/UD_Telugu-MTG) (UD v2.17).
29
+
30
+ ## Evaluation
31
+
32
+ Evaluation was performed on the UD_Telugu-MTG test split using the standard [CoNLL 2018 eval script](https://universaldependencies.org/conll18/conll18_ud_eval.py).
33
+
34
+ Two evaluation rows are reported:
35
+ - **Full-text (F1)**: raw text is segmented by [LAMBO](https://gitlab.clarin-pl.eu/syntactic-tools/lambo), then parsed and compared against gold — measures end-to-end pipeline performance including segmentation quality.
36
+ - **Aligned accuracy**: accuracy on correctly segmented (aligned) tokens — measures parsing quality on tokens that were correctly identified by the segmenter.
37
+
38
+ ### Morphosyntactic Tagging
39
+
40
+ | Metric | Tokens | Sentences | Words | UPOS | XPOS | UFeats | AllTags | Lemmas |
41
+ | ------ | ------ | --------- | ----- | ---- | ---- | ------ | ------- | ------ |
42
+ | Full-text (F1) | 99.79 | 96.60 | 99.79 | 94.94 | 94.80 | 98.96 | 94.66 | 99.79 |
43
+ | Aligned accuracy | 0.00 | 0.00 | 0.00 | 95.14 | 95.00 | 99.17 | 94.86 | 100.00 |
44
+
45
+ ### Dependency Parsing
46
+
47
+ | Metric | UAS | LAS | CLAS | MLAS | BLEX |
48
+ | ------ | --- | --- | ---- | ---- | ---- |
49
+ | Full-text (F1) | 91.61 | 84.13 | 80.76 | 77.33 | 80.76 |
50
+ | Aligned accuracy | 91.81 | 84.31 | 80.92 | 77.48 | 80.92 |
51
+
52
+
53
+ ## Usage
54
+
55
+ Install the library from PyPI (assuming you have a virtual environment created):
56
+
57
+ ```bash
58
+ pip install combo-nlp
59
+ ```
60
+
61
+ Install the Lambo segmenter - only needed when passing raw text strings to COMBO:
62
+
63
+ ```bash
64
+ pip install --index-url https://pypi.clarin-pl.eu/ lambo
65
+ ```
66
+
67
+ ```python
68
+ from combo import COMBO
69
+
70
+ # Load a pre-trained model with corresponding Lambo segmenter
71
+ nlp = COMBO("Telugu")
72
+
73
+ # Parse raw text (handles sentence splitting + tokenization)
74
+ result = nlp("వేగవంతమైన గోధుమ రంగు నక్క సోమరి కుక్క మీదుగా దూకుతుంది.")
75
+
76
+ # Inspect results
77
+ for sentence in result:
78
+ for token in sentence:
79
+ print(f"{token.form:<15} {token.lemma:<15} {token.upos:<8} head={token.head} {token.deprel}")
80
+ ```
81
+
82
+ Refer to the COMBO-NLP documentation for installation and usage instructions:
83
+
84
+ - [https://gitlab.clarin-pl.eu/syntactic-tools/combo-nlp](https://gitlab.clarin-pl.eu/syntactic-tools/combo-nlp)
85
+ - [https://gitlab.clarin-pl.eu/syntactic-tools/lambo](https://gitlab.clarin-pl.eu/syntactic-tools/lambo)
86
+
87
+ ## Citation
88
+
89
+ <!--
90
+ ```bibtex
91
+ @misc{combo_nlp_2026,
92
+ title = {COMBO-NLP Models Trained on UD v2.17},
93
+ author = {Ulewicz, Michał and Jabłońska, Maja and Klimaszewski, Mateusz and Przybyła, Piotr and Pszenny, Łukasz and Rybak, Piotr and Wiącek, Martyna and Wróblewska, Alina},
94
+ year = {2026},
95
+ howpublished = {\url{https://huggingface.co/collections/clarin-pl/combo-ud-217-models}}
96
+ }
97
+ ```
98
+ -->
99
+
100
+ ## Resources
101
+
102
+ - COMBO-NLP: [https://gitlab.clarin-pl.eu/syntactic-tools/combo-nlp](https://gitlab.clarin-pl.eu/syntactic-tools/combo-nlp)
103
+ - LAMBO: [https://gitlab.clarin-pl.eu/syntactic-tools/lambo](https://gitlab.clarin-pl.eu/syntactic-tools/lambo)
104
+ - UD_Telugu-MTG: [https://github.com/UniversalDependencies/UD_Telugu-MTG](https://github.com/UniversalDependencies/UD_Telugu-MTG)
105
+
config.json ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": {
3
+ "use_lora": false,
4
+ "lora_r": 64,
5
+ "lora_alpha": 128,
6
+ "lora_dropout": 0.05,
7
+ "lora_target_modules": [
8
+ "query",
9
+ "key",
10
+ "value",
11
+ "output.dense"
12
+ ],
13
+ "arc_hidden_dim": 256,
14
+ "rel_hidden_dim": 128,
15
+ "char_embed_dim": 300,
16
+ "max_char_len": 50,
17
+ "dropout": 0.1,
18
+ "lemma_input_proj_dim": 32,
19
+ "lemma_input_proj_dropout": 0.25,
20
+ "lemma_cnn_filters": [
21
+ 256,
22
+ 256,
23
+ 256
24
+ ],
25
+ "lemma_cnn_kernel_sizes": [
26
+ 3,
27
+ 3,
28
+ 3,
29
+ 1
30
+ ],
31
+ "lemma_cnn_dilations": [
32
+ 1,
33
+ 2,
34
+ 4,
35
+ 1
36
+ ],
37
+ "lemma_cnn_paddings": [
38
+ 1,
39
+ 2,
40
+ 4,
41
+ 0
42
+ ],
43
+ "morpho_weight": 1.0,
44
+ "feats_weight": 3.0,
45
+ "arc_weight": 1.0,
46
+ "rel_weight": 1.0,
47
+ "lemma_weight": 1.5,
48
+ "use_uncertainty_weighting": false,
49
+ "morpho_to_lemma_proj_dim": 64,
50
+ "lemma_beam_width": 5,
51
+ "use_lemma_beam_search": true,
52
+ "use_morpho_constraints": true,
53
+ "base_model": "FacebookAI/xlm-roberta-base",
54
+ "num_upos": 16,
55
+ "num_xpos": 16,
56
+ "feat_vocab_sizes": {
57
+ "NumType": 3
58
+ },
59
+ "feat_categories": [
60
+ "NumType"
61
+ ],
62
+ "num_deprels": 41,
63
+ "char_vocab_size": 90
64
+ },
65
+ "max_length": 512
66
+ }
encoders/char_vocab.json ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "char_to_id": {
3
+ "<PAD>": 0,
4
+ "<UNK>": 1,
5
+ "<SOS>": 2,
6
+ "<EOS>": 3,
7
+ "\u0c1a": 4,
8
+ "\u0c42": 5,
9
+ "\u0c38": 6,
10
+ "\u0c47": 7,
11
+ "\u0c30": 8,
12
+ "\u0c3e": 9,
13
+ "\u0c05": 10,
14
+ "\u0c02": 11,
15
+ "\u0c21": 12,
16
+ "\u0c40": 13,
17
+ "?": 14,
18
+ "\u0c0e": 15,
19
+ "\u0c15": 16,
20
+ "\u0c4d": 17,
21
+ "\u0c3f": 18,
22
+ "\u0c35": 19,
23
+ "\u0c46": 20,
24
+ "\u0c33": 21,
25
+ "\u0c24": 22,
26
+ "\u0c41": 23,
27
+ "\u0c28": 24,
28
+ "\u0c2a": 25,
29
+ "\u0c4b": 26,
30
+ "\u0c2f": 27,
31
+ "\u0c2e": 28,
32
+ "\u0c1f": 29,
33
+ "\u0c26": 30,
34
+ "\u0c08": 31,
35
+ "\u0c2c": 32,
36
+ "\u0c27": 33,
37
+ "\u0c07": 34,
38
+ "!": 35,
39
+ "\u0c32": 36,
40
+ "\u0c37": 37,
41
+ "\u0c23": 38,
42
+ "\u0c09": 39,
43
+ ".": 40,
44
+ ",": 41,
45
+ "\u0c17": 42,
46
+ "\u0c06": 43,
47
+ "\u0c0f": 44,
48
+ "\u0c39": 45,
49
+ "\u0c36": 46,
50
+ "\u0c1c": 47,
51
+ "\u0c0a": 48,
52
+ "\u0c4a": 49,
53
+ "\u0c2d": 50,
54
+ "\u0c20": 51,
55
+ "\u0c12": 52,
56
+ "\u0c2b": 53,
57
+ "\"": 54,
58
+ "\u0c48": 55,
59
+ "\u0c16": 56,
60
+ "\u0c43": 57,
61
+ "(": 58,
62
+ ")": 59,
63
+ "\u0c25": 60,
64
+ "\u0c14": 61,
65
+ "\u0c1d": 62,
66
+ "\u0c10": 63,
67
+ "\u0c4c": 64,
68
+ "-": 65,
69
+ "r": 66,
70
+ "a": 67,
71
+ "m": 68,
72
+ "u": 69,
73
+ "c": 70,
74
+ "e": 71,
75
+ "s": 72,
76
+ "i": 73,
77
+ "n": 74,
78
+ "p": 75,
79
+ "T": 76,
80
+ "k": 77,
81
+ "o": 78,
82
+ "N": 79,
83
+ "D": 80,
84
+ "l": 81,
85
+ "\u0c13": 82,
86
+ ":": 83,
87
+ ";": 84,
88
+ "\u0c1e": 85,
89
+ "\u0c18": 86,
90
+ "w": 87,
91
+ "E": 88,
92
+ "g": 89
93
+ },
94
+ "max_len": 50
95
+ }
encoders/deprel_encoder.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "label_to_id": {
3
+ "<PAD>": 0,
4
+ "<UNK>": 1,
5
+ "root": 2,
6
+ "discourse": 3,
7
+ "punct": 4,
8
+ "obl": 5,
9
+ "obl:tmod": 6,
10
+ "case": 7,
11
+ "nsubj": 8,
12
+ "det": 9,
13
+ "advcl": 10,
14
+ "nmod:poss": 11,
15
+ "obj": 12,
16
+ "compound:svc": 13,
17
+ "nmod": 14,
18
+ "nummod": 15,
19
+ "advmod": 16,
20
+ "conj": 17,
21
+ "nsubj:nc": 18,
22
+ "cc": 19,
23
+ "compound": 20,
24
+ "amod": 21,
25
+ "vocative": 22,
26
+ "parataxis": 23,
27
+ "obl:cmp": 24,
28
+ "compound:lvc": 25,
29
+ "ccomp": 26,
30
+ "mark": 27,
31
+ "iobj": 28,
32
+ "xcomp": 29,
33
+ "acl:relcl": 30,
34
+ "csubj": 31,
35
+ "acl": 32,
36
+ "flat": 33,
37
+ "orphan": 34,
38
+ "advcl:cond": 35,
39
+ "compound:redup": 36,
40
+ "dislocated": 37,
41
+ "obl:cau": 38,
42
+ "list": 39,
43
+ "nmod:tmod": 40
44
+ }
45
+ }
encoders/morpho_encoder.json ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "upos": {
3
+ "label_to_id": {
4
+ "<PAD>": 0,
5
+ "<UNK>": 1,
6
+ "VERB": 2,
7
+ "PART": 3,
8
+ "PUNCT": 4,
9
+ "NOUN": 5,
10
+ "PRON": 6,
11
+ "PROPN": 7,
12
+ "ADP": 8,
13
+ "DET": 9,
14
+ "NUM": 10,
15
+ "ADV": 11,
16
+ "CCONJ": 12,
17
+ "ADJ": 13,
18
+ "INTJ": 14,
19
+ "SCONJ": 15
20
+ }
21
+ },
22
+ "xpos": {
23
+ "label_to_id": {
24
+ "<PAD>": 0,
25
+ "<UNK>": 1,
26
+ "VERB": 2,
27
+ "PART": 3,
28
+ "PUNCT": 4,
29
+ "NOUN": 5,
30
+ "PRON": 6,
31
+ "PROPN": 7,
32
+ "ADP": 8,
33
+ "DET": 9,
34
+ "NUM": 10,
35
+ "ADV": 11,
36
+ "CCONJ": 12,
37
+ "ADJ": 13,
38
+ "INTJ": 14,
39
+ "SCONJ": 15
40
+ }
41
+ },
42
+ "feat_categories": [
43
+ "NumType"
44
+ ],
45
+ "feats": {
46
+ "NumType": {
47
+ "label_to_id": {
48
+ "<PAD>": 0,
49
+ "<UNK>": 1,
50
+ "Card": 2
51
+ }
52
+ }
53
+ },
54
+ "valid_feat_vectors": {
55
+ "2": [
56
+ [
57
+ 0
58
+ ]
59
+ ],
60
+ "3": [
61
+ [
62
+ 0
63
+ ]
64
+ ],
65
+ "4": [
66
+ [
67
+ 0
68
+ ]
69
+ ],
70
+ "5": [
71
+ [
72
+ 0
73
+ ]
74
+ ],
75
+ "6": [
76
+ [
77
+ 0
78
+ ]
79
+ ],
80
+ "7": [
81
+ [
82
+ 0
83
+ ]
84
+ ],
85
+ "8": [
86
+ [
87
+ 0
88
+ ]
89
+ ],
90
+ "9": [
91
+ [
92
+ 0
93
+ ]
94
+ ],
95
+ "10": [
96
+ [
97
+ 2
98
+ ]
99
+ ],
100
+ "11": [
101
+ [
102
+ 0
103
+ ]
104
+ ],
105
+ "12": [
106
+ [
107
+ 0
108
+ ]
109
+ ],
110
+ "13": [
111
+ [
112
+ 0
113
+ ]
114
+ ],
115
+ "14": [
116
+ [
117
+ 0
118
+ ]
119
+ ],
120
+ "15": [
121
+ [
122
+ 0
123
+ ]
124
+ ]
125
+ }
126
+ }
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8d08c81263bfa552bad8b54fa3220b6f823e5eb5310417c03e26fe3f986ad2f
3
+ size 1129825247