MVP 技术验证:英语分词、原文定位与本地词典贯通 #3

Closed
opened 2026-09-10 17:08:54 +08:00 by ila · 3 comments
Owner

来源与目标

2026-09-10 用户确认 F01–F12、原型通过,并要求按四阶段建议推进。原型验收:#1 评论 7498。阶段 2;覆盖 F05–F06 技术验证。

用虚构英语文本建立可运行的输入—分词/lemma—本地查询—结果展示验证路径,为生产集成固定资源与位置契约。

验收标准

  • 核查候选分词器、词典格式及资源来源和许可;固定一个英语词典和模型版本;Python NLP 是否采用由实测决定,不预设已接入。
  • 含撇号、连字符、换行、连续空白、emoji、组合字符的原文可精确还原;明确后端与浏览器位置单位和转换样例。
  • 断开在线翻译依赖仍可查询;lemma 回退、无结果和缺失资源可区分;记录长文/查询性能样本与环境。
  • 输出可复现验证命令、契约、限制与推荐方案;验证小样不冒充可上线产品。

依赖与执行

前置:#2。状态:已完成。前置尚未通过时不得标进行中;每单完成停在待验收,由用户验收后关闭。技术验证可与不依赖其结论的工作分工,但不提前冻结未验证契约。

参考模块与设计证据

go-admin service/DTO/错误响应结构;自然语言词典是新增领域,不使用 SysDict 枚举表充当语言词典。

不补后台原型;采用最小输入/结果验证界面,复用已验收查词状态。

后端不为建表/API 单独画页面原型;先写数据、接口、状态、隔离与幂等契约。学习端采用 #1 已验收 v1,未做的 LinguaCafe 对照不标完成。

工作量、范围与风险

预计 3~5 人日(8 小时/人日),包含本单设计、前后端实现、相关测试、修正和文档;是规划估算,不是交付日期或 AI 运行时间。仅 F 范围,X 系列不纳入。数据变更先在隔离测试库验证迁移/回退,保留既有数据和原型。

文档与证据

实施时按影响更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification;需求变化更新 Product-Requirements-Overview,交付单补实际部署恢复文档。Wiki 先写再回读同步;结束评论记录测试、未验证内容、提交及 revision。工单正文保留基线,重要变化追加评论。

Gitea MCP 指向其他站点,沿用目标 git.ilapage.cn API 回退;凭据仅进入进程。

## 来源与目标 2026-09-10 用户确认 F01–F12、原型通过,并要求按四阶段建议推进。原型验收:#1 评论 7498。阶段 2;覆盖 F05–F06 技术验证。 用虚构英语文本建立可运行的输入—分词/lemma—本地查询—结果展示验证路径,为生产集成固定资源与位置契约。 ## 验收标准 - [x] 核查候选分词器、词典格式及资源来源和许可;固定一个英语词典和模型版本;Python NLP 是否采用由实测决定,不预设已接入。 - [x] 含撇号、连字符、换行、连续空白、emoji、组合字符的原文可精确还原;明确后端与浏览器位置单位和转换样例。 - [x] 断开在线翻译依赖仍可查询;lemma 回退、无结果和缺失资源可区分;记录长文/查询性能样本与环境。 - [x] 输出可复现验证命令、契约、限制与推荐方案;验证小样不冒充可上线产品。 ## 依赖与执行 前置:#2。状态:已完成。前置尚未通过时不得标进行中;每单完成停在待验收,由用户验收后关闭。技术验证可与不依赖其结论的工作分工,但不提前冻结未验证契约。 ## 参考模块与设计证据 go-admin service/DTO/错误响应结构;自然语言词典是新增领域,不使用 SysDict 枚举表充当语言词典。 不补后台原型;采用最小输入/结果验证界面,复用已验收查词状态。 后端不为建表/API 单独画页面原型;先写数据、接口、状态、隔离与幂等契约。学习端采用 #1 已验收 v1,未做的 LinguaCafe 对照不标完成。 ## 工作量、范围与风险 预计 3~5 人日(8 小时/人日),包含本单设计、前后端实现、相关测试、修正和文档;是规划估算,不是交付日期或 AI 运行时间。仅 F 范围,X 系列不纳入。数据变更先在隔离测试库验证迁移/回退,保留既有数据和原型。 ## 文档与证据 实施时按影响更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification;需求变化更新 Product-Requirements-Overview,交付单补实际部署恢复文档。Wiki 先写再回读同步;结束评论记录测试、未验证内容、提交及 revision。工单正文保留基线,重要变化追加评论。 Gitea MCP 指向其他站点,沿用目标 git.ilapage.cn API 回退;凭据仅进入进程。
Author
Owner

用户于 2026-09-10 指示“做 #3”。前置 #2 已验收关闭;本次分支 feat/3-english-nlp-spike 基于已验收的 #18 分支,不合并已有 PR。

