欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > NLP相关python库

NLP相关python库

2025/2/12 11:57:43 来源:https://blog.csdn.net/qq_29876847/article/details/142784630  浏览:    关键词:NLP相关python库

一、torchcrf(他不是神经网络模型)

0. 应用场景和输入输出

0.1 应用场景

自然语言处理(NLP):

  • 词性标注(Part-of-Speech Tagging): 标注文本中的每个单词属于哪一类词性(名词、动词、形容词等)。
  • 命名实体识别(Named Entity Recognition, NER): 识别文本中的专有名词,如人名、地点、组织名等。
  • 句法分析(Syntactic Parsing): 分析句子结构,确定单词之间的关系,如主谓宾结构。
  • 文本分块(Chunking): 将文本分割成有意义的块,如名词短语。
  • 语义角色标注(Semantic Role Labeling): 识别句子中谓词和其论元之间的关系。

0.2 输入

特征集合:特征集合是由一系列特征函数组成,每个特征函数用于提取观测序列中特定位置的信息。

观测序列:观测序列是CRF模型需要标注的数据序列。在自然语言处理中,这通常是一个句子,其中的每个词都是一个观测。

0.3 输出

观测序列的对应标签序列,例如:

  • 在词性标注中,输出序列可能是每个词的词性标签序列。
  • 在命名实体识别中,输出序列可能是每个词的实体类型标签序列,如人名、地点、组织等。

1.导入

1.1 常规范式

pip install pytorch-crf

from torchcrf import CRF      

1.2 案例

import torch
import torch.nn as nn
from torchcrf import CRF

 2.集成在神经网络模型

2.1 位置与要求

一般是在__init__函数中,需要为函数传入一个参数num_tags.

一般放在函数尾部,作为最后一层输出层,使用

self.crf = CRF()

实例化对象。

2.2 参数

args.num_labels:模型输出的标签种类数,也是CRF层的标签数量。

batch_first = True:决定了数据以什么样的格式输入给CRF层,如果是true,则数据输入形状应该是(batch_size, seq_length, input_size),否则则是( seq_length, batch_size,input_size)

3.实例化对象的属性和方法

方法名作用参数参数解释
self.crf()计算得到的损失值,这是一个标量,一般取它的负值。seq_out,labelsseq_out: 标签的数量。labels: 真实标签,至少要拿这两个参数进行损失函数计算。
forward前向传播,用于计算损失或进行解码。emissionstagsmaskemissions: 发射分数。tags: 真实标签(可选)。mask: 掩码,指示哪些位置的标签应该被计算。
decode解码发射分数以预测标签序列。emissionsmaskemissions: 发射分数。mask: 掩码。
log_likelihood计算给定发射分数和真实标签的对数似然。emissionstagsmaskemissions: 发射分数。tags: 真实标签。mask: 掩码。
reset_parameters重置CRF层的参数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com