📢 转载信息
原文链接:https://www.kdnuggets.com/5-fun-nlp-projects-for-absolute-beginners
原文作者:Kanwal Mehreen
图片作者 | Canva
二级标题 # 引言
我个人发现计算机能够处理语言这件事非常神奇。这就像看着一个婴儿学说话,只不过是用代码和算法来实现。有时候感觉很奇妙,但这恰恰是自然语言处理(NLP)如此有趣的原因。你真的能让计算机理解你的语言吗?这正是好玩之处。如果你是第一次阅读我的“趣味项目”系列,我希望澄清一下,这里的目标是通过介绍一些你可以尝试的最佳动手项目(从简单到略微进阶)来推广项目式学习。在这篇文章中,我挑选了五个来自主要NLP领域的项目,让你对事物的工作原理有一个全面的了解,涵盖了基础知识到更实际的应用概念。其中一些项目使用特定的架构或模型,了解它们的结构会有所帮助。所以,如果你觉得需要先温习某些概念,别担心,我在结论部分添加了一些额外的学习资源:)
二级标题 # 1. 从零开始构建分词器(Tokenizers)
项目 1: 如何在 Python 和 HuggingFace 中构建 Bert WordPiece 分词器
项目 2: 让我们构建 GPT 分词器
文本预处理是任何NLP任务中第一个也是最基本的组成部分。它通过将原始文本分解成更小的单元,如单词、子词甚至字节,从而将文本转换为机器可以实际处理的内容。为了很好地理解它是如何工作的,我建议查看这两个很棒的项目。第一个项目指导你使用 Hugging Face 在 Python 中构建一个 BERT WordPiece 分词器。它展示了单词如何被分割成更小的子词单元,例如在词尾添加“##”来标记词语的一部分,这有助于像 BERT 这样的模型通过将其分解成熟悉的片段来处理罕见或拼写错误的词语。第二个视频,安德烈·卡帕西(Andrej Karpathy)的“让我们构建 GPT 分词器”,虽然有点长,但绝对是黄金资源。他讲解了 GPT 如何使用字节级的字节对编码(BPE)来合并常见的字节序列,并更灵活地处理文本,包括空格、标点符号甚至表情符号。如果你想了解文本在转换为词元时实际发生了什么,我强烈推荐观看这个视频。一旦你对分词技术感到熟悉,NLP中的其他内容就会变得清晰得多。
二级标题 # 2. 实体识别(NER)实战:识别名称、日期和组织
项目 1: Python 中的命名实体识别(NER):预训练和自定义模型
项目 2: 使用 BERT 构建实体提取模型
了解文本表示方式后,下一步是学习如何从中实际提取意义。一个很好的起点是命名实体识别(NER),它教会模型识别句子中的实体。例如,在“苹果公司在今年一月达到了143美元的历史最高股价”这句话中,一个好的 NER 系统应该识别出“苹果公司”为一个组织,“143美元”为金钱,以及“今年一月”为日期。第一个视频展示了如何使用 spaCy 和 Hugging Face Transformers 等库来使用预训练的 NER 模型。你将看到如何输入文本、获取实体的预测,甚至如何可视化它们。第二个视频更进一步,指导你通过自己对 BERT 进行微调来构建一个实体提取系统。你不再依赖现成的库,而是自己编写流程:标记文本、将词元与实体标签对齐、使用 PyTorch 或 TensorFlow 对模型进行微调,然后使用它来标记新文本。我建议将 NER 作为你的第二个项目,因为它是一个能让你真正感受到 NLP 实用性的任务。你会开始看到机器如何理解“谁在何时、何地做了什么”。
二级标题 # 3. 文本分类:使用 BERT 预测情感
项目: 文本分类 | 使用 Hugging Face、PyTorch 和 Python 教程对 BERT 进行情感分析
在学习了如何表示文本和提取实体之后,下一步就是教会模型为文本分配标签,情感分析就是一个经典案例。这是一个比较早期的项目,你可能需要对视频中提到的一点代码做出修改才能成功运行(请查看视频评论),但我仍然推荐它,因为它也解释了 BERT 的工作原理。如果你还不熟悉 Transformer 模型,这是一个很好的起点。该项目指导你如何使用 Hugging Face 上的预训练 BERT 模型来对电影评论、推文或产品反馈等文本进行分类。在视频中,你会看到如何加载带标签的数据集、预处理文本,以及如何微调 BERT 来预测每个示例是积极、消极还是中性。这是将分词、模型训练和评估整合到一个工作流程中的清晰展示。
二级标题 # 4. 使用 RNN 和 LSTM 构建文本生成模型
项目 1: 文本生成 AI - Python 中的下一个词预测
项目 2: 使用 LSTM 进行文本生成与 Nabil Hassein 拼写检查
序列建模涉及的输出是文本序列的任务,这是现代语言模型工作方式的重要组成部分。这些项目侧重于文本生成和下一个词预测,展示了机器如何学习一次一个词地续写句子。第一个视频指导你构建一个基于简单循环神经网络(RNN)的语言模型,用于预测序列中的下一个词。这是一个经典的练习,它能真正展示模型如何学习文本中的模式、语法和结构,这正是 GPT 等模型在更大规模上所做的事情。第二个视频使用长短期记忆网络(LSTM)从散文或代码中生成连贯的文本。你将看到模型如何一次输入一个词或字符,如何对预测进行采样,甚至像温度(temperature)和束搜索(beam search)这样的技巧如何控制生成文本的创造性。这些项目清楚地表明,文本生成并非魔法,而是关于以智能方式链接预测的过程。
二级标题 # 5. 构建一个 Seq2Seq 机器翻译模型
项目: 用于机器翻译的 PyTorch Seq2Seq 教程
最后一个项目将 NLP 的应用扩展到英语之外,专注于机器翻译这一实际任务。在这个项目中,你将构建一个编码器-解码器网络,其中一个网络读取并编码源句子,另一个网络将其解码成目标语言。这基本上就是谷歌翻译和其他翻译服务所做的工作。本教程还展示了注意力机制(attention mechanisms),以便解码器可以关注输入的正确部分,并解释了如何使用 BLEU(双语信息交换评估)分数等指标在并行文本上进行训练和评估翻译。这个项目将你迄今所学的一切都融入到一个实际的 NLP 任务中。即使你以前使用过翻译应用,亲手构建一个玩具翻译器也能让你对这些系统幕后工作原理有实际的了解。
二级标题 # 结论
到此,列表就结束了。每个项目都涵盖了五个主要的 NLP 领域之一:分词、信息提取、文本分类、序列建模和应用多语言 NLP。通过尝试这些项目,你将对 NLP 流程如何从头到尾工作有一个很好的认识。如果你觉得这些项目有帮助,请为教程创作者点赞,并分享你的成果。
要学习更多知识,斯坦福大学的 CS224N 课程:深度学习中的自然语言处理是一个极好的资源。如果你喜欢通过项目学习,你也可以查看我们其他的“5个趣味项目”系列:
Kanwal Mehreen 是一位机器学习工程师和技术作家,对数据科学以及人工智能与医学的交叉领域抱有深厚的热情。她是电子书《最大化 ChatGPT 生产力》的合著者。作为 2022 年亚太地区的谷歌一代学者,她倡导多元化和学术卓越。她还获得了 Teradata 技术多元化学者、Mitacs Globalink 研究学者和哈佛 WeCode 学者的认可。Kanwal 是一位热情的变革倡导者,创立了 FEMCodes 组织,旨在赋权 STEM 领域的女性。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区