You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求详解文本转数值格式及ECL中TextVectors的概念与示例

ECL中TextVectors概念详解及示例

一、TextVectors核心概念

TextVectors是ECL专为文本向量化设计的工具集,核心目标是将非结构化文本(句子、段落等)转换为机器学习模型可处理的数值向量。它整合了完整的文本预处理与向量化逻辑,适配HPCC Systems的分布式计算环境,能高效处理大规模文本数据集。

关键特性

  • 原生支持分布式文本处理,无需手动拆分数据集
  • 内置多种向量化算法:TF-IDF、词袋模型(Bag-of-Words)、部分版本支持Word2Vec词嵌入
  • 集成标准化文本预处理流程:分词、大小写统一、停用词移除、词干提取

二、基础使用示例

1. 定义并加载文本数据集

先定义包含文本的记录结构,再加载目标数据集:

// 定义文本数据集的记录结构
TextDataset := RECORD
    STRING sentence;
    INTEGER label; // 分类任务可选标签列
END;

// 加载本地CSV数据集(可替换为HPCC集群逻辑文件)
TextData := DATASET('path/to/your/text_data.csv', TextDataset, CSV(HEADER));

2. 配置并生成文本向量

以TF-IDF向量化为例,通过TextVectors.Config配置参数,再调用Generate生成向量:

IMPORT ML.TextVectors;

// 配置向量化参数
TVConfig := TextVectors.Config(
    INPUT_COLUMN => 'sentence', // 指定待处理的文本列
    VECTOR_TYPE => 'TFIDF',     // 选择向量化类型:BOW/TFIDF
    REMOVE_STOPWORDS => TRUE,   // 启用停用词移除
    LOWERCASE => TRUE,          // 文本统一转为小写
    MAX_FEATURES => 1000        // 保留Top1000高频词作为特征维度
);

// 生成带向量的数据集
TextWithVectors := TextVectors.Generate(TextData, TVConfig);

3. 向量用于机器学习模型

生成的TextWithVectors包含原文本、标签(若有)和新增的vector数值数组列,可直接作为模型输入:

// 输出向量结果查看
OUTPUT(TextWithVectors, NAMED('Text_Vector_Result'));

// 传递给逻辑回归模型训练示例
IMPORT ML.LogisticRegression;

LRModel := LogisticRegression.Train(
    DATA => TextWithVectors,
    FEATURES => 'vector',
    LABEL => 'label'
);

三、进阶配置说明

  • 自定义停用词:通过STOPWORDS_LIST参数传入自定义停用词集合,覆盖默认词表:
    CustomStopwords := DATASET(['the', 'and', 'a'], STRING);
    TVConfig := TextVectors.Config(
        INPUT_COLUMN => 'sentence',
        STOPWORDS_LIST => CustomStopwords,
        // 其他参数...
    );
    
  • 词嵌入模式:部分ECL版本支持预训练Word2Vec词嵌入,配置VECTOR_TYPE => 'WORD2VEC'并指定预训练词向量文件路径即可调用。
  • 分布式优化:TextVectors自动利用HPCC集群资源,处理TB级文本时无需额外编写分布式逻辑。

内容的提问来源于stack exchange,提问作者surnan ss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:18:25