如何处理句子中的换行符? -Spacy NER

时间:2018-11-10 04:32:02

标签: python spacy

我正在尝试训练spacy NER,我收集了所有句子,但是许多句子都嵌入了换行符'\ n',因此当我将训练数据输入到jupyter笔记本中时,它会失败并出现错误

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

我该怎么办?

数据看起来像这样(

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

1 个答案:

答案 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)

说明

  1. 行:导入正则表达式
  2. 行:使用方法“ sub”表示 在字符串中用“”替换第一个输入“ \ n”。

    出: '该字符串有很多行在此处和此处继续'

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

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