jieba中文分词的实现(含去除停用词,注释详尽,欢迎批评指导)

#一般需要导入该库。导入方法,打开cmd命令窗口或者anaconda prompt:
#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba(最后一个参数是包名)
#如果想安装对应版本的包,只需在包名后面加“==版本号”即可
import jieba

#分词
def cut_word(Test):
    # jieba 默认启用了HMM(隐马尔科夫模型)进行中文分词
    seg_list = jieba.cut(Test,cut_all=True)  # 分词

    #返回一个以分隔符'/'连接各个元素后生成的字符串
    line = "/".join(seg_list)
    word = out_stopword(line)
    #print(line)
    #列出关键字
    print("\n关键字:\n"+word)

#去除停用词
def out_stopword(seg):
    #打开写入关键词的文件
    keyword = open('D:\keyword.txt', 'w+', encoding='utf-8')
    print("去停用词:\n")
    wordlist = []

    #获取停用词表
    #开源网站GitHub上有整理好的停用词表,可以下载使用
    #goto456/stopwords: 中文常用停用词表(哈工大停用词表、百度停用词表等)——https://github.com/goto456/stopwords
    #停用词文本C:\Users\Administrator\hit_stopwords.txt
    stop = open('D:\hit_stopwords.txt', 'r+', encoding='utf-8')
    #用‘\n’去分隔读取,返回一个一维数组
    stopword = stop.read().split("\n")
    #遍历分词表
    for key in seg.split('/'):
        #print(key)
        #去除停用词,去除单字,去除重复词
        if not(key.strip() in stopword) and (len(key.strip()) > 1) and not(key.strip() in wordlist) :
            wordlist.append(key)
            print(key)
            keyword.write(key+"\n")

    #停用词去除END
    stop.close()
    keyword.close()
    return '/'.join(wordlist)

if __name__ == '__main__':
    #打开txt文本
    Rawdata = open('D:\Rowdatas.txt','r+',encoding='utf-8')
    #将文本读取并存储到text中
    text = Rawdata.read()
    #调用分词,将待分词的文本作为参数传入方法中
    cut_word(text)
    #关闭文本
    Rawdata.close()
  • 9
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值