在Python中句子分割前去除多个\n

1 投票
2 回答
1004 浏览
提问于 2025-04-30 17:01

我刚开始学习编程,正在通过书本和Stack Overflow自学。我想要去掉聊天记录中的多个\n,然后把句子分开。如果我不去掉\n,字符串就会变成这样:

['answers for 10-19-20sUser139 ... hi 10-19-20sUser101 ;)\n\n\n\n\n\n\n\n\n\nI like it when you do it, 10-19-20sUser83\n\n\n\n\n\n\n\n\n\n\n\niamahotnipwithpics\n\n\n\n10-19-20sUser20 go plan the wedding!']

我尝试了几种不同的方法,比如chomps、line、rstrip等等,但都没有效果。可能是我用错了。整个代码看起来是这样的:

import nltk, re, pprint
from nltk.corpus import nps_chat
chat= nltk.Text(nps_chat.words())
from nltk.corpus import NPSChatCorpusReader
from bs4 import BeautifulSoup
chat=nltk.corpus.nps_chat.raw()
soup= BeautifulSoup(chat)
soup.get_text()
text =soup.get_text()
print(text[:40])
print(len(text))
from nltk.tokenize import sent_tokenize
sent_chat = sent_tokenize(text)
len(sent_chat)
text[:] = [line.rstrip('\n') for line in text]
print(len(sent_chat))
print(sent_chat[:40])

当我使用line方法时,我收到了这个错误:

Traceback (most recent call last):
File "C:\Python34\Lib\idlelib\testsubjects\sentencelen.py", line 57, in <module>
text[:] = [line.rstrip('\n') for line in text]
TypeError: 'str' object does not support item assignment

有人能帮帮我吗?

暂无标签

2 个回答

0

其实我偶然发现,如果先把文本分成单词,然后再分成句子,里面的换行符就消失了!谢谢你的帮助!

2

在编程中,有时候我们需要让程序做一些事情,比如在特定的条件下执行某段代码。这个过程就像是给程序设定了一些规则,让它在遇到特定情况时采取行动。

例如,假设我们有一个程序,它需要检查一个数字是否大于10。如果这个数字确实大于10,程序就会打印出“这个数字很大”。如果不大于10,程序可能会打印出“这个数字不大”。这个判断的过程就是条件语句的应用。

条件语句就像是一个分岔路口,程序在这里需要做出选择,决定走哪条路。通过这种方式,我们可以让程序根据不同的输入做出不同的反应。

总之,条件语句帮助我们控制程序的行为,让它能够根据情况做出不同的决定。

>>> x = 'answers for 10-19-20sUser139 ... hi 10-19-20sUser101 ;)\n\n\n\n\n\n\n\n\n\nI like it when you do it, 10-19-20sUser83\n\n\n\n\n\n\n\n\n\n\n\niamahotnipwithpics\n\n\n\n10-19-20sUser20 go plan the wedding!'
>>> y = "".join([i if i !="\n" else "\t" for i in x])
>>> z = [i for i in y.split('\t') if i]
>>> z
['answers for 10-19-20sUser139 ... hi 10-19-20sUser101 ;)', 'I like it when you do it, 10-19-20sUser83', 'iamahotnipwithpics', '10-19-20sUser20 go plan the wedding!']

撰写回答