在 python 中获取字符串数组列表到单独的字符串数组中

Getting list of string array into separate string arrays in python

这是我的代码。

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.']

他们有什么方法可以做到这一点吗?如果是的话,怎么做到的?

既然要按照一句话来拆分,那么可以简单的这样做:

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('.')]

唯一的罪魁祸首是句子拆分部分会更频繁地发生,因此处理大量句子时会变慢。

使用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 + '.' - 恢复 .在每行的末尾(因为分割时没有捕获分隔符)