我知道這個名字有很多線程。我有一個代碼來生成ngrams。但想知道在處理數千個字符串時能否以更好的速度進行改進?提高ngram代的方法?
例字符串= 「abcdefghijkl1245ty789」
public static String[] ngrams(String s) {
int len=12;
String[] parts = s.split("(?!^)");
String[] result = new String[parts.length - len + 1];
for(int i = 0; i < parts.length - len + 1; i++) {
StringBuilder sb = new StringBuilder();
for(int k = 0; k < len; k++) {
sb.append(parts[i+k]);
}
result[i] = sb.toString();
}
return result;
}
上面的代碼得到的字符串,生成給定長度的ngrmas。在我的情況下,其12
如果你有輸入字符串的大量具有合理的可能性重複輸入字符串,那麼你可能要考慮這種方法的記憶,因爲輸出只依賴於輸入。 – Dancrumb