实施计划(仅隔离技术验证):

  1. 核查 spaCy、NLTK/规则方案与 WordNet 资源来源及许可,固定包、模型与词典文件版本及校验值。
  2. 在 spikes/english 创建可重复运行的小样和测试;逐字保留原文,输出半开区间的 Unicode code point / UTF-8 byte / UTF-16 code unit 位置及稳定内容哈希。测试撇号、连字符、换行、空白、emoji 与组合字符。
  3. 实测候选 NLP,提供本地词典直接命中、lemma 回退、无结果和资源缺失的不同结果;离线运行禁止发起外网请求。词典与模型只在显式安装阶段获取。
  4. 提供仅监听 loopback 的最小输入/结果页面与命令行,不接入学习账号、生产 API 或 MySQL,不保存用户输入。固定上限与错误响应,页面采用现有简洁阅读风格。
  5. 记录长文分词、冷启动与查询性能样本、环境和限制;更新架构、业务契约及本地验证 Wiki,回读同步镜像。测试后提交推送并回写证据,停在待验收。

风险和回退:语言分析有歧义;词典为英语释义,不承诺中文翻译。小样不作为可上线学习功能。变更限定独立目录,停止小样进程即可回退,现有服务与数据库不变。Gitea MCP 指向其他站点,继续使用目标站点 API 回退。

用户于 2026-09-10 指示“做 #3”。前置 #2 已验收关闭;本次分支 feat/3-english-nlp-spike 基于已验收的 #18 分支,不合并已有 PR。 实施计划(仅隔离技术验证): 1. 核查 spaCy、NLTK/规则方案与 WordNet 资源来源及许可,固定包、模型与词典文件版本及校验值。 2. 在 spikes/english 创建可重复运行的小样和测试;逐字保留原文,输出半开区间的 Unicode code point / UTF-8 byte / UTF-16 code unit 位置及稳定内容哈希。测试撇号、连字符、换行、空白、emoji 与组合字符。 3. 实测候选 NLP,提供本地词典直接命中、lemma 回退、无结果和资源缺失的不同结果;离线运行禁止发起外网请求。词典与模型只在显式安装阶段获取。 4. 提供仅监听 loopback 的最小输入/结果页面与命令行,不接入学习账号、生产 API 或 MySQL,不保存用户输入。固定上限与错误响应,页面采用现有简洁阅读风格。 5. 记录长文分词、冷启动与查询性能样本、环境和限制;更新架构、业务契约及本地验证 Wiki,回读同步镜像。测试后提交推送并回写证据,停在待验收。 风险和回退:语言分析有歧义;词典为英语释义,不承诺中文翻译。小样不作为可上线学习功能。变更限定独立目录,停止小样进程即可回退,现有服务与数据库不变。Gitea MCP 指向其他站点,继续使用目标站点 API 回退。
Author
Owner

#3 实施完成,待用户验收

提交:b7c976eb75199b77791685495ed1ee27651cfd0d
PR:#20
本机验收入口:http://127.0.0.1:5183/ (临时进程;停止后按 spikes/english/README.md 启动,无需账号)

实现:Python 3.12.12 / spaCy 3.8.7 / en_core_web_sm 3.8.0 / NLTK 3.9.2 / WordNet 3.0;资源真实下载、SHA256 核对与许可记录完成。查词只读本地 ZIP,exact/lemma/not_found/resource_missing 独立状态。原文连续分区、CP/UTF-8/UTF-16 半开区间与原文哈希;包括撇号、连字符、换行、连续空白、emoji、ZWJ 与组合字符。

验证结果:

  • 11 项 Python 测试通过,2 项 JS 测试通过;uv pip check 48 个包兼容。
  • 真实引擎测试与 benchmark 禁止 socket connect,离线仍可分词/查词;不是整机断网测试。
  • 浏览器实际验证默认分词、重新输入分析、went→go 回退、无结果;emoji 位置 CP [1,2)、UTF8 [1,5)、UTF16 [1,3);桌面布局截图已检查。
  • 规格评审与独立质量检查通过;半截 HTTP 请求经实测于 10 秒超时,不会无限阻塞后续请求。
  • 100K code point 分词 3 次中位 1432.9ms;冷加载 2355ms;dog 热查询 100 次中位 0.0149ms/p95 0.023ms;环境及全部样本在 benchmark-result.json。
  • 12 个 lemma 样例 spaCy 11/12,正则+WordNet 默认名词 morphology 6/12。推荐 Python NLP 独立边界,保留 The leaves fell. 中 leaves→leave 的错误,不把样例正确率泛化。

限制:英英词典,最多12义项,不按上下文排列词义;模型有歧义;未接入 Go/学习端正式接口、任务和私人数据,不是上线产品;手机划词属 #4。spaCy/Click 一条弃用警告不影响测试。首次 urllib 下载遇连接重置,资源已通过独立官方请求下载校验,准备脚本本地复核通过;依赖安装阶段需要网络,运行期不需要。

文档:架构、业务契约、本地复现/性能与首页已更新,Wiki 回读与 20 页 sync --verify 通过,镜像包含于上述提交。需求范围和工作量不变,不提前关闭 #3,不开始 #4。

  • Home @ c5a40a06bd288faab9c0a3cbebb3bc2713bc13e7
  • Architecture-and-Code-Map @ 0806b7fa3ee8606020c9d7185e26c059c0b761c9
  • Business-Rules-and-Glossary @ 493544b5fd723c028d9173ecf590b66fea72c20a
  • Local-Development-and-Verification @ bf3483ec95bb73d522776d89dd2c20f9d117adb5
#3 实施完成,待用户验收 提交:b7c976eb75199b77791685495ed1ee27651cfd0d PR:https://git.ilapage.cn/OPC/lexgo/pulls/20 本机验收入口:http://127.0.0.1:5183/ (临时进程;停止后按 spikes/english/README.md 启动,无需账号) 实现:Python 3.12.12 / spaCy 3.8.7 / en_core_web_sm 3.8.0 / NLTK 3.9.2 / WordNet 3.0;资源真实下载、SHA256 核对与许可记录完成。查词只读本地 ZIP,exact/lemma/not_found/resource_missing 独立状态。原文连续分区、CP/UTF-8/UTF-16 半开区间与原文哈希;包括撇号、连字符、换行、连续空白、emoji、ZWJ 与组合字符。 验证结果: - 11 项 Python 测试通过,2 项 JS 测试通过;uv pip check 48 个包兼容。 - 真实引擎测试与 benchmark 禁止 socket connect,离线仍可分词/查词;不是整机断网测试。 - 浏览器实际验证默认分词、重新输入分析、went→go 回退、无结果;emoji 位置 CP [1,2)、UTF8 [1,5)、UTF16 [1,3);桌面布局截图已检查。 - 规格评审与独立质量检查通过;半截 HTTP 请求经实测于 10 秒超时,不会无限阻塞后续请求。 - 100K code point 分词 3 次中位 1432.9ms;冷加载 2355ms;dog 热查询 100 次中位 0.0149ms/p95 0.023ms;环境及全部样本在 benchmark-result.json。 - 12 个 lemma 样例 spaCy 11/12,正则+WordNet 默认名词 morphology 6/12。推荐 Python NLP 独立边界,保留 The leaves fell. 中 leaves→leave 的错误,不把样例正确率泛化。 限制:英英词典,最多12义项,不按上下文排列词义;模型有歧义;未接入 Go/学习端正式接口、任务和私人数据,不是上线产品;手机划词属 #4。spaCy/Click 一条弃用警告不影响测试。首次 urllib 下载遇连接重置,资源已通过独立官方请求下载校验,准备脚本本地复核通过;依赖安装阶段需要网络,运行期不需要。 文档:架构、业务契约、本地复现/性能与首页已更新,Wiki 回读与 20 页 sync --verify 通过,镜像包含于上述提交。需求范围和工作量不变,不提前关闭 #3,不开始 #4。 - Home @ c5a40a06bd288faab9c0a3cbebb3bc2713bc13e7 - Architecture-and-Code-Map @ 0806b7fa3ee8606020c9d7185e26c059c0b761c9 - Business-Rules-and-Glossary @ 493544b5fd723c028d9173ecf590b66fea72c20a - Local-Development-and-Verification @ bf3483ec95bb73d522776d89dd2c20f9d117adb5
Author
Owner

2026-09-10T21:50:14+08:00 用户在当前会话明确确认“#3通过.”。记录验收通过,关闭 #3,并同步 #16 与 Wiki。实现及验证证据见评论 7606、提交 b7c976eb75199b77791685495ed1ee27651cfd0d。此次仅更新验收状态,未重跑功能测试;技术小样的英英词典、模型歧义及未接入生产的限制保持。PR #20 尚未合并。Gitea MCP 指向其他站点,沿用目标站点 API。

2026-09-10T21:50:14+08:00 用户在当前会话明确确认“#3通过.”。记录验收通过,关闭 #3,并同步 #16 与 Wiki。实现及验证证据见评论 7606、提交 b7c976eb75199b77791685495ed1ee27651cfd0d。此次仅更新验收状态,未重跑功能测试;技术小样的英英词典、模型歧义及未接入生产的限制保持。PR #20 尚未合并。Gitea MCP 指向其他站点,沿用目标站点 API。
ila closed this issue 2026-09-10 21:50:15 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/lexgo#3