Укладка паркетной доски из лиственницы

Ремонт

Укладка паркетной доски из лиственницы

Перед началом уклад# 如何用 Python 和 BERT 做中文文本二元分类?

最新推荐文章于 2023-08-29 09:44:18 发布

VIP文章 王树义 最新推荐文章于 2023-08-29 09:44:18 发布

阅读量3.4k 收藏 25

点赞数 4

### 疑问

前几天,我收到了一个读者的问题:

王老师,我最近用 Python 和 BERT 对一个6000条的数据集做文本二元分类。我遵循 huggingface 的教程,按照 BERT 的样例代码做,但是在训练的时候 loss 不下降,一直处于1.1左右,验证集的准确率也只有0.53。如果换成 LSTM,验证集准确率可以轻松达到0.78。我觉得我的代码有问题,但是不知道哪里有问题,请问您有什么建议吗?

如果你对 BERT 不熟悉,我可以简要介绍一下。 BERT 是谷歌公司提出的一种自然语言处理预训练技术。推出后,刷新了一大批自然语言处理任务(包括文本分类)的最佳记录。因此,很多人认为 BERT 是 NLP 深度学习建模的标配,甚至是“基线”(Baseline)。

但是,BERT 真的可以轻松使用吗?

从这名读者的反馈来看,恐怕未必。实际上,我的读者遇到的问题,非常有代表性。如果你从来没有使用过类似 BERT 的预训练语言模型,那么第一次用 BERT 跑分类任务,可能也会遇到类似的“坑”。

于是,我决定写一篇文章,来帮助你避开这些“坑”,轻松用 BERT 完成中文文本分类任务。

### 任务

为了让你更好地理解整个过程,我们得首先明确一下任务。我们采用的数据集,来自于“中国法研杯”司法人工智能挑战赛(CAIL2019)。该数据集中,包含了刑法的法条内容,以及若干跟刑法相关的案件描述。我们的任务,是判断某条法律条款,是否跟某个案件相关。这是一个典型的二元分类问题。

数据集的原始格式如下:

这里包含了若干列,分别是:

— id: 每一条数据的编号;

— fact: 案件描述;

— law: 刑法法条描述;

— prison_term: 刑期(单位是月)

— accusation: 罪名

— articles: 刑法条款编号

— punish_of_ms: 罚金(单位是元)

— death_penalty: 是否死刑

— life_imprisonment: 是否无期徒刑

根据任务目标,我们需要判断某条法律条款,是否跟某个案件相关。因此,我们使用fact 和 articles 这两列。不过为了简化,我们只关注条款编号为 238 的相关性。

也就是说,我们需要将articles 列,转化为一个二元类别。如果里面包含了 238 这一条款编号,那么标记为 1,否则为 0。这样,我们就将任务简化成了一个二元分类问题。

### 环境

为了运行本次实验,你需要使用 GPU 服务器。因为即便如今的 BERT 已经出现了许多变种,模型参数量也大有降低,但是依然需要大量的存储和计算资源。

为了简化流程,我建议你使用 Google 的 Colab 来运行代码。因为你可以免费获得一个配备了 Tesla T4 GPU 的云端运行环境。

Colab 默认采用 K80 GPU 来运行代码。为了使用更高版本的 GPU,你可以点击“代码执行程序”,选择“更改运行时类型”:

在出现的对话框中,将“硬件加速器”选择为 GPU,然后点击“保存”。

然后,在“代码执行程序”菜单中,选择“管理会话”。

在出现的对话框中,选择“终止并删除运行时”。这样,你重新连接的时候,就可以使用 Tesla T4 GPU 了。

你可以使用以下代码,来确认 GPU 已经正确连接。

如果一切正常,你会看到类似这样的输出。

如果运行上述代码的时候,你发现没有 GPU 可用,那么可能需要重新尝试上述步骤,或者等待一段时间再试。

### 数据

为了简化流程,我已经把原始数据集进行了清洗。我们直接使用清洗后的版本。

