autodetect_search_language.py 588 B

12345678910111213141516171819
  1. import fasttext
  2. import os
  3. from flask_babel import gettext
  4. name = gettext('Autodetect search language')
  5. description = gettext('Automatically detect the query search language and switch to it.')
  6. preference_section = 'general'
  7. default_on = False
  8. fasttext.FastText.eprint = lambda x: None
  9. model = fasttext.load_model(os.path.dirname(os.path.realpath(__file__)) + '/../data/lid.176.ftz')
  10. def pre_search(request, search):
  11. lang = model.predict(search.search_query.query, k=1)
  12. if lang[1][0] >= 0.3:
  13. search.search_query.lang = lang[0][0].split('__label__')[1]
  14. return True