当前位置: 首页 > news >正文

命名实体识别

命名实体识别常用方法:
    1.传统方法
        基于规则:使用正则表达式,词典匹配或语法规则
        统计机器学习
            特征工程:利用词性标注、词形、上下文窗口、前缀或后缀等特征
            模型:隐马尔可夫模型、条件随机场
    2.深度学习方法
        词嵌入:Word2Vec、GloVe等将词转化为向量
        序列建模
            BiLSTM-CRF:双向LSTM捕捉上下文,CRF优化标签序列
            Transformer模型:BERT、RoBERTa等预训练模型通过微调实现SOTA性能
            Prompt Learning:利用模板引导模型生成实体(如“找到组织:[ORG]”)
 

正则的基础知识

基本语法
元字符说明
.匹配任意字符(除换行符)
^匹配行首
$匹配行尾
*前一个字符0次或多次
+前一个字符1次或多次
?前一个字符0次或1次
[]字符集合
()分组捕获
转义字符:特殊字符需用 \ 转义:\. 匹配句号,\\ 匹配反斜杠

 预定义字符类
简写等效表达式说明
\d[0-9]数字
\w[a-zA-Z0-9_]单词字符(字母、数字、下划线)
\s[ \t\n\r\f\v]空白字符(空格、制表符等)
\D[^0-9]非数字
\W[^\w]非单词字符
\S[^\s]非空白字符

 正则表达式在NER中的应用

# 匹配"YYYY-MM-DD"或"MM/DD/YYYY"
(\d{4}-\d{2}-\d{2})|(\d{2}/\d{2}/\d{4})

# 匹配11位手机号(以13/14/15/17/18/19开头)
^1[3-9]\d{9}$

# 简单匹配(如user@example.com)
\w+@\w+\.(com|cn|net)

# 匹配"¥100.00"或"$1,000"
[¥$]\d+(,\d{3})*(\.\d{2})?

# 匹配"¥100.00"或"$1,000"
[¥$]\d+(,\d{3})*(\.\d{2})?

#嵌套结构
# 匹配"北京市(海淀区)"中的地名
([^\(]+)\(([^\)]+)\)

Word2Vec的基础知识

目标:将单词映射到低维稠密向量空间,使得语义/语法相似的词在向量空间中距离相近。

两种模型架构:

1.CBOW

  • 输入:周围上下文词(窗口内的词)的向量。

  • 输出:预测当前中心词。

  • 特点

    • 适合小型数据集或高频词。

    • 训练速度快,对罕见词表现较差。

2. Skip-gram

  • 输入:当前中心词的向量。

  • 输出:预测周围上下文词。

  • 特点

    • 适合大型数据集,能更好处理罕见词。

    • 训练速度较慢,但效果通常优于CBOW。

架构对比

模型输入输出适用场景
CBOW上下文词中心词小数据、高频词
Skip-gram中心词上下文词大数据、罕见词

 训练步骤详解

 数据预处理
  • 分词:英文转为小写,中文需分词(如结巴分词)。

  • 停用词过滤:移除无意义词(如“的”、“and”)。

  • 低频词处理:删除出现次数少于 min_count 的词。

2. 构建词汇表
  • 统计词频,为每个词分配唯一索引。

  • 生成 (word, index) 映射和反向映射。

3. 模型训练(以Skip-gram为例)
  • 输入层:中心词的 one-hot 向量(维度=词汇表大小)。

  • 隐藏层:无激活函数,权重矩阵 W(维度=[vocab_size, embedding_dim])即为词向量表。

  • 输出层:Softmax 预测上下文词的概率分布。

相关文章:

  • nt!IopCompleteReques函数分析之IopUpdateOtherTransferCount和IopDequeueThreadIrp
  • 【Pandas】pandas Series to_excel
  • 串口USART
  • vue3中watch 函数参数说明
  • db_join连接语句
  • Ubuntu 22.04 安装向日葵远程控制
  • 电路租用和专线
  • [Linux]从零开始的STM32MP157 Linux内核移植
  • 只出现一次的数字
  • 为AI聊天工具添加一个知识系统 之150 设计重审 之15 完整方案及评估 之3
  • 【mybatis使用小知识合集持续更新】
  • 283.移动零解题记录
  • 深入解析 MyBatis-Plus 批量操作:原理、实现与性能优化
  • Matplotlib.day16
  • Nextjs15 - 什么是CSR、SSR、SSG和ISR
  • centos 7 搭建ftp 基于虚拟用户用shell脚本搭建
  • k8s存储介绍(六)StorangeClass
  • Redis :command not allowed when used memory
  • a, b = map(int, input().split()) 从用户输入中读取两个整数
  • 耘想Docker LinNAS,颠覆传统存储体验!
  • 韩国总统大选候选人登记结束,共7人参选
  • 韩国大选连发“五月惊奇”:在野党刚“摆脱”官司,执政党又生“内讧”
  • 宜昌全域高质量发展:机制创新与产业重构的双向突围
  • 2025中国品牌日上海践行活动启动,将建设品牌生态交互平台
  • 夜读丨古代有没有近视眼?
  • 家庭相册㉙在沪打拼25年,我理解了父母清晨去卖蜜饯的辛苦