请点击这个链接(https://github.com/wshuyi/demo-chinese-text-binary-classification-with-bert/blob/master/cail_2019_small_train.csv),将数据文件下载到本地。然后在 Colab 左侧文件浏览器中,将数据上传。

### 代码

下面,我们来看看代码如何运行。

首先,是安装必须的运行库。

注意,我们这里使用了transformers 库。这是 Huggingface 公司开发的自然语言处理库,封装了包括 BERT 在内的大量预训练模型,以及对应的分词工具。我们可以直接调用,从而减少自己编写代码的数量。

如果运行无误,你应该看到类似这样的输出结果。

然后,我们读入数据。记得需要根据你上传的文件名称,来修改对应的代码。

读入后,我们看看数据框的形状。

结果如下。

可见,我们这次只使用了 6000 行数据,特征为 2 列,即fact 和 label。

我们看看前几行数据。

输出如下。

读取无误。

我们看看,两个类别的分布情况。

结果如下。

可见,两个类别的分布,存在不均衡。其中类别 1 的样例数,是类别 0 的 3 倍。这可能会影响到模型的分类效果。如果你感兴趣,可以尝试对类别 0 进行上采样(upsample),或者对类别 1 进行下采样(downsample),看看分类效果是否会有提升。

为了简化流程,我们这里暂时忽略类别不均衡问题。

下面,我们划分一下训练集和验证集。

这里,我们使用 90% 的数据进行训练。剩下的 10% 数据,用于验证。

我们看看划分后的训练集和验证集,分别包含多少样例。

结果如下。

划分无误。

下面,我们使用 BERT 进行建模。

首先,我们从transforms 库里面,导入对应的 BERT 模型和分词工具。

注意,这里我们使用的是 BERT 的 Chinese version。

我们尝试对训练集的第一条数据进行分词处理。

输出如下。

可见,分词结果中,头部和尾部,分别增加了[CLS] 和 [SEP] 这两个符号。这是 BERT 进行文本分类的标准处理方式。

下面,我们编写一个函数,将文本转化为 BERT 需要的数据格式。

这个函数中,我们设定了以下参数:

— max_len: 分词之后,保留的词语(含符号)个数。如果超出,进行截断。如果不足,进行补齐。

— batch_size: 每次输入 BERT 模型的数据条数。

我们尝试将训练集的前 2 条数据,进行转换。

结果如下。

可见,文本数据已经转换成为了 BERT 需要的输入数据格式,包括input_ids 和 attention_mask。

下面,我们使用 PyTorch 的DataLoader,将划分好的训练集和验证集,进行数据加载。

我们尝试获取训练集第一批数据。

结果如下。

数据加载无误。

下面,我们定义一个 BERT 分类模型类,继承自 PyTorch 的nn.Module。我们将使用 BERT 模型,进行文本分类。

为了测试我们的模型是否正确,我们尝试对训练集第一批数据,进行前向传播。

结果如下。

可见,模型输出的是 2 个数值,分别对应类别 0 和 1 的预测概率。也就是说,模型可以正常运转。

下面,我们定义一些训练相关的参数。

注意,这里我们使用了AdamW 优化器,这是专门针对 BERT 模型的优化器。另外,我们使用了学习率线性衰减策略。

然后,我们定义一个函数,用来计算模型的准确率。

该函数中,我们使用torch.max 函数,将模型输出的概率值,转换为类别标签。然后,我们计算模型预测的类别标签,与真实类别标签的匹配比例。

我们尝试对训练集第一批数据,进行预测,并计算准确率。

结果如下。

可见,模型目前的预测准确率是 0.5,也就是随机猜测的水平。

下面,我们定义模型的训练和验证过程。

该函数中,我们首先将模型设置为训练模式,然后遍历训练集的每一个 batch,进行前向传播,计算损失,反向传播,更新参数。我们使用tqdm 库,来显示训练进度。

然后,我们将模型设置为验证模式,遍历验证集的每一个 batch,进行前向传播,计算损失和准确率。

我们尝试对模型进行一轮训练和验证。

结果如下。

可见,经过一轮训练,模型的验证集准确率,已经提升到了 0.71。这比之前的随机猜测水平,有了很大的提升。

我们保存一下模型。

然后,我们进行多轮训练和验证。

这里,我们设定训练轮数为 4 轮。

结果如下。

可见,随着训练轮数的增加,模型的验证集准确率,逐步提升,最终达到了 0.78。

如果你还记得,我的读者曾经提到,他使用 LSTM 模型,在验证集上达到了 0.78 的准确率。而现在,我们使用 BERT 模型,也达到了同样的准确率。

但是,我的读者还提到,他使用 BERT 模型的时候,验证集准确率只有 0.53。这是怎么回事呢?

### 分析

为了找出问题的原因,我们来看看我的读者的代码。

首先,他的数据预处理部分,是这样的:

这里,他使用了 BERT 的tokenizer.encode_plus 函数,将文本转化为 BERT 需要的数据格式。但是,他设定了 max_length 参数为 512,这是 BERT 模型的最大输入长度。也就是说,他没有对文本进行截断或补齐。

然后,他的模型定义部分,是这样的:

这里,他使用了 BERT 的from_pretrained 函数,加载了预训练模型。但是,他没有对 BERT 模型进行微调(fine-tune)。也就是说,他直接使用了预训练模型的输出,进行文本分类。

最后,他的训练部分,是这样的:

这里,他使用了 Adam 优化器,没有使用学习率衰减策略。

综上,我的读者的代码,存在以下问题:

— 数据预处理部分,没有对文本进行截断或补齐,导致 BERT 模型的输入数据长度不一致。

— 模型定义部分,没有对 BERT 模型进行微调,导致模型无法适应文本分类任务。

— 训练部分,没有使用学习率衰减策略,导致模型无法收敛。

因此,我的读者使用 BERT 模型的时候,验证集准确率只有 0.53。

### 结论

通过本文,我们学习了如何使用 BERT 模型,进行中文文本二元分类。我们发现,BERT 模型的效果,与 LSTM 模型相当。但是,使用 BERT 模型的时候,需要注意以下几点:

— 数据预处理部分,需要对文本进行截断或补齐,保证 BERT 模型的输入数据长度一致。

— 模型定义部分,需要对 BERT 模型进行微调,使模型适应文本分类任务。

— 训练部分,需要使用学习率衰减策略,使模型收敛。

希望本文能够帮助你,轻松使用 BERT 完成中文文本分类任务。

### 参考

— [1] https://huggingface.co/transformers/

— [2] https://github.com/huggingface/transformers

— [3] https://github.com/wshuyi/demo-chinese-text-binary-classification-with-bert

### 讨论

你有没有使用 BERT 进行文本分类?如果用过,你遇到了哪些问题?你是如何解决的?欢迎在评论区分享你的经验和心得。

— 4 点赞

— 踩

— 25 收藏 觉得还不错? 一键收藏

— 打赏

— 评论

### “相关推荐”对你有帮助么?

— 非常没帮助

— 没帮助

— 一般

— 有帮助

— 非常有帮助

提交

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >

需支付:10.00元

实付元

点击重新获取

扫码支付

钱包余额 0

余额充值

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。

2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

Содержание
  1. Технология укладки паркетной доски из лиственницы: советы
  2. Как подготовить основание для укладки паркетной доски
  3. Параметры для проверки основания
  4. Выбор клея и подложки для паркетной доски из лиственницы
  5. Технология укладки плавающим способом
  6. Подбор направления и первый ряд
  7. Соединение досок и контроль качества
  8. Особенности укладки паркетной доски на теплый пол
  9. Как избежать деформации паркетной доски при монтаже
  10. Правила укладки
  11. Контроль влажности
  12. Уход за паркетной доской из лиственницы после укладки
Читайте также:  Туалетный столик с зеркалом для девочки 3 лет

Технология укладки паркетной доски из лиственницы: советы

Перед началом укладки убедитесь, что влажность в помещении не превышает 60%, а температура находится в пределах 18–24°C. Это поможет избежать деформации доски после монтажа.

Выровняйте основание пола с помощью самовыравнивающейся смеси, если перепады превышают 2 мм на метр. Лиственница чувствительна к неровностям, что может привести к скрипу и повреждениям.

Используйте подложку толщиной 2–3 мм для звукоизоляции и дополнительной амортизации. Подойдет пробковая или синтетическая подложка, которая также защитит от влаги.

Укладывайте доски плавающим способом, соединяя их через замковую систему. Начинайте монтаж от стены, оставляя зазор 10–15 мм для компенсации расширения древесины.

Располагайте доски параллельно источнику света, чтобы швы были менее заметны. Чередуйте длину планок для равномерного распределения нагрузки.

После укладки не нагружайте пол первые 24 часа, чтобы доски адаптировались к условиям помещения. Для ухода используйте средства, рекомендованные для лиственницы, чтобы сохранить её природный блеск и долговечность.

Как подготовить основание для укладки паркетной доски

Проверьте ровность основания с помощью строительного уровня. Допустимые перепады высоты не должны превышать 2 мм на 1 м². Если обнаружены неровности, выровняйте поверхность с помощью самовыравнивающейся смеси или шлифовки.

Убедитесь, что основание сухое. Влажность бетонного пола не должна превышать 2,5%, а деревянного – 12%. Используйте влагомер для точного измерения. Если влажность выше нормы, проветрите помещение или уложите пароизоляционную пленку.

Очистите поверхность от пыли, грязи и остатков строительных материалов. Используйте пылесос или влажную уборку. Любые загрязнения могут ухудшить сцепление паркетной доски с основанием.

При необходимости уложите подложку. Для бетонного пола выбирайте подложку из вспененного полиэтилена или пробки толщиной 2-3 мм. Для деревянного основания лучше использовать картонную подложку или фанеру толщиной 6-10 мм.

Параметры для проверки основания

Параметр Норма
Перепады высоты ≤ 2 мм на 1 м²
Влажность бетонного пола ≤ 2,5%
Влажность деревянного пола ≤ 12%
Толщина подложки 2-10 мм

После подготовки основания оставьте паркетную доску в помещении на 48 часов для акклиматизации. Это поможет избежать деформации материала после укладки.

Выбор клея и подложки для паркетной доски из лиственницы

Для укладки паркетной доски из лиственницы выбирайте двухкомпонентный полиуретановый клей. Он обеспечивает прочное сцепление, устойчив к влаге и не деформируется при перепадах температуры. Избегайте водно-дисперсионных составов, так как они могут вызвать разбухание древесины.

Подложка под паркет должна быть толщиной 2–3 мм, чтобы компенсировать неровности основания и снизить нагрузку на доски. Оптимальный вариант – пробковая подложка. Она экологична, устойчива к сжатию и улучшает звукоизоляцию. Для помещений с повышенной влажностью используйте подложки с дополнительным слоем влагозащиты, например, из вспененного полиэтилена.

Читайте также:  Зеркало в прихожую в полный

Перед укладкой убедитесь, что основание ровное, сухое и очищено от пыли. Нанесите клей зубчатым шпателем, равномерно распределяя его по поверхности. Укладывайте доски плотно, избегая зазоров. После монтажа оставьте пол на 24–48 часов для полного высыхания клея.

Правильный выбор материалов обеспечит долговечность паркетного покрытия и сохранит его естественную красоту.

Технология укладки плавающим способом

Перед началом укладки убедитесь, что основание ровное, сухое и чистое. Допустимый перепад высот – не более 2 мм на 2 м. Используйте подложку толщиной 2–3 мм для звукоизоляции и компенсации мелких неровностей. Располагайте подложку встык, избегая нахлестов.

Подбор направления и первый ряд

Укладывайте доски вдоль направления света из окна для визуального единства. Начинайте с угла, оставляя зазор 8–10 мм между стеной и доской для температурного расширения. Используйте клинья для фиксации зазора. Первый ряд размещайте пазом к стремене, обрезая последнюю доску при необходимости.

Соединение досок и контроль качества

Соединяйте доски под углом 20–30 градусов, аккуратно вставляя шип в паз. Легкими нажатиями опускайте доску до полного соединения. Проверяйте плотность стыков и отсутствие щелей.

Для второго и последующих рядов смещайте стыки не менее чем на 30 см относительно предыдущего ряда. Используйте обрезки для экономии материала и создания естественного рисунка. После укладки каждого ряда проверяйте ровность поверхности уровнем.

Последний ряд подгоните по ширине, учитывая зазор у стены. Установите плинтус, чтобы скрыть зазоры и зафиксировать покрытие. Удалите клинья, убедившись, что доска свободно лежит на основании.

Особенности укладки паркетной доски на теплый пол

Особенности укладки паркетной доски на теплый пол

Перед укладкой паркетной доски из лиственницы на теплый пол убедитесь, что система отопления работает равномерно и без перепадов температуры. Оптимальная температура поверхности пола не должна превышать 27°C, чтобы избежать деформации материала.

Используйте только те виды паркетной доски, которые имеют маркировку о совместимости с теплым полом. Лиственница обладает высокой плотностью, что делает её подходящей для таких условий, но важно выбирать доски с низким коэффициентом влажности – не более 8-10%.

Перед монтажом прогрейте пол в течение 10-14 дней, поддерживая температуру на уровне 18-20°C. После укладки постепенно увеличивайте нагрев, прибавляя по 2-3°C в день до достижения комфортного уровня. Это поможет избежать резкого расширения древесины.

Укладывайте паркетную доску плавающим способом, используя качественную подложку. Подложка должна быть не толще 2-3 мм и обладать хорошей теплопроводностью. Избегайте пробковых или войлочных подложек, так как они снижают эффективность обогрева.

Оставляйте зазоры между стеной и доской шириной 10-15 мм для компенсации расширения материала при нагреве. Это предотвратит появление щелей и деформацию покрытия.

Читайте также:  Кровать второй ярус над диваном

Регулярно проверяйте уровень влажности в помещении. Идеальные показатели – 40-60%. Используйте увлажнитель воздуха в отопительный сезон, чтобы древесина не пересыхала.

Следите за температурой пола в процессе эксплуатации. Избегайте резких перепадов, которые могут привести к растрескиванию или короблению паркетной доски.

Как избежать деформации паркетной доски при монтаже

Перед началом укладки убедитесь, что паркетная доска из лиственницы акклиматизировалась в помещении. Оставьте материал в комнате на 48 часов, чтобы он адаптировался к уровню влажности и температуре. Это предотвратит расширение или сжатие досок после монтажа.

Подготовьте основание: оно должно быть ровным, сухим и чистым. Используйте уровень для проверки, чтобы перепады не превышали 2 мм на 2 метра. Если требуется, выровняйте пол с помощью самовыравнивающейся смеси или фанеры. Влажность основания не должна превышать 12%.

Оставляйте зазоры между стенами и краями досок шириной 8–10 мм. Это компенсационные швы, которые позволят паркету расширяться при изменении влажности. Используйте специальные клинья для фиксации зазоров во время монтажа.

Правила укладки

Укладывайте доски плавающим способом, не прикрепляя их к основанию. Такой метод дает свободу для естественного движения материала. Используйте подложку толщиной 2–3 мм, чтобы уменьшить трение и обеспечить дополнительную амортизацию.

Следите за направлением укладки: располагайте доски параллельно основному источнику света. Это не только улучшит внешний вид, но и снизит риск деформации из-за неравномерного нагрева.

Контроль влажности

Поддерживайте влажность в помещении на уровне 40–60%. Используйте увлажнитель или осушитель воздуха, если это необходимо. Избегайте резких перепадов температуры, которые могут привести к короблению досок.

После завершения монтажа не нагружайте пол сразу. Дайте ему 24 часа для окончательной адаптации. Это особенно важно, если в помещении были изменения влажности или температуры.

Уход за паркетной доской из лиственницы после укладки

Регулярно очищайте поверхность паркетной доски от пыли и грязи с помощью мягкой щетки или пылесоса с насадкой для твердых покрытий. Это предотвратит царапины и сохранит естественный блеск древесины.

Используйте слегка влажную ткань для удаления пятен. Избегайте обильного количества воды, так как лиственница чувствительна к влаге. После уборки сразу вытирайте поверхность насухо.

  • Раз в 3-4 месяца наносите защитное масло или воск для древесины. Это укрепит поверхность и защитит ее от износа.
  • Избегайте агрессивных химических средств. Используйте специализированные составы для паркета.
  • Установите защитные накладки на ножки мебели, чтобы предотвратить вмятины и царапины.

Поддерживайте оптимальный уровень влажности в помещении (40-60%). Это предотвратит деформацию досок. Используйте увлажнитель воздуха в отопительный сезон и проветривайте комнату в жаркую погоду.

При появлении глубоких царапин или повреждений обработайте проблемный участок мелкозернистой наждачной бумагой, затем нанесите защитное покрытие. Для серьезных дефектов обратитесь к специалистам по реставрации паркета.

Оцените статью
Гид по ремонту
Добавить комментарий