一、目标
"My name is Tom. I am a boy. I like soccer!"
['My name is Tom.', 'I am a boy.', 'I like soccer!']
二、简单处理方案
使用split('.')即可
import codecs
txt=open("XXXXX")
lis=""#建立一个空的列表存储读取的字符串
for line in txt:
li=line.strip("\n")
lis=lis+li
lis=lis+'' #在每个读取出来的字符后面加空格,分开每个单词
lis.strip('')
liss=lis.split(".")
for h in liss:
if h == '':
continue
h.strip('')
h=h+'.' #在读出的每个句子的最后加上英文句号
print(h)
问题:对于英语,并非只有'.'为一个句子的结束,也可以是'.'',一段话的终结或者问号
三、方案优化
1、使用NLTK库
2、快速入门
NLTK学习之一:简单文本分析
3、安装
调用NLTK报错LookupError: Recource 'tokenizers/punkt/english.pickle' not found(基于Anaconda)
4、代码
import nltk
import nltk.data
def splitSentence(paragraph):
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
sentences = tokenizer.tokenize(paragraph)
return sentences
if __name__ == '__main__':
print splitSentence("My name is Tom. I am a boy. I like soccer!")