本文整理汇总了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;
}
示例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);
}
示例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);
}
示例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;
}