Nano Hash - криптовалюты, майнинг, программирование

Как вы просматриваете маркировку набора тестов с помощью GenericAcrfTui из командной строки?

Я тренирую и тестирую данные, используя GenericAcrfTui Маллета. Поэтому я использую графические модели в Mallet (GRMM) для обучения CRF. Я создал функции как для своего тренировочного, так и для тестового набора и надеялся запустить GenericAcrfTui из командной строки. Когда я запускаю его, я получаю F-оценку и показатели точности для каждой из моих меток, но я не возвращаю фактическую маркировку для каждой строки. Я делаю что-то вроде этого:

java -cp $GRMM/class:$GRMM/lib/mallet-deps.jar:$GRMM/lib/grmm-deps.jar \
edu.umass.cs.mallet.grmm.learning.GenericAcrfTui \ 
--training $GRMM/data/grmm/conll2000.train1k.txt \
--testing  $GRMM/data/grmm/conll2000.test1k.txt \
--model-file tmpls.txt > stdout.txt 2> stderr.txt

который является примером, приведенным в примере Mallet. Однако, похоже, нет переключателя для получения меток. Как это сделать?

14.01.2014

Ответы:


1

Идея состоит в том, чтобы написать свой собственный Оценщик (то есть подкласс ACRFEvaluator). Вы должны написать два метода: evaluate и test. Код метода evaluate можно скопировать для другого оценщика в исходный код, ничего страшного. Это метод test, в котором вы добавляете строки для выполнения задачи.

Как правило, вывод командной строки делится между стандартным выводом и используемым регистратором. Результаты для каждой метки (f-оценка и точность) попадают в выходные данные регистратора, поэтому мы можем поместить метки туда, в противном случае, возможно, отдельный файл для меток, на ваш выбор. Итак, вот пример кода для тестового метода. Я буду выводить на стандартный вывод, а вы настраиваете на свой вкус.

@Override
public void test(InstanceList gold, List returned, String description) {
    for (Iterator it = evals.iterator(); it.hasNext(); ) {
        ACRFEvaluator eval = (ACRFEvaluator) it.next();
        eval.test(gold, returned, description);
        int rows = returned.size();
        for (int index = 0; index < rows; index++)                
            System.out.println("PREDICTED: " + returned.get(index).toString() + " vs. " + gold.get(index).toString());
        }
    }
}

Для полноты объявление класса:

public class MyEvaluator extends ACRFEvaluator {
    // body goes here
}

И переключатель из командной строки будет выглядеть так

--eval "new MyEvaluator()"
14.01.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..