命名实体识别

这篇文档主要介绍了命名实体识别算法的输入、输出以及各算法支持的参数配置。

命名实体识别接口

class oknlp.ner.BaseNER
__call__(sents: List[str])List[List[Dict[str, Union[str, int]]]]
参数

sents -- 输入的句子列表。

返回

返回一个和输入长度相同的列表,其中每一项对应其命名实体结果。

每个命名实体识别结果会包含多个实体,每个实体由一个包含三个字段的字典表示:

  • type

  • begin

  • end

更多信息请参考 命名实体识别 - 示例

实际案例

>>> import oknlp
>>> ner = oknlp.ner.get_by_name()
>>> ner(['我爱北京天安门'])
[[{'type': 'LOC', 'begin': 2, 'end': 4}, {'type': 'LOC', 'begin': 4, 'end': 7}]]

命名实体识别实现

BERT

class oknlp.ner.BertNER

基于BERT的命名实体识别算法

参数
  • device (str) -- 运行模型设备的名称,例如:"cuda:1","cpu"。

  • batch_size (int) -- 模型单次推理最大的batch size,默认会根据硬件资源自动设置。

  • num_preprocess (int) -- 预处理函数进程数,默认为一个自动设置的不超过4的值。

  • num_postprocess (int) -- 后处理函数进程数,默认为一个自动设置的不超过4的值。

  • max_queue_size (int) -- 最大调用队列长度,默认为1024.

  • multiprocessing_context -- 多进程上下文,默认优先使用"fork"方式。

Name

bert

示例

oknlp.ner.get_by_name("bert", device="cuda")