当前位置: 首页>>代码示例>>Java>>正文


Java Nature.mq方法代码示例

本文整理汇总了Java中com.hankcs.hanlp.corpus.tag.Nature.mq方法的典型用法代码示例。如果您正苦于以下问题:Java Nature.mq方法的具体用法?Java Nature.mq怎么用?Java Nature.mq使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.hankcs.hanlp.corpus.tag.Nature的用法示例。


在下文中一共展示了Nature.mq方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: decorateResultForIndexMode

import com.hankcs.hanlp.corpus.tag.Nature; //导入方法依赖的package包/类
/**
 * 为了索引模式修饰结果
 * 
 * @param vertexList
 * @param wordNetAll
 */
protected static List<Term> decorateResultForIndexMode(
		List<Vertex> vertexList, WordNet wordNetAll) {
	List<Term> termList = new LinkedList<Term>();
	int line = 1;
	ListIterator<Vertex> listIterator = vertexList.listIterator();
	listIterator.next();
	int length = vertexList.size() - 2;
	for (int i = 0; i < length; ++i) {
		Vertex vertex = listIterator.next();
		Term termMain = convert(vertex);
		termList.add(termMain);
		termMain.offset = line - 1;
		if (vertex.realWord.length() > 2) {
			// 过长词所在的行
			int currentLine = line;
			while (currentLine < line + vertex.realWord.length()) {
				List<Vertex> vertexListCurrentLine = wordNetAll
						.get(currentLine); // 这一行的词
				for (Vertex smallVertex : 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.add(termSub);
					}
				}
				++currentLine;
			}
		}
		line += vertex.realWord.length();
	}

	return termList;
}
 
开发者ID:priester,项目名称:hanlpStudy,代码行数:45,代码来源:WordBasedGenerativeModelSegment.java

示例2: mergeNumberQuantifier

import com.hankcs.hanlp.corpus.tag.Nature; //导入方法依赖的package包/类
/**
     * 合并数字
     * @param termList
     */
    protected void mergeNumberQuantifier(List<Vertex> termList, WordNet wordNetAll, Config config)
    {
        if (termList.size() < 4) return;
        StringBuilder sbQuantifier = new StringBuilder();
        ListIterator<Vertex> iterator = termList.listIterator();
        iterator.next();
        int line = 1;
        while (iterator.hasNext())
        {
            Vertex pre = iterator.next();
            if (pre.hasNature(Nature.m))
            {
                sbQuantifier.append(pre.realWord);
                Vertex cur = null;
                while (iterator.hasNext() && (cur = iterator.next()).hasNature(Nature.m))
                {
                    sbQuantifier.append(cur.realWord);
                    iterator.remove();
                    removeFromWordNet(cur, wordNetAll, line, sbQuantifier.length());
                }
                if (cur != null)
                {
                    if ((cur.hasNature(Nature.q) || cur.hasNature(Nature.qv) || cur.hasNature(Nature.qt)))
                    {
                        if (config.indexMode)
                        {
                            wordNetAll.add(line, new Vertex(sbQuantifier.toString(), new CoreDictionary.Attribute(Nature.m)));
                        }
                        sbQuantifier.append(cur.realWord);
                        iterator.remove();
                        removeFromWordNet(cur, wordNetAll, line, sbQuantifier.length());
                    }
                    else
                    {
                        line += cur.realWord.length();   // (cur = iterator.next()).hasNature(Nature.m) 最后一个next可能不含q词性
                    }
                }
                if (sbQuantifier.length() != pre.realWord.length())
                {
                    pre.realWord = sbQuantifier.toString();
                    pre.word = Predefine.TAG_NUMBER;
                    pre.attribute = new CoreDictionary.Attribute(Nature.mq);
                    pre.wordID = CoreDictionary.M_WORD_ID;
                    sbQuantifier.setLength(0);
                }
            }
            sbQuantifier.setLength(0);
            line += pre.realWord.length();
        }
//        System.out.println(wordNetAll);
    }
 
开发者ID:priester,项目名称:hanlpStudy,代码行数:56,代码来源:Segment.java

示例3: mergeNumberQuantifier

import com.hankcs.hanlp.corpus.tag.Nature; //导入方法依赖的package包/类
/**
     * 合并数字
     * @param termList
     */
    protected void mergeNumberQuantifier(List<Vertex> termList, WordNet wordNetAll, Config config)
    {
        if (termList.size() < 4) return;
        StringBuilder sbQuantifier = new StringBuilder();
        ListIterator<Vertex> iterator = termList.listIterator();
        iterator.next();
        int line = 1;
        while (iterator.hasNext())
        {
            Vertex pre = iterator.next();
            if (pre.hasNature(Nature.m))
            {
                sbQuantifier.append(pre.realWord);
                Vertex cur = null;
                while (iterator.hasNext() && (cur = iterator.next()).hasNature(Nature.m))
                {
                    sbQuantifier.append(cur.realWord);
                    iterator.remove();
                }
                if (cur != null &&
                        (cur.hasNature(Nature.q) || cur.hasNature(Nature.qv) || cur.hasNature(Nature.qt))
                        )
                {
                    if (config.indexMode)
                    {
                        wordNetAll.add(line, new Vertex(sbQuantifier.toString(), new CoreDictionary.Attribute(Nature.m)));
                    }
                    sbQuantifier.append(cur.realWord);
                    pre.attribute = new CoreDictionary.Attribute(Nature.mq);
                    iterator.remove();
                }
                if (sbQuantifier.length() != pre.realWord.length())
                {
                    pre.realWord = sbQuantifier.toString();
                    sbQuantifier.setLength(0);
                }
            }
            sbQuantifier.setLength(0);
            line += pre.realWord.length();
        }
//        System.out.println(wordNetAll);
    }
 
开发者ID:ml-distribution,项目名称:HanLP,代码行数:47,代码来源:Segment.java

示例4: decorateResultForIndexMode

import com.hankcs.hanlp.corpus.tag.Nature; //导入方法依赖的package包/类
/**
 * 为了索引模式修饰结果
 *
 * @param vertexList
 * @param wordNetAll
 */
protected static List<Term> decorateResultForIndexMode(List<Vertex> vertexList, WordNet wordNetAll)
{
    List<Term> termList = new LinkedList<Term>();
    int line = 1;
    ListIterator<Vertex> listIterator = vertexList.listIterator();
    listIterator.next();
    int length = vertexList.size() - 2;
    for (int i = 0; i < length; ++i)
    {
        Vertex vertex = listIterator.next();
        Term termMain = convert(vertex);
        termList.add(termMain);
        termMain.offset = line - 1;
        if (vertex.realWord.length() > 2)
        {
            // 过长词所在的行
            int currentLine = line;
            while (currentLine < line + vertex.realWord.length())
            {
                List<Vertex> vertexListCurrentLine = wordNetAll.get(currentLine);    // 这一行的词
                for (Vertex smallVertex : 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.add(termSub);
                    }
                }
                ++currentLine;
            }
        }
        line += vertex.realWord.length();
    }

    return termList;
}
 
开发者ID:ml-distribution,项目名称:HanLP,代码行数:48,代码来源:WordBasedGenerativeModelSegment.java


注:本文中的com.hankcs.hanlp.corpus.tag.Nature.mq方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。