I'll try to explain better what i mean. I would like to mark some node as effectively labeled and other as unlabeled, but i would like to initialize some label score on both kind of node.
I was thinking about modifying the seed file by including a new column, "true" or "false" indicating if a node is labeled or not.
I modified the GraphInfo.scala file in order to manage this added column in the LabelReader,
object LabelFileReader {
def apply (filename: String): List[Label] = {
(for (line <- io.Source fromFile(filename) getLines) yield {
val Array(vertex, label, score, gold) = line.trim split("\t")
new Label(vertex, label, score.toDouble, gold)
}).toList
}
}
Then, is it sufficient to set the vertex.isSeedNode=false when label.gold is false in GraphLoader.scala? Or i need to do something more?
I'm using the MAD algorithm in my experiments, if it can help.
My objective is to inizialize all the nodes in the graph, even the unlabeled with another algorithm, and then let the MAD algorithm refine this labeling by means of other information i put in the graph. If i label all nodes and i use MAD as is, in the objective function it tries to optimize, the first term will make the labeling as close as possible to the seeds, while for some nodes (the test nodes) i would like to be less conservative.