项目中需要将 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']
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)