Artrajz commited on
Commit
c43fe93
·
1 Parent(s): e364eff

Update init model for langid

Browse files
Files changed (1) hide show
  1. utils/classify_language.py +38 -16
utils/classify_language.py CHANGED
@@ -2,8 +2,10 @@ import regex as re
2
 
3
  try:
4
  from contants import config
 
 
5
  except:
6
- pass
7
 
8
  langid_languages = ["af", "am", "an", "ar", "as", "az", "be", "bg", "bn", "br", "bs", "ca", "cs", "cy", "da", "de",
9
  "dz", "el",
@@ -17,30 +19,50 @@ langid_languages = ["af", "am", "an", "ar", "as", "az", "be", "bg", "bn", "br",
17
  "ug", "uk",
18
  "ur", "vi", "vo", "wa", "xh", "zh", "zu"]
19
 
 
20
 
21
- def classify_language(text: str, target_languages: list = None) -> str:
22
- try:
23
- module = config.language_identification.language_identification_library.lower()
24
- except:
25
- module = "langid"
26
 
27
- if not target_languages:
28
- target_languages = None
29
 
30
  if module == "fastlid" or module == "fasttext":
31
- from fastlid import fastlid, supported_langs
32
  classifier = fastlid
33
- if target_languages is not None:
34
- target_languages = [lang for lang in target_languages if lang in supported_langs]
35
- fastlid.set_languages = target_languages
36
  elif module == "langid":
37
  import langid
 
 
38
  classifier = langid.classify
39
- if target_languages is not None:
40
- target_languages = [lang for lang in target_languages if lang in langid_languages]
41
- langid.set_languages(target_languages)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  else:
43
- raise ValueError(f"Wrong LANGUAGE_IDENTIFICATION_LIBRARY in config.py")
 
 
 
 
 
 
 
 
 
44
 
45
  lang = classifier(text)[0]
46
 
 
2
 
3
  try:
4
  from contants import config
5
+
6
+ module = config.language_identification.language_identification_library.lower()
7
  except:
8
+ module = "langid"
9
 
10
  langid_languages = ["af", "am", "an", "ar", "as", "az", "be", "bg", "bn", "br", "bs", "ca", "cs", "cy", "da", "de",
11
  "dz", "el",
 
19
  "ug", "uk",
20
  "ur", "vi", "vo", "wa", "xh", "zh", "zu"]
21
 
22
+ classifier = None
23
 
 
 
 
 
 
24
 
25
+ def init_classifier():
26
+ global classifier
27
 
28
  if module == "fastlid" or module == "fasttext":
29
+ from fastlid import fastlid
30
  classifier = fastlid
 
 
 
31
  elif module == "langid":
32
  import langid
33
+ # init model
34
+ langid.langid.load_model()
35
  classifier = langid.classify
36
+
37
+
38
+ init_classifier()
39
+
40
+
41
+ def set_languages(langs):
42
+ global classifier
43
+
44
+ if langs is None:
45
+ return
46
+
47
+ if module == "fastlid" or module == "fasttext":
48
+ from fastlid import fastlid, supported_langs
49
+ target_languages = [lang for lang in langs if lang in supported_langs]
50
+ fastlid.set_languages = target_languages
51
+ elif module == "langid":
52
+ import langid
53
+ target_languages = [lang for lang in langs if lang in langid_languages]
54
+ langid.set_languages(target_languages)
55
  else:
56
+ raise ValueError(f"Wrong LANGUAGE_IDENTIFICATION_LIBRARY in config.yaml")
57
+
58
+
59
+ def classify_language(text: str, target_languages: list = None) -> str:
60
+ global classifier
61
+
62
+ if not target_languages:
63
+ target_languages = None
64
+
65
+ set_languages(target_languages)
66
 
67
  lang = classifier(text)[0]
68