
org.deeplearning4j.graph.data.impl.DelimitedVertexLoader Maven / Gradle / Ivy
package org.deeplearning4j.graph.data.impl;
import org.deeplearning4j.graph.api.Vertex;
import org.deeplearning4j.graph.data.VertexLoader;
import org.deeplearning4j.graph.exception.ParseException;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**Load vertex information, one per line of form "0Some text attribute/label"
*/
public class DelimitedVertexLoader implements VertexLoader {
private final String delimiter;
private final String[] ignoreLinesPrefix;
public DelimitedVertexLoader(String delimiter){
this(delimiter,null);
}
public DelimitedVertexLoader(String delimiter, String... ignoreLinesPrefix){
this.delimiter = delimiter;
this.ignoreLinesPrefix = ignoreLinesPrefix;
}
@Override
public List> loadVertices(String path) throws IOException {
List> vertices = new ArrayList<>();
int lineCount = 0;
try(BufferedReader br = new BufferedReader(new FileReader(new File(path)))){
String line;
while( (line = br.readLine()) != null ) {
lineCount++;
if(ignoreLinesPrefix != null){
boolean skipLine = false;
for(String s : ignoreLinesPrefix){
if(line.startsWith(s)){
skipLine = true;
break;
}
}
if(skipLine) continue;
}
int idx = line.indexOf(delimiter);
if(idx == -1) throw new ParseException("Error parsing line (could not find delimiter): " + line);
String first = line.substring(0,idx);
String second = line.substring(idx+1);
vertices.add(new Vertex<>(Integer.parseInt(first),second));
}
}
return vertices;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy