First full version of the models
Browse files- .gitattributes +18 -0
- code/create_fasttext_data.py +39 -0
- code/create_models.py +10 -0
- code/create_tatoeba_data.py +36 -0
- code/prepare_data.sh +23 -0
- code/test_models.py +145 -0
- data/test.csv +3 -0
- data/test.txt +3 -0
- data/test_all.csv +3 -0
- data/test_all.txt +3 -0
- data/test_tatoeba.csv +3 -0
- data/test_tatoeba.txt +3 -0
- data/train.csv +3 -0
- data/train.txt +3 -0
- data/train_all.csv +3 -0
- data/train_all.txt +3 -0
- data/train_tatoeba.csv +3 -0
- data/train_tatoeba.txt +3 -0
- data/validation.csv +3 -0
- data/validation.txt +3 -0
- data/validation_all.csv +3 -0
- data/validation_all.txt +3 -0
- data/validation_tatoeba.csv +3 -0
- data/validation_tatoeba.txt +3 -0
- nordic-lid.159.bin +3 -0
- nordic-lid.bin +3 -0
- scores.md +188 -0
.gitattributes
CHANGED
@@ -32,3 +32,21 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
35 |
+
data/validation_all.csv filter=lfs diff=lfs merge=lfs -text
|
36 |
+
data/validation_all.txt filter=lfs diff=lfs merge=lfs -text
|
37 |
+
data/validation_tatoeba.csv filter=lfs diff=lfs merge=lfs -text
|
38 |
+
data/test.txt filter=lfs diff=lfs merge=lfs -text
|
39 |
+
data/train.csv filter=lfs diff=lfs merge=lfs -text
|
40 |
+
data/train_tatoeba.csv filter=lfs diff=lfs merge=lfs -text
|
41 |
+
data/test_tatoeba.csv filter=lfs diff=lfs merge=lfs -text
|
42 |
+
data/validation_tatoeba.txt filter=lfs diff=lfs merge=lfs -text
|
43 |
+
data/test_all.csv filter=lfs diff=lfs merge=lfs -text
|
44 |
+
data/test_all.txt filter=lfs diff=lfs merge=lfs -text
|
45 |
+
data/test.csv filter=lfs diff=lfs merge=lfs -text
|
46 |
+
data/validation.csv filter=lfs diff=lfs merge=lfs -text
|
47 |
+
data/test_tatoeba.txt filter=lfs diff=lfs merge=lfs -text
|
48 |
+
data/train_all.csv filter=lfs diff=lfs merge=lfs -text
|
49 |
+
data/train_tatoeba.txt filter=lfs diff=lfs merge=lfs -text
|
50 |
+
data/train_all.txt filter=lfs diff=lfs merge=lfs -text
|
51 |
+
data/train.txt filter=lfs diff=lfs merge=lfs -text
|
52 |
+
data/validation.txt filter=lfs diff=lfs merge=lfs -text
|
code/create_fasttext_data.py
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
import pandas as pd
|
3 |
+
|
4 |
+
|
5 |
+
|
6 |
+
|
7 |
+
train = (pd.concat([pd.read_csv(p, sep="\t", names=["_text", "lang"]) for p in Path("/nfsmounts/datastore/langid2").rglob("*_train.tsv")])
|
8 |
+
.assign(text=lambda x: x["_text"].str[6:].str.strip())
|
9 |
+
.drop("_text", axis=1)
|
10 |
+
.query("'xxx' not in text")
|
11 |
+
.sample(frac=1)
|
12 |
+
.reset_index()
|
13 |
+
.drop('index', axis=1)
|
14 |
+
)
|
15 |
+
validation = (pd.concat([pd.read_csv(p, sep="\t", names=["_text", "lang"]) for p in Path("/nfsmounts/datastore/langid2").rglob("*_dev.tsv")])
|
16 |
+
.assign(text=lambda x: x["_text"].str[6:].str.strip())
|
17 |
+
.drop("_text", axis=1)
|
18 |
+
.query("'xxx' not in text")
|
19 |
+
.sample(frac=1)
|
20 |
+
.reset_index()
|
21 |
+
.drop('index', axis=1)
|
22 |
+
)
|
23 |
+
test = (pd.concat([pd.read_csv(p, sep="\t", names=["_text", "lang"]) for p in Path("/nfsmounts/datastore/langid2").rglob("*_test.tsv")])
|
24 |
+
.assign(text=lambda x: x["_text"].str[6:].str.strip())
|
25 |
+
.drop("_text", axis=1)
|
26 |
+
.query("'xxx' not in text")
|
27 |
+
.sample(frac=1)
|
28 |
+
.reset_index()
|
29 |
+
.drop('index', axis=1)
|
30 |
+
)
|
31 |
+
|
32 |
+
train.to_csv("train.csv", index=False)
|
33 |
+
validation.to_csv("validation.csv", index=False)
|
34 |
+
test.to_csv("test.csv", index=False)
|
35 |
+
|
36 |
+
Path("train.txt").write_text("\n".join(train.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
37 |
+
Path("validation.txt").write_text("\n".join(validation.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
38 |
+
Path("test.txt").write_text("\n".join(test.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
39 |
+
|
code/create_models.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import fasttext
|
2 |
+
|
3 |
+
model = fasttext.train_supervised(input='train.txt', autotuneValidationFile='validation.txt', autotuneDuration=60*60)
|
4 |
+
model.save_model("nordic-lid.bin")
|
5 |
+
print(model.test("test.txt"))
|
6 |
+
|
7 |
+
model_all = fasttext.train_supervised(input='train_all.txt', autotuneValidationFile='validation_all.txt', autotuneDuration=60*60)
|
8 |
+
model_all.save_model("nordic-lid_all.bin")
|
9 |
+
print(model_all.test("test.txt"))
|
10 |
+
print(model_all.test("test_all.txt"))
|
code/create_tatoeba_data.py
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import tarfile
|
2 |
+
from pathlib import Path
|
3 |
+
|
4 |
+
import pandas as pd
|
5 |
+
import requests
|
6 |
+
from sklearn.model_selection import train_test_split
|
7 |
+
|
8 |
+
|
9 |
+
if not Path("sentences.csv").exists():
|
10 |
+
print("Downloading data")
|
11 |
+
link = "http://downloads.tatoeba.org/exports/sentences.tar.bz2"
|
12 |
+
with requests.get(link , stream=True) as rx, tarfile.open(fileobj=rx.raw, mode="r|bz2") as tarobj:
|
13 |
+
tarobj.extractall("./")
|
14 |
+
|
15 |
+
print("Preparing sentences")
|
16 |
+
sents = pd.read_csv("sentences.csv", sep="\t", names=["index", "lang", "text"]).dropna().drop("index", axis=1)
|
17 |
+
sents = sents[sents.lang != "\\N"]
|
18 |
+
sents = sents[sents.groupby("lang")["lang"].transform("size") > 500]
|
19 |
+
sents = sents.groupby("lang").apply(lambda group: group.sample(11_000, replace=True)).droplevel("lang").drop_duplicates()
|
20 |
+
sents = sents.sample(frac=1).reset_index().drop('index', axis=1)
|
21 |
+
lang_count = len(sents.lang.unique())
|
22 |
+
|
23 |
+
print(f"Splitting sentences in {lang_count} languages")
|
24 |
+
train, validation_test = train_test_split(sents, stratify=sents.lang, test_size=0.1)
|
25 |
+
validation, test = train_test_split(validation_test, stratify=validation_test.lang, test_size=0.5)
|
26 |
+
|
27 |
+
print("Writing files")
|
28 |
+
train.to_csv("train_tatoeba.csv", index=False)
|
29 |
+
validation.to_csv("validation_tatoeba.csv", index=False)
|
30 |
+
test.to_csv("test_tatoeba.csv", index=False)
|
31 |
+
|
32 |
+
Path("train_tatoeba.txt").write_text("\n".join(train.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
33 |
+
Path("validation_tatoeba.txt").write_text("\n".join(validation.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
34 |
+
Path("test_tatoeba.txt").write_text("\n".join(test.apply(lambda row: f"__label__{row['lang']} {row['text']}".replace('\n', ' '), axis=1).values))
|
35 |
+
|
36 |
+
print("Done")
|
code/prepare_data.sh
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#wget http://downloads.tatoeba.org/exports/sentences.tar.bz2
|
2 |
+
#bunzip2 sentences.tar.bz2
|
3 |
+
#tar xvf sentences.tar
|
4 |
+
#awk -F"\t" '{print"__label__"$2" "$3}' < sentences.csv | shuf > all.txt
|
5 |
+
#head -3 all.txt
|
6 |
+
#head -n 10000 all.txt > validation_tatoeba.txt
|
7 |
+
#tail -n +10001 all.txt > train_tatoeba.txt
|
8 |
+
|
9 |
+
python create_fasttext_data.py
|
10 |
+
python create_tatoeba_data.py
|
11 |
+
|
12 |
+
cat train*.txt | shuf > train_all.txt
|
13 |
+
cat validation*.txt | shuf > validation_all.txt
|
14 |
+
cat test*.txt | shuf > test_all.txt
|
15 |
+
python <<EOF
|
16 |
+
from pathlib import Path
|
17 |
+
import pandas as pd
|
18 |
+
|
19 |
+
pd.DataFrame.from_records([line[9:].split(" ", 1) for line in Path("train_all.txt").read_text().split("\n") if line], columns=["lang", "text"]).to_csv("train_all.csv", index=False)
|
20 |
+
pd.DataFrame.from_records([line[9:].split(" ", 1) for line in Path("validation_all.txt").read_text().split("\n") if line], columns=["lang", "text"]).to_csv("validation_all.csv", index=False)
|
21 |
+
pd.DataFrame.from_records([line[9:].split(" ", 1) for line in Path("test_all.txt").read_text().split("\n") if line], columns=["lang", "text"]).to_csv("test_all.csv", index=False)
|
22 |
+
|
23 |
+
EOF
|
code/test_models.py
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from collections import defaultdict
|
2 |
+
|
3 |
+
import fasttext
|
4 |
+
import pandas as pd
|
5 |
+
from sklearn.metrics import classification_report
|
6 |
+
from tqdm import tqdm; tqdm.pandas()
|
7 |
+
#!pip install tabulate
|
8 |
+
import io
|
9 |
+
from pathlib import Path
|
10 |
+
import numpy as np
|
11 |
+
import pandas as pd
|
12 |
+
import requests
|
13 |
+
from sklearn.metrics import accuracy_score
|
14 |
+
from sklearn.metrics import classification_report
|
15 |
+
from sklearn.metrics import precision_recall_fscore_support
|
16 |
+
|
17 |
+
|
18 |
+
names = pd.read_csv(
|
19 |
+
io.StringIO(requests.get("https://iso639-3.sil.org/sites/iso639-3/files/downloads/iso-639-3.tab").text
|
20 |
+
), sep="\t").set_index("Id").rename(
|
21 |
+
columns={"Ref_Name": "name"}
|
22 |
+
)[["name"]].to_dict()["name"]
|
23 |
+
tato_names = pd.read_html(
|
24 |
+
"https://tatoeba.org/en/stats/sentences_by_language"
|
25 |
+
)[0].rename(
|
26 |
+
columns={"Unnamed: 2": "code", "Language": "name"}
|
27 |
+
).set_index("code")[["name"]].to_dict()["name"]
|
28 |
+
names.update(tato_names)
|
29 |
+
|
30 |
+
# langs = pd.read_csv("train.csv").lang.unique().tolist()
|
31 |
+
# langs_df = pd.DataFrame({"ISO-639-3": langs}).sort_values("ISO-639-3")
|
32 |
+
# langs_df["Language"] = langs_df["ISO-639-3"].apply(names.__getitem__)
|
33 |
+
# langs_df = langs_df.set_index("ISO-639-3")
|
34 |
+
|
35 |
+
|
36 |
+
def pandas_classification_report(y_true, y_pred, labels=None):
|
37 |
+
metrics_summary = precision_recall_fscore_support(
|
38 |
+
y_true=y_true,
|
39 |
+
y_pred=y_pred,
|
40 |
+
labels=labels)
|
41 |
+
weighted_avg = list(precision_recall_fscore_support(
|
42 |
+
y_true=y_true,
|
43 |
+
y_pred=y_pred,
|
44 |
+
labels=labels,
|
45 |
+
average='weighted'))
|
46 |
+
macro_avg = list(precision_recall_fscore_support(
|
47 |
+
y_true=y_true,
|
48 |
+
y_pred=y_pred,
|
49 |
+
labels=labels,
|
50 |
+
average='macro'))
|
51 |
+
accuracy = [np.nan, np.nan, accuracy_score(y_true=y_true, y_pred=y_pred), np.nan]
|
52 |
+
metrics_sum_index = ['precision', 'recall', 'f1-score', 'support']
|
53 |
+
class_report_df = pd.DataFrame(
|
54 |
+
list(metrics_summary),
|
55 |
+
index=metrics_sum_index,
|
56 |
+
columns=labels)
|
57 |
+
|
58 |
+
support = class_report_df.loc['support']
|
59 |
+
total = support.sum()
|
60 |
+
weighted_avg[-1] = total
|
61 |
+
macro_avg[-1] = total
|
62 |
+
accuracy[-1] = total
|
63 |
+
|
64 |
+
class_report_df['accuracy'] = accuracy
|
65 |
+
class_report_df['weighted avg'] = weighted_avg
|
66 |
+
class_report_df['macro avg'] = macro_avg
|
67 |
+
report = class_report_df.T
|
68 |
+
report["support"] = report["support"].astype(int)
|
69 |
+
return report
|
70 |
+
|
71 |
+
|
72 |
+
scores_text = ""
|
73 |
+
for model_name in ("nordic-lid.bin", "nordic-lid_all.bin"):
|
74 |
+
print(
|
75 |
+
f"""
|
76 |
+
------------
|
77 |
+
{model_name}
|
78 |
+
------------
|
79 |
+
""")
|
80 |
+
model = fasttext.load_model(model_name)
|
81 |
+
|
82 |
+
train = pd.read_csv("train.csv")
|
83 |
+
ddict = defaultdict(lambda: "---")
|
84 |
+
for k in train.lang.unique().tolist():
|
85 |
+
ddict[k] = k
|
86 |
+
|
87 |
+
train["nordic-lid"] = train.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
88 |
+
print("TRAIN")
|
89 |
+
print(model.test("train.txt"))
|
90 |
+
print(classification_report(train["lang"], train["nordic-lid"], digits=4))
|
91 |
+
|
92 |
+
val = pd.read_csv("validation.csv")
|
93 |
+
val["nordic-lid"] = val.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
94 |
+
print("VALIDATION")
|
95 |
+
print(model.test("validation.txt"))
|
96 |
+
print(classification_report(val["lang"], val["nordic-lid"], digits=4))
|
97 |
+
|
98 |
+
test = pd.read_csv("test.csv")
|
99 |
+
test["nordic-lid"] = test.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
100 |
+
print("TEST")
|
101 |
+
print(model.test("test.txt"))
|
102 |
+
print(classification_report(test["lang"], test["nordic-lid"], digits=4))
|
103 |
+
|
104 |
+
if "_all" in model_name:
|
105 |
+
train = pd.read_csv("train_all.csv")
|
106 |
+
ddict = defaultdict(lambda: "---")
|
107 |
+
for k in train.lang.unique().tolist():
|
108 |
+
ddict[k] = k
|
109 |
+
|
110 |
+
train["nordic-lid"] = train.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
111 |
+
print("TRAIN ALL")
|
112 |
+
print(model.test("train_all.txt"))
|
113 |
+
print(classification_report(train["lang"], train["nordic-lid"], digits=4))
|
114 |
+
|
115 |
+
val = pd.read_csv("validation_all.csv")
|
116 |
+
val["nordic-lid"] = val.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
117 |
+
print("VALIDATION ALL")
|
118 |
+
print(model.test("validation_all.txt"))
|
119 |
+
print(classification_report(val["lang"], val["nordic-lid"], digits=4))
|
120 |
+
|
121 |
+
test = pd.read_csv("test_all.csv")
|
122 |
+
test["nordic-lid"] = test.progress_apply(lambda row: ddict[model.predict(row["text"].replace("\n", " "))[0][0][-3:]], axis=1)
|
123 |
+
print("TEST ALL")
|
124 |
+
print(model.test("test_all.txt"))
|
125 |
+
print(classification_report(test["lang"], test["nordic-lid"], digits=4))
|
126 |
+
|
127 |
+
langs = pd.read_csv("train_all.csv").lang.unique().tolist()
|
128 |
+
else:
|
129 |
+
langs = pd.read_csv("train.csv").lang.unique().tolist()
|
130 |
+
|
131 |
+
langs_df = pd.DataFrame({"ISO-639-3": langs}).sort_values("ISO-639-3")
|
132 |
+
langs_df["Language"] = langs_df["ISO-639-3"].apply(names.__getitem__)
|
133 |
+
langs_df = langs_df.set_index("ISO-639-3")
|
134 |
+
|
135 |
+
report_df = pandas_classification_report(test["nordic-lid"], test["lang"], sorted(langs))
|
136 |
+
scores = report_df.join(langs_df)
|
137 |
+
scores.columns = map(str.title, scores.columns)
|
138 |
+
scores.index.name = "ISO-639-3"
|
139 |
+
scores = scores[["Language"] + [col.title() for col in scores.columns if col != "Language"]]
|
140 |
+
scores_text += f"## {model_name}\n\n{scores.reset_index().to_markdown(index=False, floatfmt='.4f')}\n\n"
|
141 |
+
|
142 |
+
print()
|
143 |
+
|
144 |
+
print(scores_text)
|
145 |
+
Path("./scores.md").write_text(scores_text)
|
data/test.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e74990101c32ce2127b5746ddb94aed6fd2a58602dd43d5e0ba258ab9325b1a5
|
3 |
+
size 580011
|
data/test.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:50a7ad73a0065eb0d501c6608a0374148a5af0aacf5f3f558a932e9610985a71
|
3 |
+
size 624477
|
data/test_all.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:2a98db9e35920fbf002bae9195d8006cc63370360001f6ea41090155c70cda2c
|
3 |
+
size 2449952
|
data/test_all.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:73b8c4cc9a757a963b76c7b8e1e15370644a8967ef07237657b25336dda1955a
|
3 |
+
size 2831836
|
data/test_tatoeba.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:630ca5569ae61e8b3a9a525b59cf966cc00520fa2507c0c5e3a589cc5f2c14e0
|
3 |
+
size 1869943
|
data/test_tatoeba.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:05ea1e7d20fc6252e2bc151d20f3be616e6ebf58ae2e043ca983f5d96276e7e7
|
3 |
+
size 2207358
|
data/train.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:beefe8b0a9ba61cf55c9ef0885d36170ea4fb1f8c1487f8c8e131b7f15c598ec
|
3 |
+
size 8483510
|
data/train.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8d82958dfc4736b74801c21b090596d3da3aa60bea4f54d706f71753f1bbe8dd
|
3 |
+
size 9136984
|
data/train_all.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5dbf35164649f49e3f230b54978032b764d364dcb51b7f6f98276039661377f4
|
3 |
+
size 42158820
|
data/train_all.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:74f8c470418d15e87bd6c1ab4f3e40b5838546682d79692463b7f7f275a67914
|
3 |
+
size 48886432
|
data/train_tatoeba.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:06120b49c7dbbd1a63739a30f5fb305a39da8477297768c4374470b508dd70d8
|
3 |
+
size 33675312
|
data/train_tatoeba.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:752a82a66e0002440eb4a035838d69c3cd9294ca28094318a584def7cab4b4dd
|
3 |
+
size 39749447
|
data/validation.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e9d303938403699700be43133e06038b9c0f38954b875337cb29be89b94a39a8
|
3 |
+
size 577673
|
data/validation.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:064db1e9bbf1013a6b505dc1e9c66171ddbfe831f433ebc16a9f1c024c4683a1
|
3 |
+
size 622232
|
data/validation_all.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c16ff730a83e409b494b71b77ebfa0c94498218a9574863b597343c3dd222cd2
|
3 |
+
size 2462876
|
data/validation_all.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:28c998fca8199809f8ac1b387b33de9002422af0f1bd2e6150c85ab2a7df1f71
|
3 |
+
size 2844912
|
data/validation_tatoeba.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:96fc539c28120cc3a98b0a006c2cd36b7f1917987a3c3d6bab7a1c920595c546
|
3 |
+
size 1885205
|
data/validation_tatoeba.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8123f84395ff12491e0b5623fc36b07f977aa935d00e6aedbd5e5857e32336f6
|
3 |
+
size 2222679
|
nordic-lid.159.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:90835f286b3ecd1538b15c8f82a2dd461ecb5614903741767173a2c1ba8e6d48
|
3 |
+
size 747823000
|
nordic-lid.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a65c608ed4f0bfe05694ed75fd7b1643110a215cfd39fbc82a40f3374aaaf26e
|
3 |
+
size 273830875
|
scores.md
ADDED
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
## nordic-lid.bin
|
2 |
+
|
3 |
+
| ISO-639-3 | Language | Precision | Recall | F1-Score | Support |
|
4 |
+
|:-------------|:------------------|------------:|---------:|-----------:|----------:|
|
5 |
+
| dan | Danish | 0.9720 | 0.9838 | 0.9779 | 494 |
|
6 |
+
| eng | English | 0.9980 | 0.9940 | 0.9960 | 502 |
|
7 |
+
| fao | Faroese | 0.9920 | 0.9940 | 0.9930 | 499 |
|
8 |
+
| fin | Finnish | 1.0000 | 1.0000 | 1.0000 | 500 |
|
9 |
+
| isl | Icelandic | 0.9900 | 0.9920 | 0.9910 | 499 |
|
10 |
+
| nno | Norwegian Nynorsk | 0.9920 | 0.9861 | 0.9890 | 503 |
|
11 |
+
| nob | Norwegian Bokmål | 0.9840 | 0.9743 | 0.9791 | 505 |
|
12 |
+
| sma | Southern Sami | 0.9800 | 0.9703 | 0.9751 | 101 |
|
13 |
+
| sme | Northern Sami | 1.0000 | 0.9921 | 0.9960 | 504 |
|
14 |
+
| smj | Lule Sami | 0.9920 | 0.9960 | 0.9940 | 498 |
|
15 |
+
| smn | Inari Sami | 0.9950 | 1.0000 | 0.9975 | 199 |
|
16 |
+
| sms | Skolt Sami | 0.9900 | 0.9950 | 0.9925 | 199 |
|
17 |
+
| swe | Swedish | 0.9860 | 0.9920 | 0.9890 | 497 |
|
18 |
+
| accuracy | nan | nan | nan | 0.9905 | 5500 |
|
19 |
+
| weighted avg | nan | 0.9906 | 0.9905 | 0.9905 | 5500 |
|
20 |
+
| macro avg | nan | 0.9901 | 0.9900 | 0.9900 | 5500 |
|
21 |
+
|
22 |
+
## nordic-lid_all.bin
|
23 |
+
|
24 |
+
| ISO-639-3 | Language | Precision | Recall | F1-Score | Support |
|
25 |
+
|:-------------|:----------------------------|------------:|---------:|-----------:|----------:|
|
26 |
+
| afr | Afrikaans | 0.9476 | 0.9476 | 0.9476 | 191 |
|
27 |
+
| ara | Arabic | 0.9708 | 0.9472 | 0.9588 | 492 |
|
28 |
+
| arq | Algerian Arabic | 0.9478 | 0.9237 | 0.9356 | 118 |
|
29 |
+
| arz | Egyptian Arabic | 0.6316 | 0.7660 | 0.6923 | 47 |
|
30 |
+
| asm | Assamese | 0.9828 | 0.9884 | 0.9856 | 173 |
|
31 |
+
| avk | Kotava | 0.9791 | 0.9894 | 0.9842 | 189 |
|
32 |
+
| aze | Azerbaijani | 0.9707 | 0.9789 | 0.9748 | 237 |
|
33 |
+
| bel | Belarusian | 0.9892 | 0.9733 | 0.9812 | 375 |
|
34 |
+
| ben | Bengali | 0.9872 | 0.9872 | 0.9872 | 235 |
|
35 |
+
| ber | Berber | 0.8881 | 0.8388 | 0.8627 | 577 |
|
36 |
+
| bos | Bosnian | 0.1310 | 0.3333 | 0.1880 | 33 |
|
37 |
+
| bre | Breton | 0.9648 | 0.9786 | 0.9716 | 280 |
|
38 |
+
| bua | Buryat | 0.9111 | 0.9111 | 0.9111 | 45 |
|
39 |
+
| bul | Bulgarian | 0.9597 | 0.9662 | 0.9630 | 444 |
|
40 |
+
| cat | Catalan | 0.9538 | 0.9475 | 0.9507 | 305 |
|
41 |
+
| cbk | Chavacano | 0.9627 | 0.9773 | 0.9699 | 132 |
|
42 |
+
| ceb | Cebuano | 0.8205 | 0.8533 | 0.8366 | 75 |
|
43 |
+
| ces | Czech | 0.9606 | 0.9740 | 0.9672 | 500 |
|
44 |
+
| chv | Chuvash | 0.9756 | 0.9877 | 0.9816 | 81 |
|
45 |
+
| ckb | Central Kurdish (Soranî) | 0.9751 | 0.9915 | 0.9832 | 355 |
|
46 |
+
| ckt | Chukchi | 0.9615 | 1.0000 | 0.9804 | 25 |
|
47 |
+
| cmn | Mandarin Chinese | 0.9530 | 0.8743 | 0.9120 | 557 |
|
48 |
+
| cor | Cornish | 0.9945 | 0.9628 | 0.9784 | 188 |
|
49 |
+
| csb | Kashubian | 0.9574 | 1.0000 | 0.9783 | 45 |
|
50 |
+
| cym | Welsh | 0.9375 | 0.9615 | 0.9494 | 78 |
|
51 |
+
| dan | Danish | 0.9401 | 0.9363 | 0.9382 | 1005 |
|
52 |
+
| deu | German | 0.9853 | 0.9781 | 0.9817 | 549 |
|
53 |
+
| dsb | Lower Sorbian | 0.8704 | 0.8246 | 0.8468 | 57 |
|
54 |
+
| dtp | Central Dusun | 0.8881 | 0.9549 | 0.9203 | 133 |
|
55 |
+
| ell | Greek | 0.9979 | 0.9979 | 0.9979 | 475 |
|
56 |
+
| eng | English | 0.9895 | 0.9839 | 0.9867 | 1055 |
|
57 |
+
| epo | Esperanto | 0.9817 | 0.9926 | 0.9871 | 540 |
|
58 |
+
| est | Estonian | 0.9545 | 0.9711 | 0.9628 | 173 |
|
59 |
+
| eus | Basque | 0.9844 | 0.9583 | 0.9712 | 264 |
|
60 |
+
| fao | Faroese | 0.9820 | 0.9859 | 0.9840 | 498 |
|
61 |
+
| fin | Finnish | 0.9932 | 0.9780 | 0.9855 | 1045 |
|
62 |
+
| fkv | Kven Finnish | 0.6154 | 0.8889 | 0.7273 | 18 |
|
63 |
+
| fra | French | 0.9871 | 0.9908 | 0.9890 | 542 |
|
64 |
+
| frr | North Frisian | 0.9640 | 0.9710 | 0.9675 | 138 |
|
65 |
+
| fry | Frisian | 0.6774 | 0.9545 | 0.7925 | 22 |
|
66 |
+
| gcf | Guadeloupean Creole French | 0.9619 | 1.0000 | 0.9806 | 101 |
|
67 |
+
| gla | Scottish Gaelic | 0.9412 | 0.9796 | 0.9600 | 49 |
|
68 |
+
| gle | Irish | 0.9635 | 0.9778 | 0.9706 | 135 |
|
69 |
+
| glg | Galician | 0.9104 | 0.9369 | 0.9234 | 206 |
|
70 |
+
| gos | Gronings | 0.9549 | 0.9588 | 0.9569 | 243 |
|
71 |
+
| grc | Ancient Greek | 0.9828 | 0.9828 | 0.9828 | 58 |
|
72 |
+
| grn | Guarani | 0.9684 | 0.9935 | 0.9808 | 154 |
|
73 |
+
| guc | Wayuu | 0.9111 | 0.9762 | 0.9425 | 42 |
|
74 |
+
| hau | Hausa | 0.9814 | 0.9953 | 0.9883 | 425 |
|
75 |
+
| heb | Hebrew | 1.0000 | 1.0000 | 1.0000 | 536 |
|
76 |
+
| hin | Hindi | 1.0000 | 0.9974 | 0.9987 | 391 |
|
77 |
+
| hoc | Ho | 0.9429 | 0.9167 | 0.9296 | 36 |
|
78 |
+
| hrv | Croatian | 0.7447 | 0.6119 | 0.6718 | 286 |
|
79 |
+
| hrx | Hunsrik | 0.8727 | 0.9231 | 0.8972 | 52 |
|
80 |
+
| hsb | Upper Sorbian | 0.8400 | 0.8289 | 0.8344 | 76 |
|
81 |
+
| hun | Hungarian | 0.9853 | 0.9926 | 0.9889 | 539 |
|
82 |
+
| hye | Armenian | 1.0000 | 1.0000 | 1.0000 | 225 |
|
83 |
+
| ido | Ido | 0.9791 | 0.9563 | 0.9676 | 343 |
|
84 |
+
| ile | Interlingue | 0.9352 | 0.9416 | 0.9384 | 291 |
|
85 |
+
| ilo | Ilocano | 0.9917 | 0.9600 | 0.9756 | 125 |
|
86 |
+
| ina | Interlingua | 0.9558 | 0.9621 | 0.9589 | 449 |
|
87 |
+
| ind | Indonesian | 0.8526 | 0.8203 | 0.8361 | 423 |
|
88 |
+
| isl | Icelandic | 0.9863 | 0.9897 | 0.9880 | 871 |
|
89 |
+
| ita | Italian | 0.9817 | 0.9711 | 0.9764 | 553 |
|
90 |
+
| jav | Javanese | 0.9600 | 0.9600 | 0.9600 | 50 |
|
91 |
+
| jbo | Lojban | 1.0000 | 0.9926 | 0.9963 | 405 |
|
92 |
+
| jpn | Japanese | 0.9851 | 1.0000 | 0.9925 | 530 |
|
93 |
+
| kab | Kabyle | 0.8382 | 0.8959 | 0.8661 | 509 |
|
94 |
+
| kat | Georgian | 1.0000 | 0.9885 | 0.9942 | 260 |
|
95 |
+
| kaz | Kazakh | 0.9896 | 0.9845 | 0.9870 | 193 |
|
96 |
+
| kha | Khasi | 0.9038 | 0.9400 | 0.9216 | 100 |
|
97 |
+
| khm | Khmer | 1.0000 | 1.0000 | 1.0000 | 75 |
|
98 |
+
| kmr | Northern Kurdish (Kurmancî) | 0.9851 | 0.9763 | 0.9807 | 338 |
|
99 |
+
| knc | Central Kanuri | 0.9719 | 0.9886 | 0.9802 | 175 |
|
100 |
+
| kor | Korean | 0.9972 | 0.9832 | 0.9902 | 358 |
|
101 |
+
| kzj | Coastal Kadazan | 0.9615 | 0.9336 | 0.9474 | 241 |
|
102 |
+
| lad | Ladino | 0.7846 | 0.7969 | 0.7907 | 64 |
|
103 |
+
| lat | Latin | 0.9756 | 0.9639 | 0.9697 | 498 |
|
104 |
+
| lfn | Lingua Franca Nova | 0.9745 | 0.9700 | 0.9723 | 434 |
|
105 |
+
| lij | Ligurian | 0.9333 | 0.9333 | 0.9333 | 90 |
|
106 |
+
| lin | Lingala | 0.9765 | 0.9765 | 0.9765 | 213 |
|
107 |
+
| lit | Lithuanian | 0.9864 | 0.9922 | 0.9893 | 512 |
|
108 |
+
| ltz | Luxembourgish | 0.9773 | 0.9348 | 0.9556 | 46 |
|
109 |
+
| lvs | Latvian | 0.9597 | 0.9795 | 0.9695 | 146 |
|
110 |
+
| lzh | Literary Chinese | 0.7692 | 0.8046 | 0.7865 | 87 |
|
111 |
+
| mal | Malayalam | 1.0000 | 1.0000 | 1.0000 | 44 |
|
112 |
+
| mar | Marathi | 0.9961 | 1.0000 | 0.9980 | 509 |
|
113 |
+
| mhr | Meadow Mari | 0.9849 | 0.9751 | 0.9800 | 201 |
|
114 |
+
| mkd | Macedonian | 0.9572 | 0.9480 | 0.9526 | 519 |
|
115 |
+
| mon | Mongolian | 0.9708 | 0.9779 | 0.9744 | 136 |
|
116 |
+
| mus | Muskogee (Creek) | 0.9000 | 0.9643 | 0.9310 | 28 |
|
117 |
+
| mya | Burmese | 1.0000 | 0.9643 | 0.9818 | 28 |
|
118 |
+
| nds | Low German (Low Saxon) | 0.9829 | 0.9710 | 0.9769 | 414 |
|
119 |
+
| nld | Dutch | 0.9662 | 0.9772 | 0.9717 | 527 |
|
120 |
+
| nnb | Nande | 0.9870 | 0.9870 | 0.9870 | 385 |
|
121 |
+
| nno | Norwegian Nynorsk | 0.9585 | 0.9652 | 0.9619 | 575 |
|
122 |
+
| nob | Norwegian Bokmål | 0.9247 | 0.9156 | 0.9201 | 912 |
|
123 |
+
| nst | Naga (Tangshang) | 1.0000 | 1.0000 | 1.0000 | 39 |
|
124 |
+
| nus | Nuer | 0.9903 | 0.9903 | 0.9903 | 103 |
|
125 |
+
| oci | Occitan | 0.9672 | 0.9555 | 0.9613 | 247 |
|
126 |
+
| orv | Old East Slavic | 0.9692 | 0.9692 | 0.9692 | 65 |
|
127 |
+
| oss | Ossetian | 0.9818 | 0.9926 | 0.9872 | 271 |
|
128 |
+
| ota | Ottoman Turkish | 0.9204 | 0.9905 | 0.9541 | 105 |
|
129 |
+
| pam | Kapampangan | 0.9865 | 0.9865 | 0.9865 | 74 |
|
130 |
+
| pcd | Picard | 0.9552 | 0.9846 | 0.9697 | 65 |
|
131 |
+
| pes | Persian | 0.9890 | 0.9890 | 0.9890 | 455 |
|
132 |
+
| pms | Piedmontese | 0.8780 | 0.9000 | 0.8889 | 40 |
|
133 |
+
| pol | Polish | 0.9848 | 0.9829 | 0.9838 | 526 |
|
134 |
+
| por | Portuguese | 0.9687 | 0.9616 | 0.9651 | 547 |
|
135 |
+
| prg | Old Prussian | 0.9800 | 0.9800 | 0.9800 | 50 |
|
136 |
+
| rhg | Rohingya | 0.9780 | 0.9944 | 0.9861 | 179 |
|
137 |
+
| rom | Romani | 0.9302 | 0.8889 | 0.9091 | 45 |
|
138 |
+
| ron | Romanian | 0.9826 | 0.9912 | 0.9869 | 457 |
|
139 |
+
| run | Kirundi | 0.9914 | 0.9665 | 0.9788 | 239 |
|
140 |
+
| rus | Russian | 0.9634 | 0.9814 | 0.9723 | 537 |
|
141 |
+
| sah | Yakut | 1.0000 | 0.9600 | 0.9796 | 50 |
|
142 |
+
| sat | Santali | 0.9942 | 0.9942 | 0.9942 | 171 |
|
143 |
+
| sdh | Southern Kurdish | 0.9423 | 0.9074 | 0.9245 | 54 |
|
144 |
+
| shi | Tashelhit | 0.9706 | 0.8980 | 0.9329 | 147 |
|
145 |
+
| slk | Slovak | 0.9333 | 0.9380 | 0.9356 | 403 |
|
146 |
+
| slv | Slovenian | 0.7018 | 0.8889 | 0.7843 | 45 |
|
147 |
+
| sma | Southern Sami | 0.9600 | 0.9600 | 0.9600 | 100 |
|
148 |
+
| sme | Northern Sami | 0.9980 | 0.9901 | 0.9940 | 504 |
|
149 |
+
| smj | Lule Sami | 0.9820 | 0.9959 | 0.9889 | 493 |
|
150 |
+
| smn | Inari Sami | 0.9950 | 0.9900 | 0.9925 | 201 |
|
151 |
+
| sms | Skolt Sami | 0.9750 | 0.9848 | 0.9799 | 198 |
|
152 |
+
| spa | Spanish | 0.9760 | 0.9601 | 0.9680 | 551 |
|
153 |
+
| sqi | Albanian | 0.9762 | 0.9762 | 0.9762 | 126 |
|
154 |
+
| srp | Serbian | 0.8367 | 0.8216 | 0.8291 | 499 |
|
155 |
+
| swc | Congo Swahili | 0.8727 | 0.8458 | 0.8591 | 454 |
|
156 |
+
| swe | Swedish | 0.9819 | 0.9819 | 0.9819 | 994 |
|
157 |
+
| swg | Swabian | 0.9694 | 0.9406 | 0.9548 | 101 |
|
158 |
+
| swh | Swahili | 0.6798 | 0.7225 | 0.7005 | 191 |
|
159 |
+
| tat | Tatar | 0.9791 | 0.9843 | 0.9817 | 381 |
|
160 |
+
| tgl | Tagalog | 0.9757 | 0.9710 | 0.9734 | 414 |
|
161 |
+
| tha | Thai | 1.0000 | 0.9910 | 0.9955 | 222 |
|
162 |
+
| thv | Tahaggart Tamahaq | 0.6552 | 0.7037 | 0.6786 | 27 |
|
163 |
+
| tig | Tigre | 1.0000 | 1.0000 | 1.0000 | 181 |
|
164 |
+
| tlh | Klingon | 1.0000 | 0.9932 | 0.9966 | 442 |
|
165 |
+
| tok | Toki Pona | 1.0000 | 1.0000 | 1.0000 | 495 |
|
166 |
+
| tpw | Old Tupi | 0.8929 | 0.9259 | 0.9091 | 27 |
|
167 |
+
| tuk | Turkmen | 0.9779 | 0.9603 | 0.9690 | 277 |
|
168 |
+
| tur | Turkish | 0.9908 | 0.9541 | 0.9721 | 567 |
|
169 |
+
| uig | Uyghur | 0.9966 | 0.9900 | 0.9933 | 300 |
|
170 |
+
| ukr | Ukrainian | 0.9831 | 0.9831 | 0.9831 | 534 |
|
171 |
+
| urd | Urdu | 1.0000 | 0.9914 | 0.9957 | 116 |
|
172 |
+
| uzb | Uzbek | 0.8200 | 0.9318 | 0.8723 | 44 |
|
173 |
+
| vie | Vietnamese | 0.9977 | 0.9953 | 0.9965 | 427 |
|
174 |
+
| vol | Volapük | 0.9908 | 0.9908 | 0.9908 | 218 |
|
175 |
+
| war | Waray | 0.9307 | 0.9691 | 0.9495 | 97 |
|
176 |
+
| wuu | Shanghainese | 0.8318 | 0.9036 | 0.8662 | 197 |
|
177 |
+
| xal | Kalmyk | 0.9302 | 0.9524 | 0.9412 | 42 |
|
178 |
+
| xmf | Mingrelian | 0.7419 | 0.8519 | 0.7931 | 27 |
|
179 |
+
| yid | Yiddish | 0.9971 | 1.0000 | 0.9986 | 348 |
|
180 |
+
| yue | Cantonese | 0.9004 | 0.9711 | 0.9344 | 242 |
|
181 |
+
| zgh | Standard Moroccan Tamazight | 0.9873 | 0.9873 | 0.9873 | 158 |
|
182 |
+
| zlm | Malay (Vernacular) | 0.8488 | 0.8902 | 0.8690 | 82 |
|
183 |
+
| zsm | Malay | 0.7606 | 0.7883 | 0.7742 | 274 |
|
184 |
+
| zza | Zaza | 0.9294 | 0.9634 | 0.9461 | 82 |
|
185 |
+
| accuracy | nan | nan | nan | 0.9591 | 44049 |
|
186 |
+
| weighted avg | nan | 0.9604 | 0.9591 | 0.9595 | 44049 |
|
187 |
+
| macro avg | nan | 0.9371 | 0.9474 | 0.9413 | 44049 |
|
188 |
+
|