Я обрабатываю твиты, используя работу карты. Одна из вещей, которые я хочу сделать, - это подвергать цензуре злоупотребления словами. Когда я тестирую свой код локально, он работает по желанию. Но когда я запускаю его по всему набору данных для некоторого текста, это подвергает цензуре злоупотребления словами, но скучает по некоторым. Теперь, поскольку данные составляют 1 ТБ в общей сложности (800 файлов), я не могу найти эти конкретные данные твита в необработанной форме (JSON), чтобы я мог проверить их локально, чтобы найти проблему. Однако у меня есть текст твита (не весь JSON), который не зарекомендовал себя от моей программы карты сокращения. Чтобы протестировать, я попытался поместить этот текст в текстовое поле твита некоторого другого твита JSON и программы правильно подвергнуто цензуре злоупотребляющего слова. Вы можете предложить любую стратегию, с помощью которой я могу найти ошибку. Or if you find a bug in my code just by looking at it that would be great
Function which loops through all the words of tweet (tweet split by non alphanumeric character)
public static String censorText(String text, String textWords[], Set banned) {
StringBuilder builder = new StringBuilder(text);
textWords = getTextArray(text);
for (int i = 0; i < textWords.length; i++) {
if (banned.contains(textWords.toLowerCase())) {
String cleanedWord = cencor(textWords);
// compile a pattern with banned word
List indexList = getIndexes(builder, textWords);
replaceWithCleanWord(builder, indexList, cleanedWord);
}
}
return builder.toString();
}
//function to find the position of abuse word in the tweet text so that //can be replaced by censored word
private static List getIndexes(StringBuilder builder, String string) {
List indexes = new ArrayList();
String word = "(" + string.charAt(0) + ")" + string.substring(1);
System.out.println("word to match" +word);
Pattern p = Pattern.compile("(?
Подробнее здесь: https://stackoverflow.com/questions/293 ... in-my-code