首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图增加

试图增加
EN

Stack Overflow用户
提问于 2022-07-21 09:52:42
回答 1查看 63关注 0票数 1

请看下面的代码。在读取了5000行的csv文件后,我得到了错误消息:

代码语言:javascript
运行
复制
nlp = spacy.blank("en")
nlp.max_length = 3000000
nlp.add_pipe(
    "text_categorizer", 
    config={
        "data": data, 
        "model": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
        "device": "cpu"
    }
) 

ValueError:长度为2508705的E088文本超过最大值1000000。解析器和NER模型在输入中每10万个字符需要大约1GB的临时内存。这意味着长文本可能会导致内存分配错误。如果您没有使用解析器或NER,那么增加nlp.max_length限制可能是安全的。限制是以字符数为限的,因此可以通过检查len(text)来检查输入是否太长。

有什么办法解决这个问题吗?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-21 13:39:24

设置nlp.max_length通常可以工作(直到内存用完为止):

代码语言:javascript
运行
复制
import spacy
nlp = spacy.blank("en")
nlp.max_length = 10_000_000
doc = nlp("a " * 2_000_000)
assert len(doc.text) == 4_000_000

但是,我怀疑sentence-transformers模型是否能够处理这么长的文本?就语言注释而言,使用这么长的单个文档是不太可能的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73064081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档