问题标签 [bert-language-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1678 浏览

python - 如何在 keras 中使用 Bert 作为长文本分类中的段落编码器来实现网络?

我正在做一个长文本分类任务,文档中有超过 10000 个单词,我打算使用 Bert 作为段落编码器,然后将段落的嵌入逐步提供给 BiLSTM。网络如下:

输入:(batch_size,max_paragraph_len,max_tokens_per_para,embedding_size)

伯特层:(max_paragraph_len,paragraph_embedding_size)

lstm层:???

输出层:(batch_size,classification_size)

如何用 keras 实现它?我正在使用 keras 的 load_trained_model_from_checkpoint 来加载 bert 模型

0 投票
1 回答
378 浏览

neural-network - 过度拟合训练数据,但仍在改进测试数据

我的机器学习模型极大地过度拟合了训练数据,但在测试数据上仍然表现良好。当使用神经网络方法时,每次迭代都会略微提高测试集的准确度,但会更多地提高训练集的准确度(过拟合)。

当使用带有 CNN 架构的 spacy 时,这个问题得到了很好的证明,我得到了以下结果

TF 是训练数据的 f1 分数。

测试分数不断提高,而与训练集的差异仅增加到在第 20 次迭代中模型在训练数据上几乎完美执行的点,而测试准确度从未降低以证明提前停止是合理的。

我尝试了许多正则化选项,包括不同的 dropout、权重衰减、L2,但似乎没有一个可以避免记住部分训练数据,并且在测试集上的表现都更差。

这个问题并不是 spacy 和我所遵循的方法所独有的,它也发生在 scikit 和参数较少的模型上。

手头的数据集是一个少于 2000 个示例的小数据集,是一个多标签文本分类任务。一些标签的示例少于 100 个,但在检查发生过度拟合的位置时,所有标签似乎都受到同样的影响。

我想我的主要问题是我是否应该担心模型正在记忆训练数据集,只要它在测试数据上表现良好,以及是否还有其他我没有考虑过的事情来解决这个记忆问题我看到了。

0 投票
0 回答
130 浏览

tensorflow - 如何在不同形状的 Bert 输出上构建 keras 模型

我正在尝试使用 bert 和 keras 为我的研究构建分类器。

当 X 是句子中单词和空格的数量时,我得到了 bert encoding (shape - (1,X,768))。

如果 X 不一致,我如何构建 keras 模型?

0 投票
1 回答
38 浏览

python - 构建数据集 - np 数组上的奇怪行为

我正在尝试从“cls_encoding”对象(bert 输出)构建数据集。

我有 30 个 cls_encoding 所以我想制作一个形状为 (30,768) 的数组。

当我尝试时:

所以如果我尝试这样做:

我得到:

我怎样才能从这个得到想要的形状(30,768)?

0 投票
1 回答
118 浏览

machine-learning - BERT 模型在语法正确性和语义连贯性方面的评估措施

例如我有一个原句。吠叫这个词对应于缺少的词。

例如,使用 BERT 模型,它预测单词 cry 而不是 barking。我将如何衡量 BERT 模型的准确性,即预测词在句法上的正确性和语义上的连贯性?

(例如,有很多不完整的句子,任务是根据这些不完整的句子评估 BERT 的准确性。)请帮忙。

0 投票
0 回答
284 浏览

keras - 用于测试分类时,ktrain 包是否将输入嵌入与 bert 嵌入相结合?

我正在运行下面链接中给出的代码。python的ktrain包使用什么嵌入来进行bert文本分类。我相信代码使用的是预训练的 Bert 模型。也就是说,它将bert嵌入与输入嵌入相结合。模型中的嵌入是否也考虑了给定的输入文本

代码的相关部分

https://github.com/amaiya/ktrain/blob/master/examples/text/20newsgroups-BERT.ipynb

0 投票
1 回答
220 浏览

excel - 从 BERT 运行 Excel 宏

我正在尝试在 BERT 中运行 Excel 2016 宏。在电子表格中,我可以将宏作为一个名为“Button_To_Click”的按钮来操作。这也是 Excel 文档的宏列表中的宏名称。我正在使用命令EXCEL$Application.Run("BERT.Call", "Button_To_Click")并接收消息Error: attempt to apply non-function

这是我第一次使用 BERT 或任何与 VBA 相关的东西(我对 R 更熟悉),我不清楚有关如何使在 Excel 中创建和存储的宏在 BERT 中工作的文档。一个更完整的例子如下:

0 投票
0 回答
233 浏览

python - 结合 RoBERTa 和 BiLSTM 时获得 0 的 F 分数

我试图在 RoBERTa 模型之上堆叠一个 LSTM,以解决我尝试配置的二进制分类问题: - 冻结 RoBERTa 嵌入 - 微调嵌入

在冻结的情况下,我得到大约 57% 的 F 分数,与常规 RoBERTa 相比,这相对较低,用于序列分类得到相同数据的大约 81%

在微调的情况下,我得到 0% 的 F 分数并且验证损失没有收敛

很可能我做错了什么,但我无法真正发现它。

这是模型部分

**这是训练循环部分**

0 投票
0 回答
2210 浏览

nlp - NLP - 最佳文档嵌入库

美好的一天,人类同胞(?)。

我有一个方法问题,在很短的时间内被深入研究弄糊涂了。

问题源于以下问题:我需要对文档应用半监督或无监督聚类。我有大约 300 个使用多标签分类的文档和大约 3400 个未分类的文档。在接下来的几天里,无监督文件的数量可能会达到约 10,000 份。

主要思想是基于手头的标签应用半监督聚类。或者,对软聚类完全无监督。

我们曾考虑为整个文档创建嵌入,但困惑之处在于:哪个库最适合此类任务?

我想最重要的需要在于整个文档的上下文。据我所知,BERT 和 FastText 提供了与上下文相关的词嵌入,但不提供整个文档的嵌入。另一方面,Gensim 的 Doc2Vec 与上下文无关,对吧?

我想我看到了一种通过 HuggingFace API 使用 BERT 训练句子嵌入的方法,并且想知道将整个文档视为一个句子是否有用。

你有什么建议吗?我可能暴露了我对这件事的完全无知和困惑,但我的大脑已经融化了。

非常感谢您的宝贵时间。

万岁!

编辑以回答@gojomo:

我的文档平均约为 180 字。最初的任务是多标签文本分类,即每个文档可以有 1 到 N 个标签,现在标签的数量为 N=18。它们高度不平衡。由于几个问题,到目前为止只有 330 个标记的文档,我们要求文档的提供者也提供未标记的数据,这应该达到 10k 的数量级。我使用了 FastText 分类模式,但结果显然很糟糕。我还运行了一个带有 Doc2Vec 文档嵌入的 K-NN,但结果显然仍然很糟糕。我打算使用基于生物医学 BERT 的模型(如 BioBERT 和 SciBERT)在文档上生成 NER 标记(在特定领域的数据集上训练),以便稍后应用分类器。既然我们有未标记的文件可供使用,我们想冒险进入半监督分类或无监督聚类,只是为了探索可能性。不得不说,这只是一篇硕士论文。

0 投票
2 回答
5641 浏览

python - BertTokenizer - 编码和解码序列时出现额外空格

在使用 HuggingFace 的 Transformers 时,我遇到了编码和解码方法的问题。

我有以下字符串:

然后我运行以下代码:

输出如下所示:

在 % 之前有一个额外的空格。我已经尝试过额外的论点,clean_up_tokenization_spaces 但这是为了不同的东西。

我应该如何在解码和编码中使用什么来获得前后完全相同的文本。这也发生在其他特殊标志上。