Python分句

一、目标

"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!")  

你可能感兴趣的:(Python分句)