这是我的代码。
SENTENCE = "He sad might have lung cancer. It’s just a rumor."
sent=(sent_tokenize(SENTENCE))
输出
['He sad might have lung cancer.', 'It’s just a rumor.']
我希望将此数组作为
['He sad might have lung cancer.']
['It’s just a rumor.']
他们有什么办法这样做,如果是这样的话?
答案 0 :(得分:2)
由于你想根据一个句子进行分割,你可以这样做:
sentence_list = SENTENCE.split('.')
for sentence in sentence_list:
single_sentence = [sentence + '.']
如果您确实希望在同一数据结构中包含单个句子的所有列表,则必须使用列表或字典列表:
my_sentences = []
sentence_list = SENTENCE.split('.')
for sentence in sentence_list:
my_sentences.append([sentence + '.'])
使用列表理解缩短这一点:
my_sentences = [[sentence + '.'] for sentence in SENTENCE.split('.')]
唯一的罪魁祸首是SENTENCE分裂部分将更频繁地发生,因此使用大量句子会更慢。
答案 1 :(得分:0)
使用re.split()
函数的解决方案:
import re
s = "He sad might have lung cancer. It’s just a rumor."
parts = [l if l[-1] == '.' else l + '.' for l in re.split(r'\.\s?(?!$)', s)]
print(parts)
输出:
['He sad might have lung cancer.', 'It’s just a rumor.']
r'\.\s?(?!$)'
模式,将分隔符定义为.
,但文本末尾除外(?!$)
l if l[-1] == '.' else l + '.'
- 在每一行的末尾恢复 .
(因为拆分时未捕获稀释剂)