Detect languages via a fasttext model
Project description
fastlid
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 for Windows without C compiler
For Windows without a C/C++ compiler:
- Download a proper whl (e.g.,
fasttext‑0.9.2‑cp36‑cp36m‑win_amd64.whl
for 64bits Python 3.6 etc) from https://www.lfd.uci.edu/~gohlke/pythonlibs/#fasttext
pip install fasttext*.whl
This step is not needed if a C/C++ compiler (e.g. Visual C) is present in the system.
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...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.