问题标签 [spacy-transformers]

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 回答
152 浏览

spacy - 是否可以将自定义实体标签添加到 Spacy 3.0 配置文件?

我正在使用 spacy-transformers 和 roBERTa 开发自定义 NER 模型。我真的只为此使用 CLI,并试图更改我的 Spacy config.cfg 文件以说明管道中的自定义实体标签。

我是 Spacy 的新手,但我收集到人们通常使用 ner.add_label 来完成此操作。我想知道我是否可以更改配置的 [initialize.components.ner.labels] 中的某些内容,但还没有找到这样做的好方法。

我似乎找不到任何以类似方式更改配置文件的选项 - 有谁知道这是否可能,或者实现这些自定义标签的最简洁方法是什么?

为清楚起见进行了编辑:我的问题可能与我的配置理论不同。现在我得到一个输出,但它们不是文本标签,而是数字标签,例如:

('Oct',383) ('2019',383) ('February',383)

预先感谢您的帮助!

0 投票
1 回答
36 浏览

spacy - 强制“解析器”不分段句子?

有没有一种简单的方法可以告诉“解析器”管道不要更改 的值Token.is_sent_start

所以,故事是这样的:我正在处理预先句子化的文档(1 行 = 1 个句子),我只需要这个分割。我意识到解析器的分段并不总是与我的文档中的相同,所以我不想依赖它所做的分段。

解析器完成后我无法更改分段,所以当它出错时我无法纠正它(你得到一个错误)。如果我自己分割文本然后应用解析器,它会否决我刚刚进行的分割,所以它不起作用。

因此,为了强制保留原始分割并仍然使用预训练的变压器模型(fr_dep_news_trf),我要么:

  1. 禁用解析器,
  2. 将自定义管道添加到 nlp 以设置 Token.is_sent_start 我想要的方式,
  3. 创建文档nlp("an example")

或者,我只是创建一个 Doc

然后我应用管道的每个元素,除了解析器。

但是,如果我在某些时候仍然需要解析器(我确实需要,因为我需要知道一些子树),如果我只是将它应用于我的 Doc,它会否决已经存在的分段,所以,在某些情况下,分段不正确。所以我做了以下解决方法:

  1. 在列表中保留正确的分段sentences = list(doc.sents)
  2. 在文档上应用解析器
  3. 使用解析器计算的任何语法信息
  4. 从我之前制作的列表中检索我需要的任何句子信息,因为我现在无法信任Token.is_sent_start

它有效,但感觉不太对劲,感觉有点乱。我错过了一种更简单,更清洁的方式吗?

我正在考虑的其他事情是设置自定义扩展,例如,我会使用Token._.is_sent_start而不是 defaultToken.is_sent_start和 custom Doc._.sents,但我担心它可能比有用更令人困惑......

一些用户建议使用span.merge()一个非常相似的主题,但在 spaCy 的最新版本中似乎不存在该功能(防止 spaCy 将段落编号拆分为句子

0 投票
1 回答
101 浏览

transformer - 在线文档中 Transformers 的 Spacy 3.1 示例代码似乎是错误的

在 Spacy 的最新文档中,以下链接给出了以下示例:

https://spacy.io/usage/embeddings-transformers

此代码在尝试处理测试数据时抛出异常:

AttributeError:[E047] 无法为未注册的扩展属性“custom_attr”赋值。你忘记调用set_extension方法了吗?

我使用以下方式设置扩展名:

Doc.set_extension('custom_attr', default=True)

我的问题是,Transform 类是否应该自己处理添加这个特殊扩展(如示例代码中所暗示的那样),或者这只是示例中的一个错误?

0 投票
0 回答
118 浏览

python - ImportError 在 jupyter notebook(ubuntu) 中加载 spacy

我遇到了一个我似乎无法弄清楚的问题。我第一次将 Spacy 导入 Jupyter 笔记本时没有任何问题。它只是按我的预期导入了它。

我试过了

我得到了这个错误

0 投票
0 回答
45 浏览

named-entity-recognition - spacy - 3.1 自定义损失函数和数据增强,用于不平衡数据的命名实体识别

如何为 spacy v3 及更高版本中的不平衡数据编写用于命名实体识别的自定义损失函数。我的数据集包含标签的不平衡数据。例如:标签 a 有 45000 个注解,标签 b 只有 4000 个注解。如何在 spacy 中进行增强和编写自定义损失函数。

0 投票
1 回答
78 浏览

python - Spacy 3.1 - KeyError: 'train' using spacy train 命令

我正在关注本教程https://spacy.io/usage/training#quickstart以训练 distilbert 的自定义模型。一切都已安装,数据已转换,配置文件已准备就绪。

当我启动这个训练命令时:

发生此错误:

我在 python 3.6 上,这些是安装的 spacy 版本:

为了完整起见,这些是 config.cfg 文件和用于将 imdb 数据转换为 spacy 的 python 代码(train e dev .spacy 文件):

编码:

0 投票
0 回答
27 浏览

python - MobileNet 和 Bahdanau 注意

我刚开始学习关于图像字幕的 CNN 预训练架构,我正在尝试运行一些代码。这段代码在我使用 resnet_101 时运行良好,但在我尝试使用 mobilenet_v2 输入 224x224 并且特征提取输出为 7x7,1280 时却没有。此外,我正在尝试将其扩展到 Bahdanau Attention,但我遇到了一些错误。

这是MobileNet编码器的代码

这里是巴赫达瑙

我在放置自动编码器时出错了

test_autoencoder()

错误在行中

它的错误

有人可以帮我解决这个错误吗?

0 投票
0 回答
310 浏览

nlp - ImportError:无法从“transformers.models.auto.modeling_auto”导入名称“auto_class_factory”

我正在尝试运行layoutxlm代码,https://github.com/microsoft/unilm/tree/master/layoutxlm

最新的多语言 NLP 模型。安装完成并且没有问题,但是在运行代码时我看到了这个错误。

Auto_class_factory模块存在于内部transformers,但无法导入。

路径信息如下。

1)auto-factory存在于layoutlmft虚拟环境中 C:\Users\Dell\anaconda3\envs\layoutlmft\Lib\sitepackages\transformers\models\auto

  1. 我得到的错误:
0 投票
2 回答
121 浏览

spacy - 如何在 spaCy 3.0 中使用 Hugging Face 变压器

假设我想将Hugging Face 中的distilbert https://huggingface.co/distilbert-base-uncased包含到 spaCy 3.0 管道中。我认为这是可能的,我找到了一些关于如何将此模型转换为 spaCy 2.0 的代码,但它在 v3.0 中不起作用。我真正想要的是使用这样的东西加载这个模型

是否有可能,请您提供执行此操作的确切步骤。

0 投票
0 回答
101 浏览

python - 删除数据框中的空标记

我想删除数据框中的空标记。这是一个例子:

0 令牌 输出期望
你好世界 (你好世界) (你好世界)

有了这个代码我得到df['token']=(hello,, world),而我想得到df['token']=(hello,world)。我知道我可以这样做:

在标记化之前,但在我的原始数据集中我只有标记。谁能建议我如何删除空令牌?