利用jieba分词并去除停用词

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', '日', ',', '实际', '还款额', '以', '合同', '约定', '的', '计费', '方式', '计算', '至', '最终', '还款', '日', ')']
['判令', '被告', '赵军', '霞', '偿还', '原告', '借款', '本息', '应收', '费用', '共计', '元', '计算', '年', '月', '日', '还款额', '合同', '约定', '计费', '方式', '计算', '最终', '还款', '日']
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3-1 求一元二次方程的根(20 分)本题目要求一元二次方程的根,结果保留2位小数。 输入格式:输入在一行中给出3...
    林之禾阅读 23,480评论 0 7
  • Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加...
    bbqub阅读 729评论 0 0
  • 神奇的幻方 题目描述 幻方是一种很神奇的NN矩阵:它由数字1,2,3,……,NN构成,且每行、每列及两条对角线上的...
    bbqub阅读 768评论 0 1
  • 数组索引 这样声明个数组,名为radius,含3个int型元素。我们可通过radius[0],radius[1],...
    夏威夷的芒果阅读 925评论 1 0
  • 冬眠醒来的太阳比任何时候都更接近大地光暖中的花蕾涨满了蜜汁蝌蚪急于长成青蛙春风忙着吹绿爱情蜜蜂倾巢而出鼓动着心房飞...
    Bohemian_e6af阅读 358评论 4 4