Mahout кластеризация без файлов последовательности? - PullRequest
0 голосов
/ 02 сентября 2018

Есть ли способ написать пример игрушечного Mahout, который не использует файлы последовательности, а просто набор векторов?

Я пытаюсь узнать о мерах расстояния и хочу провести кластеризацию helloworld на основе меры расстояния. Я бы предпочел не разбрасывать его файлами последовательности:

    public static void main(String[] args) {

        Vector v1 = toVector("java is very good");
        Vector v2 = toVector("java is very bad");
        double distance = new CosineDistanceMeasure().distance(v1, v2);
        System.out.println("DistanceMeasureMain.main() distance is "
                + distance);

        // TODO: run KMeansDriver without sequence files if possible
    }

    private static Vector toVector(String string) {

        String[] words = string.split("\\s");
        Vector v = new SequentialAccessSparseVector(Integer.MAX_VALUE );
        int i = 0;
        for (String word : words) {
            v.set(word.hashCode(), 1);
        }
        return v;
    }

1 Ответ

0 голосов
/ 02 сентября 2018

Это было проще, чем ожидалось:

List<Canopy> canopies = CanopyClusterer.createCanopies(vectorList,
                    new CosineDistanceMeasure(), 0.3, 0.3);

Хотя я читал, что кластеризация навеса устарела в более поздних выпусках Mahout: (

...