code: public static void recognition(List<Vertex> segResult, WordNet wordNetOptimum, WordNet wordNetAll)
      {
          StringBuilder sbName = new StringBuilder();
          int appendTimes = 0;
          char[] charArray = wordNetAll.charArray;
          DoubleArrayTrie<Character>.LongestSearcher searcher = JapanesePersonDictionary.getSearcher(charArray);
          int activeLine = 1;
          int preOffset = 0;
          while (searcher.next())
          {
              Character label = searcher.value;
              int offset = searcher.begin;
              String key = new String(charArray, offset, searcher.length);
              if (preOffset != offset)
              {
                  if (appendTimes > 1 && sbName.length() > 2) // 日本人名最短为3字
                  {
                      insertName(sbName.toString(), activeLine, wordNetOptimum, wordNetAll);
                  }
                  sbName.setLength(0);
                  appendTimes = 0;
              }
              if (appendTimes == 0)
              {
                  if (label == JapanesePersonDictionary.X)
                  {
                      sbName.append(key);
                      ++appendTimes;
                      activeLine = offset + 1;
                  }
              }
              else
              {
                  if (label == JapanesePersonDictionary.M)
                  {
                      sbName.append(key);
                      ++appendTimes;
                  }
                  else
                  {
                      if (appendTimes > 1 && sbName.length() > 2)
                      {
                          insertName(sbName.toString(), activeLine, wordNetOptimum, wordNetAll);
                      }
                      sbName.setLength(0);
                      appendTimes = 0;
                  }
              }
              preOffset = offset + key.length();
          }
          if (sbName.length() > 0)
          {
              if (appendTimes > 1)
              {
                  insertName(sbName.toString(), activeLine, wordNetOptimum, wordNetAll);
              }
          }
      }
docs: 执行识别
  
  @param segResult      粗分结果
  @param wordNetOptimum 粗分结果对应的词图
  @param wordNetAll     全词图