多版本中文停用词词表 + 多版本英文停用词词表 + python词表合并程序

文章简介与更新记录

如果你只想获取中文停用词此表,请直接到文章结尾下载项目文件,其中包括三个中文停用词词表,一个英文停用词词表和一个合并词表的.py文件

  • 2017/07/04 创建文章,上传文件
  • 2017/07/04 更新了合并代码,添加了新的中文停用词表(哈工大扩展版本)和一个新的停用词表,现在最全的中文停用词表为1927,添加了英文和中英文停用词表英文停用词词表为1199

停用词

在进行汉语自然语言处理时候,分词是必不可少的环节,但是在实际的自然语言中,有很多的非实意词语或者其他并没有实际作用的词语,这些词语我们必须在分词环节后进行过滤—这个环节也就是过滤停用词.不过想要获得好的分词效果,必须首先进行比较好的分词处理.这一点也是十分重要的.

python合并中文停用词词表的代码

# - * - coding: utf - 8 -*-
#
# 作者:田丰(FontTian)
# 创建时间:'2017/7/4'
# 邮箱:fonttian@Gmaill.com
# CSDN:http://blog.csdn.net/fontthrone
import sys

reload(sys)
sys.setdefaultencoding('utf-8')


# 获取停用词的List
def GetListOfStopWords(filepath):
    f_stop = open(filepath)
    try:
        f_stop_text = f_stop.read()
        f_stop_text = unicode(f_stop_text, 'utf-8')
    finally:
        f_stop.close()
    f_stop_seg_list = f_stop_text.split('\n')

    return f_stop_seg_list


# 保存List
def SaveFile(list, filename):
    f_stop = open(filename, 'w')
    for item in range(len(list)):
        if item != len(list):
            f_stop.writelines((list[item].encode('utf-8')) + '\n')
        else:
            f_stop.writelines(list[item].encode('utf-8'))
    f_stop.close()


# 求List并集
def GetListUnion(listName):
    ListUnion = ['!']
    for item in listName:
        # print item
        ListUnion.extend(GetListOfStopWords(item))
    return list(set(ListUnion))


def GetStopWords(listOfFileName, FileName='CNstopwords.txt', keynumber=1):
    stopwords_pathCN = 'CNstopwords.txt'  # 默认中文总表 1
    stopwords_pathEN = 'ENstopwords.txt'  # 默认英文总表 2
    stopwords_pathCNEN = 'CNENstopwords.txt'  # 默认中英文混合总表 4
    if keynumber == 1:
        listOfFileName.append(stopwords_pathCN)
    elif keynumber == 2:
        listOfFileName.append(stopwords_pathEN)
    elif keynumber == 3:
        listOfFileName.append(stopwords_pathCN)
        listOfFileName.append(stopwords_pathEN)
    elif keynumber == 5:
        listOfFileName.append(stopwords_pathCN)
        listOfFileName.append(stopwords_pathCNEN)
    elif keynumber == 6:
        listOfFileName.append(stopwords_pathEN)
        listOfFileName.append(stopwords_pathCNEN)
    elif keynumber == 7:
        listOfFileName.append(stopwords_pathCN)
        listOfFileName.append(stopwords_pathEN)
        listOfFileName.append(stopwords_pathCNEN)
    else:
        listOfFileName.append(stopwords_pathCN)
        print 'The keynumber is wrong,chage keynumber to 1 '

        listOfFileName.append(stopwords_pathCNEN)
    ListUnion = GetListUnion(listOfFileName)
    SaveFile(ListUnion, FileName)


'''
stopwords_pathCN = 'CNstopwords.txt' # 默认中文总表 1
stopwords_pathEN = 'CNstopwords.txt' # 默认英文总表 2
stopwords_pathCNEN = 'CNstopwords.txt' # 默认中英文混合总表 4
'''

listOfFileName = []

# 需要添加的 中文 停用词词表
stopwords_path1 = 'stopwords1893.txt'
stopwords_path2 = 'stopwords1229.txt'
stopwords_path3 = 'stopwordshagongdakuozhan.txt'
stopwords_path4 = 'stop_words_zh.txt'

# 需要添加的 英文 停用词词表
stopwords_path5 = 'stop_words_eng.txt'
stopwords_path6 = 'ENstopwords891.txt'

# 需要添加的 中文 停用词词表路径
# listOfFileName.append(stopwords_path1)
# listOfFileName.append(stopwords_path2)
# listOfFileName.append(stopwords_path3)
# listOfFileName.append(stopwords_path4)

# 需要添加的 英文 停用词词表路径
listOfFileName.append(stopwords_path5)
listOfFileName.append(stopwords_path6)

GetStopWords(listOfFileName, FileName='ENstopwords.txt', keynumber=2)

百度云下载所有文件

下载地址:http://pan.baidu.com/s/1dFjDj3r

posted @ 2017-07-03 15:13  FontTian  阅读(1911)  评论(0编辑  收藏  举报