利用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', '日', ',', '实际', '还款额', '以', '合同', '约定', '的', '计费', '方式', '计算', '至', '最终', '还款', '日', ')']
['判令', '被告', '赵军', '霞', '偿还', '原告', '借款', '本息', '应收', '费用', '共计', '元', '计算', '年', '月', '日', '还款额', '合同', '约定', '计费', '方式', '计算', '最终', '还款', '日']
上一篇下一篇

猜你喜欢

热点阅读