长字符串的 PMML 子字符串处理的官方规范是什么?

What is the official specification for PMML substring handling of long strings?

给定

的子字符串定义
<Apply function="substring">
  <FieldRef field="Input"/>
  <Constant>1</Constant>
  <Constant>2</Constant>
</Apply>

如果输入字符串 "helloworld" 会发生什么,官方规范是什么?

这是不允许的,还是应该发生其他事情?

请参考PMML built-in function "substring", which is based on XQuery built-in function "substring"的规范。 在 Java 中,您的表达式转换为以下 input.substring((1 - 1), (1 - 1) + 2).

需要注意的重要一点是,在 PMML 和 XQuery 中,字符串的索引从位置 1 开始(而不是 0)。此外,使用此功能时没有 StringIndexOutOfBoundsException 这样的东西。如果您有兴趣获得字符串的剩余部分,那么您可以传递一个任意大的数字作为 length 参数。