我正在制作一个聊天机器人,它将通过数据集中最接近的值(树形图)回答你。系统是 AIML 的模拟。
我需要制作 Winkler-table,它会给我一个结果数字数组。怎么做?
有一个图像,它显示了这个表是如何工作的:
我正在制作一个聊天机器人,它将通过数据集中最接近的值(树形图)回答你。系统是 AIML 的模拟。
我需要制作 Winkler-table,它会给我一个结果数字数组。怎么做?
有一个图像,它显示了这个表是如何工作的:
好吧,我做了那张桌子。它看起来像下一个:
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 = "";
}
}
}
感谢“赫尔曼”的回答!
您可以通过 3 个简单的步骤来完成。
为结果矩阵创建一个二维数组:请参阅问题Syntax for create a 二维数组。
当然,尺寸必须与输入和密钥长度相匹配。请参阅https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#length()。
循环输入字符串的字符,并将键作为嵌套循环。请参阅https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.1和https://docs.oracle.com/javase/10/docs/api /java/lang/String.html#charAt(int)。基本上你有 2 个索引,它们给你 2 个char
值。
使用运算符比较两个字符,==
并使用索引将 0 或 1 存储在二维数组中。