我正在尝试训练spacy NER,我收集了所有句子,但是许多句子都嵌入了换行符'\ n',因此当我将训练数据输入到jupyter笔记本中时,它会失败并出现错误
TRAIN_DATA = [('Who is ^ SyntaxError: EOL when scanning string literal
我该怎么办?
数据看起来像这样(
TRAIN_DATA = [('Who is
Shaka Khan?', {'entities': [(7, 17, 'PERSON')]}),
答案 0 :(得分:3)
Jupyter
如果问题出在jupyter中,则需要在类似这样的几行字符串上加上3x '
string=""" This string has many lines
that continues here
and here """
在您的情况下
TRAIN_DATA = [('''Who is
Shaka Khan?''', {'entities': [(7, 17, 'PERSON')]})
如果我错了,请更正我,但是看来您已复制粘贴了数据,这就是为什么会发生这种情况。您只需删除换行符即可在Jupyter中解决问题。另外,我建议您不要使用复制粘贴将数据导入Jupyter。
删除换行符
如果要删除字符串中的换行符,则有很多选项。这是一个
import re
string = re.sub('\n', '', string)
说明
行:使用方法“ sub”表示 在字符串中用“”替换第一个输入“ \ n”。
出: '该字符串有很多行在此处和此处继续'
我猜测您可能正在使用熊猫,因此要在列上执行此操作,可以执行以下操作:
df[col_name]=df[col_name].str.replace(r'^\n','')