/**
  * 插入日本人名
  * @param name
  * @param activeLine
  * @param wordNetOptimum
  * @param wordNetAll
  */
 private static void insertName(String name, int activeLine, WordNet wordNetOptimum, WordNet wordNetAll)
 {
     if (isBadCase(name))
     {
         return;
     }
     wordNetOptimum.insert(activeLine, new Vertex(Predefine.TAG_PEOPLE, name, new CoreDictionary.Attribute(Nature.nrj), NRConstant.WORD_ID), wordNetAll);
 }
        /**
         * 执行识别
         * @param segResult 粗分结果
         * @param wordNetOptimum 粗分结果对应的词图
         * @param wordNetAll 全词图
         */
        public static void Recognition(LinkedList <Vertex> segResult, WordNet wordNetOptimum, WordNet wordNetAll)
        {
            StringBuilder sbName      = new StringBuilder();
            int           appendTimes = 0;

            LinkedList <Vertex> .Enumerator listIterator = segResult.GetEnumerator();
            listIterator.MoveNext();
            int line       = 1;
            int activeLine = 1;

            while (listIterator.MoveNext())
            {
                Vertex vertex = listIterator.Current;
                if (appendTimes > 0)
                {
                    if (vertex.guessNature() == Nature.nrf || TranslatedPersonDictionary.containsKey(vertex.realWord))
                    {
                        sbName.Append(vertex.realWord);
                        ++appendTimes;
                    }
                    else
                    {
                        // 识别结束
                        if (appendTimes > 1)
                        {
                            if (HanLP.Config.DEBUG)
                            {
                                //System.out.println("音译人名识别出:" + sbName.ToString());
                            }
                            wordNetOptimum.insert(activeLine, new Vertex(Predefine.TAG_PEOPLE, sbName.ToString(), new CoreDictionary.Attribute(Nature.nrf), NRConstant.WORD_ID), wordNetAll);
                        }
                        sbName.Length = 0;
                        appendTimes   = 0;
                    }
                }
                else
                {
                    // nrf和nsf触发识别
                    if (vertex.guessNature() == Nature.nrf || vertex.getNature() == Nature.nsf
                        //                        || TranslatedPersonDictionary.containsKey(vertex.realWord)
                        )
                    {
                        sbName.Append(vertex.realWord);
                        ++appendTimes;
                        activeLine = line;
                    }
                }

                line += vertex.realWord.Length;
            }
        }