Skip to content

Commit

Permalink
update ch15
Browse files Browse the repository at this point in the history
  • Loading branch information
AXYZdong authored Feb 18, 2024
1 parent 6f2712e commit fbee268
Showing 1 changed file with 6 additions and 15 deletions.
21 changes: 6 additions & 15 deletions notebooks/ch15/ch15.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"   我们可以修改本节中 **序列长度** 来加速训练情感分析模型,即减小每个评论的长度,从而减小每一个批量的大小,加速训练情感分析模型。"
"   [本节](https://zh-v2.d2l.ai/chapter_natural-language-processing-applications/sentiment-analysis-and-dataset.html#id7)中提到如下内容。因此,我们可以修改本节中 **序列长度** 来加速训练情感分析模型,即减小每个评论的长度,从而减小每一个批量的大小,加速训练情感分析模型。\n",
"\n",
">正如我们所料,评论的长度各不相同。为了每次处理一小批量这样的评论,我们通过截断和填充将每个评论的长度设置为500。"
]
},
{
Expand All @@ -57,7 +59,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"   以下是一个示例函数,用于加载Amazon reviews数据集并将其转换为可用于情感分类的数据迭代器。这个函数假设数据集以tsv格式存储,每一行都是一个评论文本和相应的情感标签,以制表符分隔。在使用这个实例函数时,只需将`load_amazon_reviews`函数的参数设置为数据集文件路径和所需的批量大小即可。"
"   以下是一个示例函数,用于加载Amazon reviews数据集并将其转换为可用于情感分类的数据迭代器。在这个函数中,假设数据集以csv格式存储,其中每行包含一个评论文本及其对应的情感标签,这些元素由制表符分隔。在使用这个实例函数时,只需将 `load_amazon_reviews` 函数的参数设置为数据集文件路径和所需的批量大小即可。"
]
},
{
Expand Down Expand Up @@ -6599,6 +6601,7 @@
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"  可以通过spaCy词元化来提高分类精度。首先介绍spaCy:\n",
"> 来源地址:https://spacy.io/\n",
Expand All @@ -6609,10 +6612,7 @@
"  根据官网描述,spaCy 是一个免费的开源库,用于 Python 中的高级自然语言处理包括但不限于词性标注、dependency parsing、NER和相似度计算。它可帮助构建处理和理解大量文本的应用程序可用于多种方向,例如信息提取、自然语言理解或为深度学习提供文本预处理。我们使用spaCy库实现标记化包括将文本分割成单词、标点符号等,这是通过应用特定于每种语言的规则来完成的。\n",
"\n",
"  接下来用代码验证:"
],
"metadata": {
"collapsed": false
}
]
},
{
"cell_type": "code",
Expand Down Expand Up @@ -17856,15 +17856,6 @@
"  对于SNLIBERTDataset等数据集类,通常采用基于最大长度的方法来截断序列。进行截断,即在确定最大长度后对序列进行截断。截断后,将被截断的序列填充后再输入到模型中。这种方法是为了确保所有序列都有一个最大长度,从而避免模型在训练时出现维度不匹配的问题。由于这个方法直接,容易实现,因此是常用的截断方式之一。但是,它可能会导致一些序列被过早地截断,从而丢失一些有用的信息。\n",
"  综上所述,这两种截断方法各有利弊。基于最大长度的方法简单易行,但可能会过早地截断序列;而根据一对序列的长度比值进行截断的方法可以根据实际情况动态地截断序列,但需要设定合适的阈值,并且需要注意避免过度截断。在实际应用中,如何分割这个长序列并如何选择对应长度的子序列,需要考虑多种因素,例如输入模型的最大长度、固定的截断长度,以及序列本身的结构等。截断的主要优点是避免长序列对模型的消耗进行限制,可以提高训练速度和利用GPU存储容量;而缺点是可能会丢失在原始序列中包含的重要上下文信息。 因此,截断的最佳方法取决于数据集的属性和任务的需要,需要根据具体需求、场景,适当的权衡和选择。"
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
}
}
],
"metadata": {
Expand Down

0 comments on commit fbee268

Please sign in to comment.