/** * 为了索引模式修饰结果 * * @param vertexList * @param wordNetAll */ protected static LinkedList <Term> decorateResultForIndexMode(LinkedList <Vertex> vertexList, WordNet wordNetAll) { LinkedList <Term> termList = new LinkedList <Term>(); int line = 1; LinkedList <Vertex> .Enumerator listIterator = vertexList.GetEnumerator(); listIterator.MoveNext(); int length = vertexList.Count - 2; for (int i = 0; i < length; ++i) { listIterator.MoveNext(); Vertex vertex = listIterator.Current; Term termMain = convert(vertex); termList.AddLast(termMain); termMain.offset = line - 1; if (vertex.realWord.Length > 2) { // 过长词所在的行 int currentLine = line; while (currentLine < line + vertex.realWord.Length) { LinkedList <Vertex> vertexListCurrentLine = wordNetAll.get(currentLine); // 这一行的词 foreach (Vertex smallVertex in vertexListCurrentLine) // 这一行的短词 { if ( ((termMain.nature == Nature.mq && smallVertex.hasNature(Nature.q)) || smallVertex.realWord.Length > 1) && smallVertex != vertex) { //listIterator.Add(smallVertex); Term termSub = convert(smallVertex); termSub.offset = currentLine - 1; termList.AddLast(termSub); } } ++currentLine; } } line += vertex.realWord.Length; } return(termList); }