当前位置: 首页 > news >正文

东莞网站建设定制用wordpress建wiki

东莞网站建设定制,用wordpress建wiki,微信运营工作内容,广东网站建设费用最近总结修改了下预处理方法,记录下 首先download需要的依赖 pip install pyenchantpip install nltk pyenchant 是用来检测拼写正确的,如果你的文本里面可能包含非正确拼写的单词,那就忽略它,nltk用来做分词的。 python -m nlt…

最近总结修改了下预处理方法,记录下

 首先download需要的依赖

pip install pyenchant
pip install nltk

 pyenchant 是用来检测拼写正确的,如果你的文本里面可能包含非正确拼写的单词,那就忽略它,nltk用来做分词的。

python -m nltk.downloader punkt
python -m nltk.downloader stopwords
from nltk.corpus import stopwords
import nltk
import enchant
import redef is_spelled_correctly(word, language='en_US'):spell_checker = enchant.Dict(language)return spell_checker.check(word)def preprocess_text(text):text= re.sub(r'\W+', ' ',re.sub(r'[0-9]+', '', text.replace('-', '').replace('_', ' ')))words=nltk.word_tokenize(text)stop_words = set(stopwords.words('english'))words = [item for word in words for item in re.findall(r'[A-Z]+[a-z]*|[a-z]+', word)if is_spelled_correctly(item) and item.lower() not in stop_words]return ' '.join(words).lower()if __name__ == '__main__':print(preprocess_text('ServiceHandlerId caedbe-85432-xssc-dsdabffdddbea An exception of some microservice TargetDownService occurred and was test #@/*-sss '))
#service handler id exception target service occurred test

 这里最后再转小写是因为防止ServiceHandlerId这种连续的单词链接成的字符串被拼写检查剔除,只有保持驼峰情况下,才能用 re.findall(r'[A-Z]+[a-z]*|[a-z]+', word) 成功把他分成单独的单词,所以最后再处理大小写。

改进方案1: 

之后测试的时候发现数据量一大,他就很慢,后面优化了一下,速度大大提升了

from nltk.corpus import stopwords
import nltk
import enchant
import respell_checker = enchant.Dict(language)def memoize(func):cache = {}def wrapper(*args):if args not in cache:cache[args] = func(*args)return cache[args]return wrapper@memoize
def check_spelling(word):return spell_checker.check(word)def preprocess_text(text):text= re.sub(r'\W+', ' ',re.sub(r'[0-9]+', '', text.replace('-', '').replace('_', ' ')))words=nltk.word_tokenize(text)stop_words = set(stopwords.words('english'))words = [item for word in words for item in re.findall(r'[A-Z]+[a-z]*|[a-z]+', word)if check_spelling(item) and item.lower() not in stop_words]return ' '.join(words).lower()if __name__ == '__main__':print(preprocess_text('ServiceHandlerId caedbe-85432-xssc-dsdabffdddbea An exception of some microservice TargetDownService occurred and was test #@/*-sss '))
#service handler id exception target service occurred test

这里面使用了memoization 技术,它是一种将函数调用和结果存储在一个字典中的优化技术。我这里用来缓存单词的拼写检查结果。

这样之后数据量大了之后速度依然不会太慢了。

改进方案2:

使用spellchecker 这个的速度就比enchant 快的多

pip install pyspellchecker
spell = SpellChecker()
def preprocess_text(text):text= re.sub(r'\W+', ' ',re.sub(r'[0-9]+', '', text.replace('-', '').replace('_', ' ')))words=nltk.word_tokenize(text)stop_words = set(stopwords.words('english'))words = [item for word in words for item in spell.known(re.findall(r'[A-Z]+[a-z]*|[a-z]+', word)) if  item.lower() not in stop_words]return ' '.join(words).lower()

区别: 

SpellChecker是一个基于编辑距离的拼写检查库,它可以在内存中加载一个词典,并对给定的单词列表进行快速的拼写检查。enchant是一个基于C语言的拼写检查库,它可以使用不同的后端,如aspell, hunspell, ispell等,来检查单词是否存在于词典中。SpellChecker比enchant更快,尤其是当单词列表很大时。

http://www.yayakq.cn/news/412144/

相关文章:

  • 广州网站推广教程网站后台怎么做友情链接
  • 2个小时学会网站建设公司要怎么注册
  • app网站开发多少钱wordpress 源码
  • 电商详情页模板的网站网站建设管理典型经验材料
  • 辽宁网站制作公司顺企网怎么发布公司信息
  • 网站开发公司怎么接单子重庆企业模板建站信息
  • 电子商务网站建设与制作宿迁做网站大公司
  • 设计师交流网站西安手机网站定制网站建设
  • 哈尔滨seo整站优化深圳网络公司招聘
  • 岳池住房和城乡建设厅网站软件设计专业学什么
  • 做销售平台哪个网站好免费 搭建公司网站
  • 了解深圳网站定制开发天眼查询企业信息官网入口
  • 建设银行平潭招聘网站怎么修改wordpress布局
  • 安徽柱石建设有限公司网站动画设计专业好的学校
  • 专门做饮食加盟的网站自己搭建的网站可以收费吗
  • 建设网站用什么服务器网站的关键词库怎么做的那么多
  • asp做网站技术怎样河南五建建设集团有限公司网站
  • 高端网站建设公司有必要做吗福建进入一级战备
  • 查看网站是由什么开源做的网站建设对策
  • 八旬老太做直播 什么网站在线写作网站
  • 做ppt常用的网站正规的扬中网站建设
  • 自适应科技公司网站模板h5网站开发费用
  • 网站导航营销的优点网页编辑软件 排行
  • 如何建设网站济南兴田德润简介电话wordpress自定义rss
  • 互联网站建设维护h5制作软件电脑
  • 建设网站费用如何做账百度分公司
  • 中国城乡住房和建设部网站首页犀牛网站建设公司
  • 浙江省人才网官方网站建设厅招聘网站怎么添加广告代码
  • 哪个网站做外贸的多合肥瑶海区房价
  • 最好用的网站建设软件电子商务网站开发项目