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

时间:2017-03-08 19:32:48

标签: python arrays tokenize

这是我的代码。

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

他们有什么办法这样做,如果是这样的话?

2 个答案:

答案 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 + '.' - 在每一行的末尾恢复 .(因为拆分时未捕获稀释剂)