Skip to content

Commit

Permalink
去重重复代码
Browse files Browse the repository at this point in the history
  • Loading branch information
ysc committed May 21, 2015
1 parent 387f470 commit cee4ffa
Showing 1 changed file with 20 additions and 18 deletions.
38 changes: 20 additions & 18 deletions src/main/java/org/apdplat/word/analysis/Similarity.java
Expand Up @@ -22,6 +22,7 @@

import org.apdplat.word.segmentation.Word;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -88,15 +89,16 @@ default boolean isSimilar(HashMap<Word, Float> weights1, HashMap<Word, Float> we
* @return 相似度分值
*/
default double similarScore(HashMap<Word, Float> weights1, HashMap<Word, Float> weights2){
List<Word> words1 = weights1.keySet().parallelStream().map(word -> {
word.setWeight(weights1.get(word));
return word;
List<List<Word>> words = Arrays.asList(weights1, weights2).parallelStream().map(weights -> {
return weights.keySet().parallelStream()
.map(word -> {
word.setWeight(weights.get(word));
return word;
})
.collect(Collectors.toList());
}).collect(Collectors.toList());
List<Word> words2 = weights2.keySet().parallelStream().map(word -> {
word.setWeight(weights2.get(word));
return word;
}).collect(Collectors.toList());
return similarScore(words1, words2);

return similarScore(words.get(0), words.get(1));
}


Expand All @@ -117,16 +119,16 @@ default boolean isSimilar(Map<String, Float> weights1, Map<String, Float> weight
* @return 相似度分值
*/
default double similarScore(Map<String, Float> weights1, Map<String, Float> weights2){
List<Word> words1 = weights1.keySet().parallelStream().map(w -> {
Word word = new Word(w);
word.setWeight(weights1.get(w));
return word;
List<List<Word>> words = Arrays.asList(weights1, weights2).parallelStream().map(weights -> {
return weights.keySet().parallelStream()
.map(w -> {
Word word = new Word(w);
word.setWeight(weights.get(w));
return word;
})
.collect(Collectors.toList());
}).collect(Collectors.toList());
List<Word> words2 = weights2.keySet().parallelStream().map(w -> {
Word word = new Word(w);
word.setWeight(weights2.get(w));
return word;
}).collect(Collectors.toList());
return similarScore(words1, words2);

return similarScore(words.get(0), words.get(1));
}
}

0 comments on commit cee4ffa

Please sign in to comment.