上周就关于《结构化感知机标注框架的内容》已经分享了一篇《分词工具Hanlp基于感知机的中文分词框架》,本篇接上一篇内容,继续分享词性标注与命名实体识别框架的内容。
词性标注
训练
词性标注是分词后紧接着的一个任务,训练语料同上,接口如下:
命令行
java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task POS -train -reference data/test/pku98/199801.txt -model data/test/perceptron/pos.bin
API
public void testTrain() throws Exception
{
PerceptronTrainer trainer = new POSTrainer();
trainer.train("data/test/pku98/199801.txt", Config.POS_MODEL_FILE);
}
测试
词性标注器接受的输入不再是纯文本,而是分词后的单词数组或列表:
public void testLoad() throws Exception
{
PerceptronPOSTagger tagger = new PerceptronPOSTagger(Config.POS_MODEL_FILE);
System.out.println(Arrays.toString(tagger.tag("中国 交响乐团 谭利华 在 布达拉宫 广场 演出".split(" "))));
}
正常情况下输出每个单词的词性:
[ns, n, nr, p, ns, n, v]
关于如何组合分词器和词性标注器,使其同时进行分词与词性标注,请参考接下来的章节。
命名实体识别
目前本系统默认支持人名(nr),地名(ns),机构名(nt)三种命名实体的识别,用户可以重载NERTrainer的createTagSet来支持任意NER类型。
训练
命名实体识别是词性标注的后续任务,训练语料依然同上,接口如下:
命令行
java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task NER -train -reference data/test/pku98/199801.txt -model data/test/perceptron/ner.bin
API
public void testTrain() throws Exception
{
PerceptronTrainer trainer = new NERTrainer();
trainer.train("data/test/pku98/199801.txt", Config.NER_MODEL_FILE);
}
自定义NER类型
重载NERTrainer的createTagSet来支持自己的NER类型。当然,用户提供的语料必须满足2014人民日报格式。
PerceptronTrainer trainer = new NERTrainer()
{
@Override
protected TagSet createTagSet()
{
NERTagSet tagSet = new NERTagSet();
tagSet.nerLabels.add("YourNER1");
tagSet.nerLabels.add("YourNER2");
tagSet.nerLabels.add("YourNER3");
return tagSet;
}
};
测试
命名实体识别器的输入不再是纯文本,而是分词结果与词性标注结果:
public void testTag() throws Exception
{
PerceptionNERecognizer recognizer = new PerceptionNERecognizer(Config.NER_MODEL_FILE);
System.out.println(Arrays.toString(recognizer.recognize("吴忠市 乳制品 公司 谭利华 来到 布达拉宫 广场".split(" "), "ns n n nr p ns n".split(" "))));
}
正常情况下输出:
[B-nt, M-nt, E-nt, S, O, S, O]
7个标签代表上述7个词语所属的命名实体成分。
相关推荐
目前包括分词,词性标注,命名实体识别等.zip基于Pytorch+BERT+CRF的NLP序列标注模型,目前包括分词,词性标注,命名实体识别等.zip基于Pytorch+BERT+CRF的NLP序列标注模型,目前包括分词,词性标注,命名实体识别等...
基于隐马尔科夫模型的序列标注(python源码+项目说明)(用于中文分词、词性标注、命名实体识别等).zip 基于隐马尔科夫模型的序列标注(python源码+项目说明)(用于中文分词、词性标注、命名实体识别等).zip 基于...
中英文分词工具有很多,今天我们来使用Jieba、SnowNlp、nltk、thunlp、NLPIR、Stanford等六种工具来对给定中英文文本进行分词、词性标注与命名实体识别。
Java 实现的自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 关键词提取 自动摘要 短语提取 拼音 简繁转换。.zip,自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 新词发现 关键词短语提取 ...
微软亚研的中文分词、词性标注和命名实体识别语料,包括训练和验证集,xml格式,方便使用,机器学习、信息检索以及NLP领域的研究人员使用来训练模型
将提供中文分词、词性标注、命名实体识别、情感分析、知识图谱关系抽取、关键词抽取、文本摘要、新词发现、情感分析、文本聚类等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈给大家。 目录 安装...
基于bert的中文自然语言处理工具,包括情感分析、中文分词、词性标注、以及命名实体识别功能,并提供文本分类任务、序列标注任务、句对关系判断任务的训练与预测接口 说明 基于bert的中文自然语言处理工具 包括情感...
自然语言处理工具Macropodus,基于Albert+BiLSTM+CRF深度学习网络架构,中文分词,词性标注,命名实体识别,新词发现,关键词,文本摘要,文本相似度,科学计算器,中文数字阿拉伯数字(罗马数字)转换,中文繁简转换...
语义理解/口语理解,项目包含有词法分析:中文分词、词性标注、命名实体识别;口语理解:领域分类、槽填充、意图识别。
包括情感分析、中文分词、词性标注、以及命名实体识别功能 提供了训练接口,通过指定输入输出以及谷歌提供的下载好的预训练模型即可进行自己的模型的训练,训练任务有task_name参数决定,目前提供的任务主要包括句子...
工具介绍LAC全称中文的词法分析,是百度自然语言处理部研发的一种联合的词法分析工具,实现中文分词,词性标注,专名识别等功能。该工具具有以下特点和优势:效果好:通过深度学习模型联合学习分词,词性标注,专名...
中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理.zip
人工智能-深度学习-tensorflow
人工智能-项目实践-深度学习
代码中,我们首先加载了spaCy的英文预训练模型('en_core_web_sm')。然后,我们定义了一个待处理的文本,其中包含了一些命名实体。...而识别的命名实体则展示了文本中识别出的命名实体及其对应的标签。
基于隐马尔科夫模型的词性标注,PPT,详细描述
使用keras实现的基于Bi-LSTM CRF的中文分词 词性标注
处理好的人民日报语料,用于命名实体识别,两个文件分别为字符集和词语级