"Tokens" (神经网络编码器)

NetEncoder["Tokens"]

表示一个编码器,使用标准的英文词汇将字符串中的单词转换成整数代码序列.

NetEncoder[{"Tokens","language"}]

表示一个编码器,对于给定的语言使用标准的词汇.

NetEncoder[{"Tokens",{token1,token2,}}]

表示一个编码器,使用指定的令牌列表作为词汇.

NetEncoder[{"Tokens",,"param"value}]

表示一个编码器,其中,其他参数已被指定.

更多信息

  • NetEncoder[][input] 把编码器应用于输入,产生一个输出.
  • NetEncoder[][{input1,input2,}] 把编码器应用于输入列表,产生输出列表.
  • 编码器的输入必须是字符串或带有表示令牌的字符串序列的 TextElement. 如果是字符串,会使用基于"SplitPattern" 值的正则表达式分割成令牌.
  • 编码器的输出是介于 1 和 d+1 间的整数序列,其中,d 是词汇中的令牌数. 使用整数 d+1 表示输入中没有出现在词汇中的令牌.
  • 输出 NumericArray 的类型是最小的无符号整数,可表示所有可能的输出整数值.
  • 在构建网络时,通过指定 "port"->NetEncoder[] 把编码器附加在网络的输入端口.
  • 参数
  • 可以指定以下参数:
  • "IgnoreCase"True当匹配字符串中的令牌时是否忽略大小写
    "SplitPattern"TemplateBox[{WordBoundary, paclet:ref/WordBoundary}, RefLink, BaseStyle -> {3ColumnTableMod}]为了拆分输入字符串为令牌使用的字符串模式
    "TargetLength"All剪裁或填充的最终序列长度
  • 当参数 "IgnoreCase"->True,编码前,令牌被有效地转换成小写.
  • 当参数 "TargetLength"->All,所有在输入字符串中找到的令牌已被编码.
  • 当参数 "TargetLength"->n,输入字符串中找到的前 n 个令牌已被编码,如果找到小于 n 个令牌则会进行填充. 填充值是 d+1,其中 d 是词汇中的令牌数.
  • 当参数 "SplitPattern"->None,编码器的输入被假设为形式为 {"token1","token2",}的字符串的预令牌化列表.

范例

打开所有单元关闭所有单元

基本范例  (1)

为英文文本创建令牌编码器:

编码英文句子:

不在词汇中的单词用最大代码编码:

默认情况下,使用简单正则表达式检测单词:

单词列表可使用 TextElement 明确传递:

范围  (6)

使用默认的令牌编码器编码句子:

给出指定的令牌列表:

给出指定的令牌列表,包括拆分模式:

指明序列应被填充或裁剪为 4 个元素长:

对于特殊语言使用内置字典:

使用 TextElement 的自定义令牌化:

使用 TextStructure 的输出计算令牌索引列表:

展平树结构:

Parameters  (3)

"IgnoreCase"  (1)

带有 "IgnoreCase"->True 的编码器把组成的字符只是大小写不同视为相等:

带有 "IgnoreCase"->False 的编码器不这样做:

"SplitPattern"  (2)

使用 "SplitPattern" 创建一个隔离数字字符的编码器:

编码器为每个数字字符输出一个令牌:

与默认行为不同的是,它收集所有连续数字字符在一起:

创建带有 "SplitPattern"->None 和两个令牌的编码器:

编码器现在期待令牌列表作为输入:

编码器仍然映射一批示例: