文字长度超过上限-如何增加?

时间:2020-01-29 07:32:56

标签: nlp tokenize

int a[1000],c[1000],ara[10000],t,n,i,j;
cin>>n;
set<int>st;
for(i=0; i<n; i++)
{
    cin>>a[i];
    st.insert(a[i]);
}
int p = st.size();
int m;
for(i=0;i<p;i++)
    m = st[i];

我正在尝试标记url中的数据,并且在运行时出现以下错误 ValueError:[E088]长度为5190319的文本超过了最大值1000000。v2.x解析器和NER模型每输入100,000个字符大约需要1GB的临时内存。这意味着长文本可能会导致内存分配错误。如果您不使用解析器或NER,则增加 import nltk from urllib import request from redditscore.tokenizer import CrazyTokenizer tokenizer = CrazyTokenizer() url = "http://www.site.uottawa.ca/~diana/csi5386/A1_2020/microblog2011.txt" response = request.urlopen(url) raw = response.read().decode('utf-8-sig') tokenizer.tokenize(raw) 限制可能是安全的。限制为字符数,因此您可以通过检查nlp.max_length来检查输入是否过长。

如何增加长度?

1 个答案:

答案 0 :(得分:0)

CrazyTokenizer专为推文和在线评论而设计,因此真正的长篇文章不应该出现。我猜您的数据是每行一条推文,因此最好的方法是一次向您的令牌生成器提供一行:

from urllib import request
from redditscore.tokenizer import CrazyTokenizer
tokenizer = CrazyTokenizer()
url = "http://www.site.uottawa.ca/~diana/csi5386/A1_2020/microblog2011.txt"
for line in request.urlopen(url):
    tokens = tokenizer.tokenize(line.decode('utf-8'))
    print(tokens)