Таблица Винклера на Яве - PullRequest
       25

Таблица Винклера на Яве

0 голосов
/ 06 декабря 2018

Я создаю чат-бота, который ответит вам по ближайшему значению в наборе данных (древовидные карты).Система является аналогом AIML.

Мне нужно сделать таблицу Винклера, которая выдаст мне массив результатов.Как это сделать?

Есть изображение, которое показывает, как работает эта таблица: WINKLER TABLE

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Хорошо, я сделал этот стол.Это выглядит следующим образом:

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" за ваш ответ!

0 голосов
/ 06 декабря 2018

Вы можете сделать это в 3 простых шага.

  1. Создать двумерный массив для матрицы результатов: см. Вопрос Синтаксис для создания двумерного массива .

    Размеры должны совпадать с длиной ввода и длиной ключа.См. 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.1 и https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#charAt(int). Обычно у вас есть 2 индекса, которые дают вам 2 char значения.

  3. Сравните оба символа с помощью оператора == исохранить 0 или 1 в двумерном массиве, используя индексы.

...