本文为您介绍PAI-Designer(原PAI-Studio)提供的Split Word(生成模型)算法组件。

Split Word(生成模型)算法组件基于AliWS(Alibaba Word Segmenter)词法分析系统,根据参数和自定义词典生成分词模型。

Split Word(生成模型)算法组件仅支持中文淘宝分词和互联网分词。

与Split Word的区别:
  • Split Word是直接将输入的文本分词。
  • Split Word(生成模型)用于生成分词的模型。如果您需要对文本分词,您需要先部署模型,再进行预测或调用在线API。

组件配置

您可以使用以下任意一种方式,配置Split Word(生成模型)组件参数。

方式一:可视化方式

在PAI-Designer(原PAI-Studio)工作流页面配置组件参数。
页签 参数 描述
字段设置 选择字段列 用来生成模型的字段列。
参数设置 识别选项 识别内容类型。取值范围为:
  • 识别简单实体
  • 识别人名
  • 识别机构名
  • 识别电话号码
  • 识别时间
  • 识别日期
  • 识别数字字母

默认值为:识别简单实体、识别电话号码、识别时间、识别日期和识别数字字母。

合并选项 合并内容类型。取值范围为:
  • 合并中文数字
  • 合并阿拉伯数字
  • 合并中文日期
  • 合并中文时间

默认值为:合并阿拉伯数字。

过滤器 过滤器的类型。取值范围为TAOBAO_CHN和INTERNET_CHN。默认值为TAOBAO_CHN。
Pos Tagger 是否进行词性标注。默认不进行词性标注。
Semantic Tagger 是否进行语义标注。默认不进行语义标注。
过滤分词结果为数字的词 是否过滤分词结果为数字的词。默认不过滤。
过滤分词结果为全英文的词 是否过滤分词结果为全英文的词。默认不过滤。
过滤分词结果为标点符号的词 是否过滤分词结果为标点符号的词。默认不过滤。
执行调优 核心数 默认为系统自动分配。
每个核的内存数 默认为系统自动分配。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本
pai -name split_word_model
    -project algo_public
    -DoutputModelName=aliws_model
    -DcolName=content
    -Dtokenizer=TAOBAO_CHN
    -DenableDfa=true
    -DenablePersonNameTagger=false
    -DenableOrgnizationTagger=false
    -DenablePosTagger=false
    -DenableTelephoneRetrievalUnit=true
    -DenableTimeRetrievalUnit=true
    -DenableDateRetrievalUnit=true
    -DenableNumberLetterRetrievalUnit=true
    -DenableChnNumMerge=false
    -DenableNumMerge=true
    -DenableChnTimeMerge=false
    -DenableChnDateMerge=false
    -DenableSemanticTagger=true
参数名称 是否必选 描述 默认值
userDictTableName 是否使用自定义词典表。自定义词典表只有一列,每一行是一个词。
outputModelName 输出模型的名称。
colName 预测文本的列名。 context
dictTableName 是否使用自定义词典表。自定义词典表只有一列,每一行是一个词。
tokenizer 过滤器类型。取值范围为TAOBAO_CHN和INTERNET_CHN。 TAOBAO_CHN
enableDfa 是否识别简单实体。取值为True或False。 True
enablePersonNameTagger 是否识别人名。取值为True或False。 False
enableOrgnizationTagger 是否识别机构名。取值为True或False。 False
enablePosTagger 是否进行词性标注。取值为True或False。 False
enableTelephoneRetrievalUnit 是否识别电话号码。取值为True或False。 True
enableTimeRetrievalUnit 是否识别时间号码。取值为True或False。 True
enableDateRetrievalUnit 是否识别日期号码。取值为True或False。 True
enableNumberLetterRetrievalUnit 是否识别数字字母。取值为True或False。 True
enableChnNumMerge 是否将中文数字合并为一个检索单元。取值为True或False。 False
enableNumMerge 是否将普通数字合并为一个检索单元。取值为True或False。 True
enableChnTimeMerge 是否将中文时间合并为一个语义单元。取值为True或False。 False
enableChnDateMerge 是否将中文日期合并为一个语义单元。取值为True或False。 False
enableSemanticTagger 是否进行语义标注。取值为True或False False

示例

  • PAI命令行
    pai -name split_word_model
        -project algo_public
        -DoutputModelName=aliws_model
  • 部署
    create onlinemodel ning_test_aliws_model_2 -offlinemodelName ning_test_aliws_model -instanceNum 1 -cpu 100 -memory 4096;
  • 在线分词
    KVJsonRequest request = new KVJsonRequest();
    Map<String, JsonFeatureValue> row = request.addRow();
    row.put(col_name, new JsonFeatureValue("大数据算法平台是个新的平台"));
    KVJsonResponse res = predictClient.syncPredict(new JsonPredictRequest(project_name, model_name, request));
    List<ResponseItem> ri = res.getOutputs();
    for (ResponseItem item : ri) {
            System.out.println(item.getOutputLabel());
     }
  • 离线分词
    pai -name prediction
        -DmodelName=ning_test_aliws_model
        -DinputTableName=ning_test_aliws
        -DoutputTableName=ning_test_aliws_offline_predict;