Skip to content

ffreemt/fast-langid

Repository files navigation

fastlid

[tests]pythonCode style: blackLicense: MITPyPI version

Language identification based on fasttext (lid.176.ftz https://fasttext.cc/docs/en/language-identification.html).

The lid.176.ftz file is licensed under Creative Commons Attribution-Share-Alike License 3.0 and is not part of this module. It is automatically downloaded from its external origin on the first run of this module.

This module attempts to immitate the follow two features of langid

  • langid.classify: fastlid
  • langid.set_languages(langs=[...]): fastlid.set_languages = [...]
    • import fastlid
    • fastlid.set_languages = ['nl','fr'])
  • TODO: Commandline interface

Preinstall fasttext

pip install fasttext

For Windows without a C/C++ compiler:

pip install fasttext*.whl

or (for python 3.8)

pip install https://github.com/ffreemt/ezbee/raw/main/data/artifects/fasttext-0.9.2-cp38-cp38-win_amd64.whl

Install it

pip install fastlid

or install from git

pip install git+https://github.com/ffreemt/fast-langid.git

# also works pip install git+https://github.com/ffreemt/fast-langid

or clone the git repo and install from source.

Use it

from fastlid import fastlid, supported_langs

# support 176 languages
print(supported_langs, len(supported_langs))
# ['af', 'als', 'am', 'an', 'ar', 'arz', 'as', 'ast', 'av', 'az'] 176

fastlid("test this")
# ('en', 0.765)

fastlid("test this 测试一下", k=2)
# (['zh', 'en'], [0.663, 0.124])

fastlid.set_languages = ['fr', 'zh']
fastlid("test this 测试吧")
# ('zh', 0.01)

fastlid.set_languages = None
fastlid("test this 测试吧")
('en', 0.686)

fastlid.set_languages = ['fr', 'zh', 'en']
fastlid("test this 测试吧", k=3)
(['en', 'zh', 'fr'], [0.686, 0.01, 0.006])

N.B. hanzidentifier can be used to identify simplified Chinese or/and traditional Chinese should you need to do so.

For Developers

Install poetry and yarn the way you like it.

poetry install  # install python packages
yarn install --dev  # install necesary node packages

# ...code...
yarn test
yarn final

# ...optionally submit pr...

About

Detect language of a given text, fast

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages