NLP 预测模型 Demo

2016-04-16 · 2 分钟阅读时长
projects

背景

2016 年,Coursera 上与 Johns Hopkins 大学合作的 Data Science 专项课程的 Capstone 项目。课程以 SwiftKey 输入法为例,提供一个来自推特的英文语料库,要求我们独立完成从数据清洗到预测建模的完整流程,最终交付一个可交互的 Shiny 应用。

当时读了吴军老师的《数学之美》,对自然语言处理的统计方法产生了深刻的兴趣——书中讲马尔可夫链、n-gram 模型、信息熵的那几章,直接指导了我接下来的工作。

做了什么

  1. 数据清洗与探索:从原始 Twitter 语料中抽样、分词、去停用词、构建 n-gram 频率矩阵。写了一份 R Markdown 数据探索报告,分析了词频分布、Zipf 定律的实证表现、以及 blog/news/twitter 三种文本的句式差异。

  2. n-gram 语言模型:基于马尔可夫假设构建 unigram/bigram/trigram 模型。核心挑战是处理未见过的 n-gram——模型在训练集中没见过的词组合,不能直接给零概率。

  3. Good-Turing 平滑:用 $r+1$ 次出现的 n-gram 数量来重新估计 $r$ 次出现的概率,使得训练集中从未出现的 n-gram 也能获得非零概率——“从未见过"不等于"不可能出现”。

  4. Shiny 交互式部署:将训练好的模型打包成 R Shiny 应用,部署在 shinyapps.io 上。输入文本,实时返回下一个词的预测。

技术栈

R · quanteda · data.table · ggplot2 · Shiny · Good-Turing Estimation · shinyapps.io

为什么值得看

这是 2016 年自学完成的。没有导师、没有实验室、没有 GPU——就用一台自己组装的 PC 和 Coursera 上的课程视频。从数据清洗到数学模型到交互式部署,一条完整的独立生产线。十年后回头看,这也是我后来做 mcp-dbutils、做 AI Agent 的底层工作流原型:拿到数据 → 理解本质 → 建模 → 部署给人用

董昊
Authors
AI Infrastructure Engineer · Open Source Builder
AI 基础设施工程师,工作生活在阿联酋。开源工具 mcp-dbutils(数读) 作者——让大模型安全连接工业数据库的 MCP 协议工具。 技术博客 jiejue.ai 主理人,周活跃读者 1,960 人。 相信智力劳动的价值——中国人是可以靠头脑创造价值的,理应能够获得匹配的回报。