基于结构化感知机的词性标注与命名实体识别框架

简介: 上周就关于《结构化感知机标注框架的内容》已经分享了一篇《分词工具Hanlp基于感知机的中文分词框架》,本篇接上一篇内容,继续分享词性标注与命名实体识别框架的内容。词性标注训练词性标注是分词后紧接着的一个任务,训练语料同上,接口如下: 命令行java -cp hanlp.

上周就关于《结构化感知机标注框架的内容》已经分享了一篇《分词工具Hanlp基于感知机的中文分词框架》,本篇接上一篇内容,继续分享词性标注与命名实体识别框架的内容。

644bd889f37f8538cfa57caed232964cfbd05b3e

词性标注

训练

词性标注是分词后紧接着的一个任务,训练语料同上,接口如下:

 

命令行

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个词语所属的命名实体成分。

 

相关文章
|
自然语言处理 算法 机器人
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
|
1月前
|
JSON 自然语言处理 安全
微调大型语言模型进行命名实体识别
大型语言模型的目标是理解和生成与人类语言类似的文本。它们经过大规模的训练,能够对输入的文本进行分析,并生成符合语法和语境的回复。这种模型可以用于各种任务,包括问答系统、对话机器人、文本生成、翻译等。
32 1
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
|
7月前
|
人工智能 自然语言处理 PyTorch
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
315 0
|
7月前
|
机器学习/深度学习 自然语言处理 文字识别
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
|
自然语言处理 数据处理
浅析命名实体识别(NER)的三种序列标注方法
简述序列标注 序列标注(Sequence Tagging)是NLP中最基础的任务,应用十分广泛,如分词、词性标注(POS tagging)、命名实体识别(Named Entity Recognition,NER)、关键词抽取、语义角色标注(Semantic Role Labeling)、槽位抽取(Slot Filling)等实质上都属于序列标注的范畴。
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
|
JSON 自然语言处理 数据挖掘
4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取
4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取
|
XML 存储 JSON
1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等
1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等
1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等
|
机器学习/深度学习 自然语言处理 算法
基于Bi-LSTM与CRF实现中文命名实体识别任务
基于Bi-LSTM与CRF实现中文命名实体识别任务
462 0
基于Bi-LSTM与CRF实现中文命名实体识别任务

热门文章

最新文章