Python 白名单的处理

项目中需要将 whitelist中的单词,进行词干的提取工作。
whitelist可能如下:
sissied
【Python 白名单的处理】loveed

mianmianieshit

Muthad



因为白名单中可能是单词也可能是词组,而且一些单词可能是三单形式、过去式。
研究了一下,下面的方法可行。




#-*- coding:utf-8 -*- import nltkf=open("../test","r") test=f.read()# test='sissied\nloveed\nmianmianies hit\nMut had\n'whitelist = [] word=[]for w in test:#读取的test中的每一个基本字符 if w != '\n': word.extend(w)#在遇到换行符之前,把test中的字母追加到word中,即word用来临时保存whitelist每一行的内容 else : whitelist.append([''.join(word)])#把word的['s','i','s','s','i','e','d']合并为[‘sissied’] word=[]#然后把word清零,存放下一个单词def stem( word): if word[0].islower():#判断world的第一个字或单词是不是小写,因为大写可能是专有名词,不需要提取词根 return stemmer.stem(word)#提取每一个单词的词根 else: return wordwhitelist_stemmed = [] for w in whitelist: ws = map(lambda w: stemmer.stem(w), w)##提取每一个单词的单词的词根 whitelist_stemmed.append(' '.join(ws))


输出结果
>>> whitelist_stemmed
['sissi', 'love', 'mianmianies hit', 'Mut had']

    推荐阅读