Я действительно новичок в машинном обучении, и я пытаюсь нормализовать текст, чтобы создать модель. Я видел в Интернете лучший способ - использовать hashing trick
. Я видел концепцию DL4j * 1002 *, которая могла бы ответить на мою проблему, но прежде чем я начну этот процесс (который для меня, как новичка, кажется более сложным), я хотел бы сначала использовать концепцию хеширования.
Я нашел этот алгоритм хэширования , который я реализовал в Java, но вот моя проблема: как я могу передать результат процесса хэширования функций в создание DL4j * 1007 * и TransformProcess
?
public TransformProcess getTransformProcess(RecordReader reader) throws IOException, URISyntaxException {
Schema inputDataSchema = new Schema.Builder()
...
.build();
TransformProcess transformProcess = new TransformProcess.Builder(inputDataSchema)
...
.build();
return transformProcess;
}
public void testHash() {
String[] wordsArr = {"number of invoices in 2018 ?", "number", "of invoices", "of", "invoices", "in 2018", "in 2018",
"in", "2018", "?", "what is the ac on the campus store yesterday ?"};
HashMap<Integer, Integer> hashedWordsArr = hashingVectorizer(wordsArr, wordsArr.length);
System.out.println(hashedWordsArr);
}
public HashMap<Integer, Integer> hashingVectorizer(String[] features, int N){
HashMap<Integer, Integer> x = new HashMap<Integer, Integer>();
for (int i = 0; i < features.length; i++) {
Integer h = features[i].hashCode();
Integer v = x.get(h%N);
System.out.println("word : "+ features[i] + " h : " + h + " v : "+v);
if (v != null) x.put(h%N, v+1);
else x.put(h%N, 1);
System.out.println("x : " + x);
}
return x;
}
Моя проблема - передать HashMap<Integer, Integer>
в Schema
и TransformProcess