如何处理句子中的换行符? - 宽敞的内尔

How do I handle new line characters in my sentences? - spacy NER

我正在尝试训练 spacy NER,我收集了我所有的句子,但很多句子都嵌入了换行符 '\n' 所以当我将训练数据输入我的 jupyter notebook 时,它因错误而失败

                 TRAIN_DATA = [('Who is 
                                       ^
SyntaxError: EOL when scanning string literal

我应该用这些做什么?

数据看起来像这样(

TRAIN_DATA = [('Who is 
Shaka Khan?', {'entities': [(7, 17, 'PERSON')]}),

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)

说明

  1. 行:正则表达式模块的导入
  2. 行:使用方法'sub' 将字符串中的第一个输入 '\n' 替换为 ''。

    输出: ' 这个字符串有很多行在这里和这里继续 '

我猜您可能正在使用 pandas,因此要在列上执行此操作,您可以执行以下操作:

df[col_name]=df[col_name].str.replace(r'^\n','')