python 情感分析 re.sub() expected string or bytes-like object

问题遇到的现象和发生背景

正则表达式不是自己写的,情感分析 分词时 格式不对报错,试过str()转换,但会导致结果的一句话被拆成N个词。有什么办法可以改掉格式/修改正则表达式嘛

问题相关代码,请勿粘贴截图
def DataFilter(line):
    res = re.sub('[^\u4e00-\u9fff\!\。\,\?]+','',line)
    return res
content_filter = [DataFilter(item) for item in content]
content_filter

运行结果及报错内容

expected string or bytes-like object

我的解答思路和尝试过的方法

str() 格式转换

def DataFilter(line):
    res = re.sub('[^\u4e00-\u9fff\!\。\,\?]+','',line)
    return res
content_filter = [DataFilter(item) for item in str(content)]
content_filter

结果如图:

img

我想要达到的结果

但我希望分完词后仍然为一句依据完成的话,如图:

img

有什么办法可以改掉格式/修改正则表达式嘛

不需要用[DataFilter(item) for item in str(content)]推导式来遍历content的
只要用re.findall()来分割一个段落或句子:

def DataFilter(line):
    res = re.findall('[^\!\。\,\?]+[\!\。\,\?]',line)
    return res

s = '正则表达式不是自己写的,情感分析 分词时 格式不对报错,试过str()转换,但会导致结果的一句话被拆成N个词。有什么办法可以改掉格式/修改正则表达式嘛?'

DataFilter(s)
['正则表达式不是自己写的,', '情感分析 分词时 格式不对报错,', '试过str()转换,', '但会导致结果的一句话被拆成N个词。', '有什么办法可以改掉格式/修改正则表达式嘛?']