利用jieba分词并去除停用词
2019-05-13 本文已影响0人
momo1023
import jieba
import re
# 停用词
# 创建停用词列表
def get_stopwords_list():
stopwords = [line.strip() for line in open('stopwords.txt',encoding='UTF-8').readlines()]
return stopwords
# 对句子进行中文分词
def seg_depart(sentence):
# 对文档中的每一行进行中文分词
sentence_depart = jieba.lcut(sentence.strip())
return sentence_depart
def remove_digits(input_str):
punc = u'0123456789.'
output_str = re.sub(r'[{}]+'.format(punc), '', input_str)
return output_str
# 去除停用词
def move_stopwords(sentence_list, stopwords_list):
# 去停用词
out_list = []
for word in sentence_list:
if word not in stopwords_list:
if not remove_digits(word):
continue
if word != '\t':
out_list.append(word)
return out_list
样例如下:
sentence = '1、判令被告赵军霞偿还原告借款本息及应收费用共计4278.6元(计算至2017年1月10日,实际还款额以合同约定的计费方式计算至最终还款日)'
stopwords = get_stopwords_list()
sentence_depart = seg_depart(sentence)
print(sentence_depart)
sentence_depart = move_stopwords(sentence_depart, stopwords)
print(sentence_depart)
输出结果为:
['1', '、', '判令', '被告', '赵军', '霞', '偿还', '原告', '借款', '本息', '及', '应收', '费用', '共计', '4278.6', '元', '(', '计算', '至', '2017', '年', '1', '月', '10', '日', ',', '实际', '还款额', '以', '合同', '约定', '的', '计费', '方式', '计算', '至', '最终', '还款', '日', ')']
['判令', '被告', '赵军', '霞', '偿还', '原告', '借款', '本息', '应收', '费用', '共计', '元', '计算', '年', '月', '日', '还款额', '合同', '约定', '计费', '方式', '计算', '最终', '还款', '日']