1. 目的

在自然语言处理中,很多时候会有冗长的段落,而很多时候,我们需要的只是句子。现实生活中,譬如我们想做一个把长评论拆分成无数个句子的小弹幕,我们就需要这个模块来完成。第二个例子是我们训练词嵌入模型的时候,也需要将段落进行句子的切割。 下面我会来利用SPACY和NLTK的库来完成这个模块。

2.代码块

# -*- coding: utf-8 -*-
'''
Created on Tue Feb 18 16:58:47 2020

@author:  JLblog.tech
'''

from spacy.lang.en import English
from nltk.tokenize import sent_tokenize
doclst=['I have a apple. I have a pie.',
     'I love this website. The view is awesome']

print('Before sentencizer:',doclst)

nlp=English()

sentencizer = nlp.create_pipe("sentencizer")
nlp.add_pipe(sentencizer)

s=[]
for document in doclst:
    doc=nlp(document)
    s+=list(doc.sents)
    
print('\nSentencizer by SPACY: \n',s)
    
##NLTK
s=[]

for doc in doclst:
    
    s+=list(sent_tokenize(doc))
    
print('\nSentencizer by NLTK: \n',s)             

3.代码展示

Machine Learning 03 Code Result