字符占比计算器
更新时间:2026-05-18
字符占比计算器
简介
字符占比计算器,计算文本中字母字符数与总字符数(或 token 数)的比值,用于过滤非自然语言文本。
功能描述
- 默认模式:计算字母字符数 / 总字符数
- tokenization 模式:计算字母字符数 / token 数(需加载分词器)
- 空文本或 None 返回 None
- 可选择是否启用 tokenization 模式(需提供模型路径)
算子参数
输入
| 输入 | 含义 |
|---|---|
| texts | 文本字符串数组 |
输出
| 输出 | 含义 |
|---|---|
| alphanumeric_ratio | 字符占比(float64),范围通常为 [0, 1](tokenization 模式下可能 > 1) |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| tokenization | bool | False | 是否启用 tokenization 模式(字母数 / token 数),需配置 model_path/model_name |
| model_path | str | "/opt/aihc/models" | tokenization 模式下使用的分词器模型根目录 |
| model_name | str | "pythia-6.9b-deduped" | 分词器模型名称 |
调用示例
Plain Text
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.text.alphanumeric_ratio_calculator import AlphanumericRatioCalculator
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 samples = {"text": ["Hello World 123", "!!###@@@", "正常中文文本", "abc def ghi"]}
19 ds = daft.from_pydict(samples)
20 ds = ds.with_column(
21 "alpha_ratio",
22 aihc_udf(
23 AlphanumericRatioCalculator,
24 construct_args={"tokenization": False},
25 num_cpus=1,
26 concurrency=4,
27 batch_size=1024,
28 )(col("text")),
29 )
30 ds = ds.where(col("alpha_ratio") > 0.5)
31 ds.show()
评价此篇文章
