快速准确的语言识别器
项目描述
直升机机场
一个旨在速度和准确性都高的语言识别工具。主要是一个高效的HeLI-OTS到Rust的端口,在保持相同精度级别的同时实现了25倍的加速。
安装
从PyPi
在您的环境中安装它
pip install heliport
然后下载二进制模型
heliport download
从源代码
安装需求
克隆仓库,构建包并二进制化模型
git clone https://github.com/ZJaume/heliport
cd heliport
pip install .
heliport binarize
使用
CLI
只需运行heliport identify
命令,该命令从stdin读取行
cat sentences.txt | heliport identify
eng_latn
cat_latn
rus_cyrl
...
Identify languages of input text
Usage: heliport identify [OPTIONS] [INPUT_FILE] [OUTPUT_FILE]
Arguments:
[INPUT_FILE] Input file, default: stdin
[OUTPUT_FILE] Output file, default: stdout
Options:
-j, --threads <THREADS> Number of parallel threads to use.
0 means no multi-threading
1 means running the identification in a separated thread
>1 run multithreading [default: 0]
-b, --batch-size <BATCH_SIZE> Number of text segments to pre-load for parallel processing [default: 100000]
-c, --ignore-confidence Ignore confidence thresholds. Predictions under the thresholds will not be labeled as 'und'
-s, --print-scores Print confidence score (higher is better) or raw score (higher is better) in case '-c' is provided
-m, --model-dir <MODEL_DIR> Model directory containing binarized model or plain text model. Default is Python module path or './LanguageModels' if relevant languages are requested
-l, --relevant-langs <RELEVANT_LANGS> Load only relevant languages. Specify a comma-separated list of language codes. Needs plain text model directory
-h, --help Print help
Python包
>>> from heliport import Identifier
>>> i = Identifier()
>>> i.identify("L'aigua clara")
'cat_latn'
请记住先下载或二进制化模型!
Rust包
use std::path::PathBuf;
use heliport::identifier::Identifier;
use heliport::lang::Lang;
let identifier = Identifier::load(
PathBuf::from("/path/to/model_dir",
None,
);
let lang, score = identifier.identify("L'aigua clara");
assert_eq!(lang, Lang::cat);
与HeLI-OTS的差异
尽管
注意:这两个工具都对每个识别的文本进行预处理,以删除所有非字母字符。
可能导致结果变化的具体实现差异是
HeLI
在预处理期间会删除URL和以@
开头的单词,而则不会。 - 从1.5版本开始,在预处理过程中,HeLI会重复每个不以大写字母开头的单词,这可能是为了惩罚专有名词。然而,在我们的测试中,我们没有发现这种方法有显著的改进。因此,为了避免将预测成本乘以几乎2倍,这种方法尚未实现。将来,如果需要并且可以有效地实现,它可能会被实现。
- Rust和Java在浮点数的最小小数位上有时会有细微的差异,因此存储的n-gram概率并不完全相同。但这极不可能影响预测标签。
基准测试
使用来自OpenLID的100k随机句子进行速度基准测试,所有工具都运行在单线程模式下
工具 | 时间(秒) |
---|---|
CLD2 | 1.12 |
HeLI-OTS | 60.37 |
lingua全部预加载 | 56.29 |
lingua全部未预加载 | 23.34 |
fasttext openlid193 | 8.44 |
直升机机场 | 2.33 |
项目详情
关闭
heliport-0.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 20e6b4d7c18af0e43b8eb79a53bf36ef17044100cf5a75c3e28d7b250c6aed4f |
|
MD5 | 44e939e4e3af13934cca840c5d05d9ee |
|
BLAKE2b-256 | 4159c7cf23fb8c644b2d97688b01c1e32c16ccbbb95ea6fe1678504aa3b95859 |
关闭
heliport-0.7.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 633d68f11464bd337271b412ccffdcb8cecd4f42d9a2ab67abd153bcf9e90ea5 |
|
MD5 | c86c753a6f1cbccc42a5f91a9d0ceaac |
|
BLAKE2b-256 | 58d801b3f88eaecf80e263425796104e6f8c02578324db9dfae574435900c0a5 |
关闭
heliport-0.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fa98caf2021851cd8a4bd82f386b2ab0b755e10fd3e85678297c38fc00fc05bc |
|
MD5 | d628a0288c83f5674d1b48e5d424c6ca |
|
BLAKE2b-256 | fd51ce2f98f6faac3839200d211fa7d495f11de10c7d950243bde5cdfa1546fd |
关闭
heliport-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1d5a027bb79e69e40115bc18bf560a657dc291ed7293574affd222483afb6d29 |
|
MD5 | 4ab3195168a113d51ec4b063337ba475 |
|
BLAKE2b-256 | 5938c635fafb7ffa9352c51b2deaad29c6500336233f25eccedd20631f1e8580 |
关闭
heliport-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2cff8af282e14f9d4455780ac1be377189599f6a0920a2577641afdbaa94f5bf |
|
MD5 | f1089de0a8c851d485f7bfb464ac9e21 |
|
BLAKE2b-256 | 2dd1f0eaf9edeeaaa1afb5e3c712607707012fb9be37bbb1dad5ff4f02f1539d |
关闭
heliport-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b334fd44319c5cbb27d9e931262d03e86d5d2e45769ae390daefbab123c6b7a8 |
|
MD5 | 645e6ead0a2923940731bb55f05f0544 |
|
BLAKE2b-256 | 783e26a71824644ab1188179e7c90398c869f04947643a2cf21d27ddb8ac8827 |
关闭
heliport-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 453642de3acb27e2eb71c0e1a473613846ff60d623459279789e919ccb10ecdb |
|
MD5 | c1ed8e91418c23042e2798d43c74e4ed |
|
BLAKE2b-256 | eda50888ae544f392805670c00a00db1ca5848728cda754535df4bc267a1c5e0 |
关闭
heliport-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1be0cb9e24b9e3d9c2e578ca8ee963a549cfdeae9297d38ef0fc24477bde999b |
|
MD5 | ccaf71d220d36c9bab3afc68513b887b |
|
BLAKE2b-256 | 7ef5da789ca22f9ab4314eb89e6dfe76e8c983ce019b5db39bd6b3d115ef410c |