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

NetEncoder["Characters"]

表示一个编码器,将 ASCII 字符串中的字符转换成整数代码序列.

NetEncoder[{"Characters",table}]

表示一个编码器,将字符转换成由列表 table 中的字符组成的字符串.

NetEncoder[{"Characters",table,form}]

表示一个编码器,将字符串中的字符转换成输出形式 form.

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

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

更多信息

  • NetEncoder[][input] 对一个输入应用编码器,产生一个输出.
  • NetEncoder[][{input1,input2,}]对一系列输入应用编码器,产生一系列 输出.
  • table 指定的从字符到代码的映射关系可以有以下形式:
  • "c1c2"将每个字符 ci 映射到连续的可用代码
    "c1c2"n将所有字符 ci 映射到代码 n
    "c1c2"Automatic将所有字符 ci 映射到下一个可用代码
    n;;mspecnm 之间的字符映射到 spec
    {spec1,spec2,}speci 中按顺序分配代码
  • table 中可使用以下符号字符集:
  • Automatic所有可打印的 ASCII 字符,加上空格、制表符 (tab) 和换行符
    LetterCharacter字母 a 到 z,和字母 A 到 Z
    DigitCharacter数字 0 到 9
    WordCharacterLetterCharacterDigitCharacter 的并集
    PunctuationCharacter所有可见的 ASCII 标点符号字符
    WhitespaceCharacter空格、制表符 (tab) 和换行符
    StartOfString出现在字符串开头前的虚拟字符
    EndOfString出现在字符串末尾后的虚拟字符
    _任何未分配的字符
  • NetEncoder["Characters"] 适用于典型的英文散文,由所有可打印的 ASCII 字符以及制表符、空格和换行符组成.
  • NetEncoder["Characters"] 等价于 NetEncoder[{"Characters",{"\t","\n",FromCharacterCode[Range[32,126]]}}].
  • form"Index" (默认)时,编码器的输出由与输入字符串中的字符对应的整数代码组成.
  • form"UnitVector"时,编码器的输出由 n 维单位向量组成,其中第 i 个向量在第 pi 个方向上,其中 pi 是对应于第 i 个字符的代码.
  • 在构建网络时,可通过指定 "port"->NetEncoder[] 将编码器添加到网络的输入端口上.
  • NetEncoder[{"Characters",}][["Alphabet"]] 产生编码器可识别的字符的列表.
  • NetDecoder[NetEncoder[{"Characters",}]] 给出一个 NetDecoder[{"Characters",}],与给定的编码器具有相同的编码.
  • 参数
  • 当参数设置为 "IgnoreCase"True 时,大写字母和小写字母将被编码为相同的值. 默认值为 "IgnoreCase"False.
  • 当参数设置为默认的 "TargetLength"->All 时,对在输入字符串中找到的所有字符进行编码.
  • 当参数 "TargetLength"->n,输入字符串中发现的前 n 个令牌是被编码的,如果少于 n 个令牌,则进行填充. 如果 EndOfString 出现在令牌列表中,填充值是与之相关联的整数代码,否则,使用与最后一个令牌相关联的代码.

范例

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

基本范例  (1)

创建一个字符编码器:

对字符串进行编码:

范围  (7)

用默认字符编码器对字符串进行编码:

对于默认字符编码器,非 ASCII 字母会引发错误:

创建一个将未知字符编码为特殊代码的编码器:

指定应对序列进行填充或截断以使其长度为 6 个元素:

指定忽略大小写:

为字符编码器指定具体字母表:

编码为单位向量:

将字符集映射成单个代码:

将字符集映射成连续的代码:

在字符串的开头和结尾引入额外代码:

属性和关系  (2)

提取默认的 "Characters" 编码器可识别的字符列表:

根据 NetEncoder 产生一个 NetDecoder