Skip to content

Latest commit

 

History

History
31 lines (31 loc) · 2.07 KB

nlp_honework1_part1.md

File metadata and controls

31 lines (31 loc) · 2.07 KB

作业1(第一部分):字节对编码(BPE)实现及NLTK数据集评估

目标:本作业的主要目标是实现字节对编码(BPE)算法用于分词,并使用NLTK数据集(特别关注书籍)评估其性能。此外,你还需要使用NLTK的punkt分词器创建参考分词用于比较分析。


任务:

1. 实现BPE算法(4分):

用Python实现字节对编码(BPE)算法,涵盖关键步骤如学习字节对合并和使用学习到的合并操作进行编码/解码。


2. 在NLTK数据集上训练(3分):

使用NLTK的Gutenberg语料库,选择如"austen-emma.txt"、"blake-poems.txt"和"shakespeare-hamlet.txt"等书籍进行BPE算法训练。基于训练创建词汇表。


3. 在NLTK数据集上测试(3分):

在Gutenberg语料库的另一组书籍上评估BPE算法,如《科学怪人》、《德古拉》和《福尔摩斯历险记》。测量分词准确率、覆盖率和其他相关指标。


4. 创建参考分词(2分):

使用NLTK的punkt分词器为测试数据集创建参考分词。以结构化格式保存分词结果供后续比较。


5. 与标准分词比较(2分):

使用NLTK的默认方法(如word_tokenize)在测试数据集上实现基准分词。比较BPE算法与标准分词在准确率、覆盖率等指标上的表现。


6. 可视化(2分):

提供BPE算法学习过程的可视化,展示词汇表的演变和字节对合并的频率。比较训练前后的词汇表。


7. 报告和讨论(3分):

准备详细报告,记录实现过程、实验设置和结果。讨论BPE的优缺点,并与标准分词方法进行比较。 说明实现过程中遇到的挑战并提出可能的改进建议。


提交指南:

  • 提交BPE实现的Python代码,包括带有说明和依赖项的README文件
  • 包含从NLTK Gutenberg语料库中选择的训练和测试书籍的文件夹
  • 提交包含详细解释、可视化和比较分析的报告文档(PDF)
  • 包含使用NLTK的punkt分词器获得的参考分词文件