我正在创建一个聊天机器人,它将通过数据集中的最接近值(树图)回答您。系统类似于AIML。
我需要制作Winkler表,这将为我提供结果编号数组。该怎么做?
有一张图片,显示了此表的工作方式:
答案 0 :(得分:0)
您可以通过3个简单的步骤来完成它。
为结果矩阵创建一个二维数组: 参见问题Syntax for creating a two-dimensional array。
尺寸当然必须与输入和键的长度匹配。参见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个fsutil.exe file SetCaseSensitiveInfo git_project_root enable
值。
使用char
运算符比较两个字符,并使用索引在二维数组中存储0或1。
答案 1 :(得分: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 = "";
}
}
}
感谢“ herman”的回答!