资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

4.数据预处理

数据集划分

  • 训练集、测试集、验证集可以按照6:2:2的比例进行划分。
  • 每个数据集上都是一个目录,目录下是多个数据文件,每个数据文件中的样本数量尽量不要超过100万条,数据文件的大小不要超过300MB。

文件格式转换

文心中的所有文件要求必须是utf-8格式,包括所有的样本集、词表文件、label_map等映射文件。 文心提供了文件格式转换的工具,位置在./wenxin/data/data_cleaning

  • 识别输入文本的编码格式:

    # -i 指定输入文件路径
    python file_encoding.py -i input_file
  • 将utf8格式的文本转成gb18030,如果输入文本不是utf8格式的,直接报错返回:

    python file_encoding.py -i input_file -o output_file --utf8_to_gb18030
    # 或者
    python file_encoding.py -i input_file -o output_file -u2g
  • 将gb18030的文本转成utf8,如果输入文本不是gb18030格式的,直接报错返回:

    python file_encoding.py -i input_file -o output_file --gb18030_to_utf8
    # 或者
    python file_encoding.py -i input_file -o output_file -g2u

分词

文心中集成了lac分词工具,使用方式有以下两种:

  • 使用Python工具包

    开发套件用于分词的python脚本位于目录./wenxin/data/wordseg/wordseg_lac.py , ,运行该脚本前,需要先下载分词工具lac包,或者直接通过pip命令安装:

    pip install lac

    参数说明可执行python wordseg_lac.py -h

    optional arguments:
      -h, --help            show this help message and exit
      -i INPUT, --input INPUT
      -o OUTPUT, --output OUTPUT
      -c COLUMN_NUMBER, --column_number COLUMN_NUMBER

    脚本参数如上所示:

    input:分词目录,如果目录下有多个文件,则依次将目录下所有文件分词,分词结果置于output参数指定的目录,分词后文件名为{原文件名_seg}.后缀

    支持通过-c参数对指定列进行分词,如有多列使用逗号分割,默认为第1列

  • 使用预置的tokenizer

    当训练框架想直接输入未分词的样本数据训练非ernie任务时,除了上面所说的Python工具包使用方式外,wenxin也提供了使用该分词算子的tokenizer,并提供了一个分类demo,位于tasks/text_classification/examples/cls_cnn_ch_with_lac.json,其中有关分词算子tokenizer的配置如下所示:

    {
      "dataset_reader": {
        "train_reader": {
              ...
              "tokenizer": {
                "type": "LACTokenizer",   ## 需要使用LAC分词的域将tokenizer的type设置为LACTokenizer
                "split_char": " ",
                "unk_token": "[UNK]",
                "params": null
              },
              ...
            },
          ...
        }

    该demo任务为非Ernie的分类CNN任务,输入样本为未分词的数据,可直接配置该tokenizer进行读入,运行方式请参照以下代码进行:

    cd tasks/text_classification
    python run_with_json.py --param_path=examples/cls_cnn_ch_with_lac.json

构建词表

如果用户想使用自己的样本集生成词表,则可使用上一节中的分词工具进行分词,得到分词后的样本文件后,直接使用词表生成工具,指定目录,生成自己的词表。词表生成工具位于wenxin/data/build_voc.py,使用方式如下:

python build_voc.py -i 分好词的数据集目录路径 -o 生成的词表路径
optional arguments:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
  -o OUTPUT, --output OUTPUT
  -sep SEPERATOR, --seperator SEPERATOR
  -c COLUMN_NUMBER, --column_number COLUMN_NUMBER
  -thr FEQ_THRESHOLD, --feq_threshold FEQ_THRESHOLD
  -ew EXTRA_WORDS [EXTRA_WORDS ...], --extra_words EXTRA_WORDS [EXTRA_WORDS ...]
  -sw STOP_WORDS [STOP_WORDS ...], --stop_words STOP_WORDS [STOP_WORDS ...]

高阶使用

上一篇
3.环境安装与配置
下一篇
5.实战演练:使用文心模型训练