gpt4 book ai didi

hadoop - 消除 MapReduce 中的相同单词对

转载 作者:可可西里 更新时间:2023-11-01 16:06:26 27 4
gpt4 key购买 nike

我想计算文本中每行单词的共现次数,即一个单词与其他单词在同一行中出现的次数。为此,我创建了一个特殊的词对类,因此 MapReduce 会给我词对,然后是计数。问题是,我只想展示不同单词的共现。

这是代码:

public class Co_OcurrenciaMapper extends Mapper<LongWritable, Text, Par, IntWritable> {
@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
IntWritable one = new IntWritable(1);
String[] palabras = value.toString().split("\\W+");
String palabra = new String();
String vecino = new String();
if (palabras.length > 1) {
for (int i = 0; i < palabras.length - 1; i++) {
for (int j = i + 1; j < palabras.length; j++) {
palabra = palabras[i];
vecino = palabras[j];
if (palabra.length() == 0 || vecino.length() == 0 || Character.isDigit(palabra.charAt(0)) || Character.isDigit(vecino.charAt(0))) {
continue;
}
if (palabra.compareTo(vecino) != 0) {
context.write(new Par(palabras[i], palabras[j]), one); /* here I am trying to go to the next pair if the words in the current pair are the same */
}
}

}
}
}
}
}

'Par' 是包含一对单词的新类。

这是映射器的输出:

[cloudera@quickstart ~]$ hadoop fs -cat salidaO34/part-r-00000 |tail -15
Par [young , youthful] 1
Par [younger , your] 5
Par [your , your] 88
Par [your , yours] 23
Par [your , yourself] 36
Par [your , yourselves] 8
Par [your , youth] 18
Par [your , youthful] 3
Par [your , zeal] 3
Par [your , zir] 1
Par [your , zounds] 1
Par [yours , yours] 2
Par [yours , yourself] 3
Par [yours , zeal] 1
Par [yourself , yourself] 1

你可以看到我有几对相同的词。

最佳答案

先尝试修剪琴弦。

palabra = palabras[i].trim();
vecino = palabras[j].trim();

boolean emptyStrings = palabra.isEmpty() || vecino.isEmpty();
boolean haveDigit = Character.isDigit(palabra.charAt(0)) || Character.isDigit(vecino.charAt(0));
boolean sameWords = palabra.equals(vecino);

if (!(emptyStrings || haveDigit || sameWords)) {
context.write(new Par(palabra, vecino), one);
}

关于hadoop - 消除 MapReduce 中的相同单词对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com