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

上海做网站培训班cpv广告联盟

上海做网站培训班,cpv广告联盟,建设银行嘉兴分行网站首页,调用wordpress编辑器最近总结修改了下预处理方法,记录下 首先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.dinnco.com/news/39968.html

相关文章:

  • 用笔记本电脑能建设网站吗网络销售平台排名前十
  • 公司网站可以用个人备案吗seo网上课程
  • 做网站收费标准品牌推广方式都有哪些
  • oss做网站迁移今日头条新闻下载安装
  • 网站虚拟主机虚拟空间百度数据指数
  • 昆明有多少做网站的公司网络营销包括
  • 响应式网站建设精英产品网络营销方案
  • 网站做中转网页设计图片
  • 体育用品东莞网站建设google引擎免费入口
  • 全网最稳最低价自助下单网站网站模板套用教程
  • 建设部科技项目申报网站怎么快速优化关键词排名
  • 濮阳做网站活动策划方案
  • 淘宝放单网站怎么做宁波seo外包推广公司
  • 建手机网站公司百度网址导航
  • 网络运维app系统玉林seo
  • 网站托管怎做bt磁力搜索引擎
  • 做最好的赚钱网站网络营销和网络销售的关系
  • 编程软件做网站的郑州网站建设制作公司
  • 如何使网站能被百度搜到武汉seo网站
  • 苏州比较大的设计公司广东网络优化推广
  • 企业网站排名怎么优化百度seo排名点击器
  • 国外做网站被动收入天津优化公司哪家好
  • 学校网站建设都是谁做的专业制作网站的公司哪家好
  • 官方网站的推广策划怎么做指数基金定投技巧
  • 烟台做网站案例外贸网络推广
  • 北京seo技术关键词优化排名软件推荐
  • 炫酷的企业网站模板免费下载网络宣传渠道
  • 网站建设用户画像例子网站建设维护
  • 大学学风建设专题网站怎么建立企业网站免费的
  • 怎么做QQ信任网站哪个公司的网站制作