我正在尝试将Pyner(https://github.com/dat/pyner)用于NER。我给它一串文本来从中提取命名实体。但是我收到了一个错误。我正在附加出现错误的snipet:
for s in ('\f', '\n', '\r', '\t', '\v'): #strip whitespaces
text = text.replace(s, '')
Error message: {TypeError: a bytes-like object is required, not 'str'}
即使我尝试多种类型的输入(字节对象)
,也会发生此错误text = b'This'
text = bytes("This".encode('utf-8'))
我认为问题是替换不是正确的输入类型。我使用的是python 3.5。我究竟做错了什么?请帮忙!
答案 0 :(得分:3)
So long I have:
var fL = 0;
fL++
unique.forEach(function(data){
fL--
if(fL=0){
for (var h = 0; userIds.length >= h; h++) {
if( status[h] == "on"){
for (var k = 0; userIds.length >= k; k++) {
if(status[k] == "on" && userIds[h]==userIds[k] && productIds[h]==productIds[k]) {
productsOn.push(dataArray[0]);
userId = userIds[h];
}
}
}
}
}
var dataArray = data.split(','); productIds.push(dataArray[0]);userIds.push(dataArray[1]);status.push(dataArray[2]);
});
setProductsToUser(productIds,userIds) //where I place this?
适用于replace
或str
但不能同时使用。
你可以像这样重写它:
bytes
您还可以应用符合for s in (b'\f', b'\n', b'\r', b'\t', b'\v'): #strip whitespaces except space!
text = text.replace(s, b'')
类型的strip
:
bytes
也可以:事先转换回text = text.strip() # remove all of the above + space
,尝试:
str
或
text = str(text)
(选择最佳解决方案以避免修改第三方软件包,如Patrick所述)