Я пытаюсь включить пакет молотка в свой код Java для моей задачи маркировки последовательности. Однако я не очень уверен, как мне это сделать, используя только рекомендации по импорту данных на веб-сайте маллета. Кто-нибудь может мне помочь?
Мой первый вопрос касается импорта данных последовательности. Единственный формат данных, который я вижу на веб-сайте, это InstanceList, однако, как мы должны описывать последовательности со структурой данных. Например, если у нас есть несколько последовательностей (A, B, C — метки): S1: A B B B B A B B; S2: В А В В В В С; S3: C B A B B B. Как мне поместить их в обучающие данные? InstanceList для S1, InstanceList для S2 и InstanceList для S3? И тогда как я могу поместить их вместе в качестве обучающих данных?
Мой второй вопрос о том, как установить функции в экземпляры. У меня уже есть веса функций и метки, так есть ли простой способ установить экземпляры? Например, у меня есть функции [0,1, 0,2, 0,5, 0,4, 0,1] для элемента в последовательности и его метка B. Как я могу установить функции в структуру экземпляра, не проходя через процесс с несколькими конвейерами?
Кроме того, я планирую использовать модель CRF для своей задачи маркировки последовательностей. Помимо меток, я также хотел бы иметь вероятность всей последовательности. Могу ли я получить информацию? Я видел на сайте что-то вроде этого:
double logScore = new SumLatticeDefault(crf,inputSeq,outputSeq).getTotalWeight();
double logZ = new SumLatticeDefault(crf,inputSeq).getTotalWeight();
double prob = Math.exp(logScore - logZ);
Этот собирается делать то, что я хочу? И если да, то какие здесь будут inputSeq и outputSeq?