BiLSTM-CRF:深入浅出理解序列标注的黄金搭档
BiLSTM-CRF:深入浅出理解序列标注的黄金搭档前言在自然语言处理(NLP)任务中,比如 命名实体识别(NER)、词性标注(POS tagging)、分块(Chunking) 等,我们面临的本质是一个 序列标注问题。如何高效捕捉前后文语义,并输出最优的标签序列?这时,BiLSTM + CRF 组合登场了。 这篇博客将用通俗易懂的方式讲清楚:$x_{n}$ 什么是 BiLSTM? 什么是 CRF? 为什么它们要组合在一起? 用 PyTorch 实现 BiLSTM-CRF 一、序列标注简介输入: 一个词语序列(如一个句子)输出: 每个词对应一个标签(如人名/地名/组织/无) 例子: 123输入: [李明, 在, 北京, 工作]标签: [PER, O, LOC, O] 传统机器学习方法如 HMM、最大熵、CRF 已用于此类任务多年。深度学习带来了 LSTM、BERT 等模型,对捕捉上下文能力有极大提升。但光靠 BiLSTM 输出每个词的预测,还不能保证整体标签序列的最优结构。这就是 CRF 发挥作用的地方。 二、什么是 BiL...
机器学习
汇总机器学习从问题定义到部署监控的各个阶段,融合代码实战、实践和可视化建议。 问题定义(Problem Definition)目标 明确任务类型(监督/非监督/强化) 确定预测目标(标签) 将业务目标映射为机器学习任务 实践要点 问题类型 特征 标签 示例 监督学习 ✅ ✅ 房价预测、图像分类 无监督学习 ✅ ❌ 用户聚类、异常检测 强化学习 ✅ 奖励值 游戏AI、机器人导航 1234 # 示例:API 拉取数据 import requests data = requests.get("https://api.example.com/data").json() 数据收集(Data Collection)目标 获取高质量、相关性强的数据 数据来源 API:如 OpenWeatherMap、金融接口 数据库:MySQL、PostgreSQL 爬虫:requests + BeautifulSoup / Scrapy 日志、传感器数据 1234 # 示例:API 拉取数据...
vim常用命令
vim教程 基本操作 i:进入插入模式 Esc:退出插入模式,返回正常模式 :w:保存文件 :q:退出 Vim :wq:保存并退出 Vim :q!:不保存并强制退出 Vim 移动光标 h:向左移动一个字符 j:向下移动一行 k:向上移动一行 l:向右移动一个字符 0:移动到行首 $:移动到行尾 G:移动到文件末尾 gg:移动到文件开头 删除和复制 x:删除光标下的字符 dd:删除当前行 yy:复制当前行 p:粘贴剪贴板中的内容 搜索和替换 /:向前搜索 ?:向后搜索 n:重复上一次搜索 N:反向重复上一次搜索 :s/old/new/g:替换当前行中的 old 为 new :%s/old/new/g:替换文件中所有的 old 为 new vi/vim 的使用基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。 命令模式用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时...
Android之IJKPlayer
Android 集成 ijkplayer 播放器 + 封装实践(控制栏 / 倍速 / 全屏)最近项目中用到了在线视频播放功能,在调研了 ExoPlayer、VLC、ijkplayer 后,最终选择了 Bilibili 开源的 ijkplayer —— 功能强大,FFmpeg 底层支持全面,关键是还支持直播流、软/硬解切换、流式播放等特性。 本文分享我在项目中: 如何 快速引入 ijkplayer; 如何自定义播放器组件(控制栏、倍速、全屏); 踩坑 & 性能优化经验。 一、ijkplayer 快速集成1. 添加依赖项目根目录 settings.gradle: 1234567891011groovy复制编辑dependencyResolutionManagement { repositories { google() mavenCentral() maven { url "https://jitpack.io" } }...
Android反编译
一、反编译 APK 的主要步骤 解压 APK 文件 APK 本质上是一个 zip 压缩包,可以直接用 unzip 或者 7zip 打开。 里面主要包含: classes.dex:Dalvik/ART 字节码 AndroidManifest.xml:清单文件 res/:资源文件(布局、图片等) META-INF/:签名信息 资源文件反编译 工具:apktool 命令示例: 1apktool d app.apk -o app_decoded 可以得到可读的 AndroidManifest.xml 和 res/values/strings.xml 等文件。 字节码转 Java 代码 classes.dex 转为 Java 源码: 先用 dex2jar 转成 jar: 1d2j-dex2jar.sh classes.dex -o classes.jar 再用 JD-GUI / JADX 打开 jar,得到 Java 反编译代码。 更简便的工具: JADX:直接打开 APK,一键浏览 Java 源码和资源。 Smali 代码查...



