-4

我正在制作一个聊天机器人,它将通过数据集中最接近的值(树形图)回答你。系统是 AIML 的模拟。

我需要制作 Winkler-table,它会给我一个结果数字数组。怎么做?

有一个图像,它显示了这个表是如何工作的: 温克勒表

4

2 回答 2

0

好吧,我做了那张桌子。它看起来像下一个:

String[] ts = new String[s2.length()];

int[][] table = new int[s1.length()][s2.length()];
char[] s1c = s1.toCharArray();
char[] s2c = s2.toCharArray();

for(int s1cl = 0; s1cl <= s1c.length - 1; s1cl++) {
    for(int s2cl = 0; s2cl <= s2c.length - 1; s2cl++) {
        if(s1c[s1cl] == s2c[s2cl]) {
            table[s1cl][s2cl] = 0;
        } else {
            table[s1cl][s2cl] = 1;
        }
    }
}

for(int ts1 = 0; ts1 <= s1c.length - 1; ts1++) {
    String res = "";
    for(int ts2 = 0; ts2 <= s2c.length - 1; ts2++) {
        res += ts2;
        if(ts2 == s2c.length - 1) {
            ts[ts1] = res;
            res = "";
        }
    }
}

感谢“赫尔曼”的回答!

于 2018-12-07T14:09:25.207 回答
0

您可以通过 3 个简单的步骤来完成。

  1. 为结果矩阵创建一个二维数组:请参阅问题Syntax for create a 二维数组

    当然,尺寸必须与输入和密钥长度相匹配。请参阅https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#length()

  2. 循环输入字符串的字符,并将键作为嵌套循环。请参阅https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.1https://docs.oracle.com/javase/10/docs/api /java/lang/String.html#charAt(int)。基本上你有 2 个索引,它们给你 2 个char值。

  3. 使用运算符比较两个字符,==并使用索引将 0 或 1 存储在二维数组中。

于 2018-12-06T10:17:57.593 回答