代码之家  ›  专栏  ›  技术社区  ›  Kunal Mukherjee

实体注释在RASA NLU中有空格

  •  1
  • Kunal Mukherjee  · 技术社区  · 8 年前

    我正在经历 Training Data RASA Format 如此处所述。

    {
      "text": "show me chinese restaurants",
      "intent": "restaurant_search",
      "entities": [
        {
          "start": 8,
          "end": 15,
          "value": "chinese",
          "entity": "cuisine"
        }
      ]
    }
    

    子字符串 Chinese 标记为话语第8到第15个索引中的实体。

    我编写了一个小型C#程序来验证语句中字符索引的正确性。

    public class Program
        {
            public static void Main(string[] args)
            {
                string s = "show me chinese restaurants";
                int i = 0;
    
                foreach(var item in s.ToCharArray())
                    Console.WriteLine("{0} - {1}", item, i++);
            }
        }
    

    但当我运行程序时,我得到以下输出:

    s - 0
    h - 1
    o - 2
    w - 3
      - 4
    m - 5
    e - 6
      - 7
    c - 8
    h - 9
    i - 10
    n - 11
    e - 12
    s - 13
    e - 14
      - 15
    r - 16
    e - 17
    s - 18
    t - 19
    a - 20
    u - 21
    r - 22
    a - 23
    n - 24
    t - 25
    s - 26
    

    注意子字符串文本注释的奇怪行为 中国人 从索引8开始,到15结束,并带有空格。

    但是子串 中国人 应从指数8开始,在位置14结束。

    当我训练相同的文本时 中国人 指数从第8位开始,到第14位结束。我明白了 Misaligned Entity Annotation RASA发出的详细警告 here .

    有人能解释一下这种奇怪的行为吗。

    谢谢

    1 回复  |  直到 8 年前
        1
  •  5
  •   Mark Davies    8 年前

    阅读链接 provided 我可能已经想出了一个可能的解释:

    它们共同构成了应用于字符串的python样式范围,例如在下面的示例中,使用text=“show me chinese restaurants”,然后使用text[8:15]=“chinese”

    这让我走上了一条我一直在思考的道路

    嗯,这很奇怪,我想知道python的索引是否精巧

    我开发了一个快速应用程序来证明这一点:

    text = "show me chinese restaurants"
    print(text[8:15])
    

    现在这可能没有意义,因为这里数组的空间15中的字符实际上是一个空间。这让我想到了这篇文章:

    https://www.pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python/

    看起来他们在这里的示例中使用的运算符 text[8:15] 切片阵列,他们使用以下示例:

    a = [1, 2, 3, 4, 5, 6, 7, 8]

    a[1:4] 其输出: [2, 3, 4]

    并这样解释

    让我解释一下。1表示从列表中的第二个元素开始(请注意,切片索引从0开始)。4表示结束于列表中的第五个元素,但不包括它。中间的冒号是Python列表如何识别我们想要使用切片来获取列表中的对象的。

    因此,切片的第二个参数似乎是独占的。

    希望这有帮助

    p、 美国必须学习和设置一些python的东西:D