跳转至

所有文章

多线程下调试 Python 代码

当启用 n_jobs 超过 1 时,直接调试 Python 代码可能会报错 "Couldn't find a debug adapter descriptor for debug type 'Python Kernel Debug Adapter' (extension might have failed to activate)"

image-20240325190005418

本文记录了一个解决方案,可以在 n_jobs 超过 1 的多线程环境下调试 Python 代码。

使用 blacken-docs 对文档中的 Python 代码进行格式化

ruff 等代码格式化工具可以美化 Python 代码,但是不方便美化文档文本中的 Python 代码。如果想要格式化 markdown、字符串文档等中间的 Python 代码,经常需要手动地去统一格式。

本文介绍了 blacken-docs 这款工具,它可以轻松实现对文档中的 Python 代码进行格式化。

机器生成文本检测器

简介

本应用使用 BERT 模型和 SHAP 解释性分析技术,旨在帮助用户判断一个文本是否可能由机器生成。应用允许用户输入文本,然后使用预先训练好的 BERT 模型进行分析,最后通过 SHAP 提供文本的可解释性分析,帮助理解模型的预测结果。

在线体验地址:https://machine-generated-text-detection.streamlit.app

screenshot

使用 pathvalidate 处理不合法的文件或路径名字符串

在编程时经常需要处理文件和目录的命名,然而直接将字符串用作文件名或路径名时,可能会遇到一个常见问题:字符串中含有特殊字符或保留字,这可能导致在尝试保存文件时出现异常,如无法创建文件、路径解析错误等问题。例如,Windows 系统不允许文件名包含字符如 \/:*?"<>|

本文介绍了 pathvalidate 库,它提供了一系列实用的函数,用于验证和清理文件名和路径名中的非法字符。这样我们就不必重复造轮子来处理这些特殊字符了。

对含有空值的数据使用 np.corrcoef 计算 Pearson 和 Spearman 相关系数

本文实验探究了 np.corrcoef 在对含有空值的数据计算 Pearson 相关系数和 Spearman 相关系数时的结果。

  • np.corrcoef 在计算相关系数时,如果数据中存在一个空值,那么空值所在列与其他列的相关系数也会为空值。
  • 如果需要忽略空值后计算相关系数,可以使用 np.ma.corrcoef,它的参数 allow_masked 默认为 True。当传入一个 MaskedArray 对象时,np.ma.corrcoef 会忽略掉其中的空值。
  • 在对含有空值的数据使用 argsort().argsort() 对数据进行排序后,空值会被当做最小值,它也会获得一个排序值,空值内部的排序值大小取决于该空值所在的位置。因此,计算 Spearman 相关系数时,需要先手动删除空值。

迁移 Conda 虚拟环境

在一个设备上搭建了 Conda 虚拟环境后,如果需要在另一个设备上使用相同的环境,可以制作 environment.yml 文件,方便快速地迁移,而不需要再次手动安装包。

本文记录了将 macOS 的 Conda 虚拟环境迁移到 Linux 的过程。

image-20240121224354485