Я ищу реализацию для алгоритма K-Nearest Neighbor в Java для неструктурированных данных. Я нашел много реализаций для числовых данных, однако как я могу реализовать его и вычислить Евклидово расстояние для текста (строки).K-Nearest Neighbor Implementation for Strings (неструктурированные данные) в Java
Вот один пример двойной:
public static double EuclideanDistance(double [] X, double []Y)
{
int count = 0;
double distance = 0.0;
double sum = 0.0;
if(X.length != Y.length)
{
try {
throw new Exception("the number of elements" +
" in X must match the number of elements in Y");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
count = X.length;
}
for (int i = 0; i < count; i++)
{
sum = sum + Math.pow(Math.abs(X[i] - Y[i]),2);
}
distance = Math.sqrt(sum);
return distance;
}
Как я могу реализовать для струнных (неструктурированных данных)? Например, Класс 1: «Это было удивительно, я любил его.» «Это идеальный фильм»
Класс 2: «скучный скучный скучный...» «Мне не нравится»
Как мы можем внедрить KNN для такого типа данных и вычислить евклидово расстояние?
Каково ваше определение «расстояние», когда дело доходит до строк? Это характер по характеру? – ostrichofevil
нет, это слово за словом. –
Я не могу ответить на это, если не знаю, что вы хотите сделать. Каковы размеры ваших данных? Как вы хотите преобразовать строки в числовые значения? – ostrichofevil