code: private static List<Word> selectBest(List<List<Word>> candidateWords){
          if(LOGGER.isDebugEnabled()) {
              LOGGER.debug("开始从多个识别结果中选择一个最佳的结果:{}", candidateWords);
          }
          Map<List<Word>, Integer> map = new ConcurrentHashMap<>();
          AtomicInteger i = new AtomicInteger();
          candidateWords.stream().forEach(candidateWord -> {
              if(LOGGER.isDebugEnabled()) {
                  LOGGER.debug(i.incrementAndGet() + "、开始处理：" + candidateWord);
              }
              //词性标注
              PartOfSpeechTagging.process(candidateWord);
              //根据词性标注的结果进行评分
              StringBuilder seq = new StringBuilder();
              candidateWord.forEach(word -> seq.append(word.getPartOfSpeech().getPos().charAt(0)).append(" "));
              String seqStr = seq.toString();
              AtomicInteger score = new AtomicInteger();
              if(LOGGER.isDebugEnabled()) {
                  LOGGER.debug("词序列：{} 的词性序列：{}", candidateWord, seqStr);
              }
              POS_SEQ.keySet().stream().forEach(pos_seq -> {
                  if (seqStr.contains(pos_seq)) {
                      int sc = POS_SEQ.get(pos_seq);
                      if(LOGGER.isDebugEnabled()) {
                          LOGGER.debug(pos_seq + "词序增加分值：" + sc);
                      }
                      score.addAndGet(sc);
                  }
              });
              score.addAndGet(-candidateWord.size());
              if(LOGGER.isDebugEnabled()) {
                  LOGGER.debug("长度的负值也作为分值：" + (-candidateWord.size()));
                  LOGGER.debug("评分结果：" + score.get());
              }
              map.put(candidateWord, score.get());
          });
          //选择分值最高的
          List<Word> result = map.entrySet().stream().sorted((a,b)->b.getValue().compareTo(a.getValue())).map(e->e.getKey()).collect(Collectors.toList()).get(0);
          if(LOGGER.isDebugEnabled()){
              LOGGER.debug("选择结果："+result);
          }
          return result;
      }
docs: 使用词性序列从多个人名中选择一个最佳的
  @param candidateWords
  @return