java nature_Java Nature.nsf方法代码示例

这篇博客展示了如何使用Java的HanLP库进行音译人名的识别。通过`Nature.nrf`和`Nature.nsf`标签,识别粗分结果中的音译人名,并将识别到的人名插入到词图中。
摘要由CSDN通过智能技术生成

import com.hankcs.hanlp.corpus.tag.Nature; //导入方法依赖的package包/类

/**

* 执行识别

* @param segResult 粗分结果

* @param wordNetOptimum 粗分结果对应的词图

* @param wordNetAll 全词图

*/

public static void Recognition(List segResult, WordNet wordNetOptimum, WordNet wordNetAll)

{

StringBuilder sbName = new StringBuilder();

int appendTimes = 0;

ListIterator listIterator = segResult.listIterator();

listIterator.next();

int line = 1;

int activeLine = 1;

while (listIterator.hasNext())

{

Vertex vertex = listIterator.next();

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), WORD_ID), wordNetAll);

}

sbName.setLength(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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值