项目简介
Luban是一款基于C++和Python的特征处理工具,其目标是解决模型训练与推理过程中特征处理不一致的问题。它通过C++编写核心特征处理模块并提供Python接口,确保在不同语言环境下特征处理逻辑的一致性。同时,利用JSON配置文件定义特征处理流程,使配置和使用更简单灵活。
项目的主要特性和功能
- 跨语言支持:核心模块用C++编写,支持Python、C++、Java、Golang等多种语言调用。
- 配置化处理:通过JSON配置文件定义特征处理流程,支持多种数据类型与复杂表达式。
- 丰富的操作符和函数:支持基本算术运算、数学函数、时间函数、字符串处理函数等。
- 高效的表达式解析:借助Python的
ast
模块解析表达式,保证解析高效准确。 - 批量处理支持:可批量处理特征数据,适用于大规模数据集。
安装使用步骤
安装
- MacOS ARM:
shell pip install pyluban
- Unix-like系统:
shell python setup.py install --install-scripts=/usr/local/bin pip install pyluban
使用
- 配置JSON文件:依据需求编写JSON配置文件,定义特征处理流程。
- 解析配置文件:使用
luban_parser
工具解析JSON配置文件,生成C++使用的配置文件。 - 调用特征处理模块:在C++、Python等语言中引入头文件或模块,使用生成的配置文件进行特征处理。
示例代码
Python示例
```python import json import pyluban
feas = {"A": {"type": 0, "value": 10}, "B": {"type": 1, "value": 10.9}} feas_str = json.dumps(feas)
features = pyluban.Features(feas_str)
l = pyluban.FeaturesList() l.append(features)
toolkit = pyluban.Toolkit("config.json") r = toolkit.process(features)
for i in range(len(r)): print(np.asarray(r[i])) ```
C++示例
```cpp
include "luban.h"
int main() { // 初始化配置 LubanConfig config = loadConfig("config.json");
// 处理特征
FeatureVector features = processFeatures(config, inputFeatures);
// 输出结果
for (auto& feature : features) {
std::cout << feature << std::endl;
}
return 0;
} ```
通过上述步骤,可在不同语言环境中轻松使用Luban进行特征处理,保障模型训练和推理的一致性与高效性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】