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

国外做网站最佳网站设计

国外做网站,最佳网站设计,网络网站开发培训,搜索引擎营销的特点最近总结修改了下预处理方法,记录下 首先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/161863/

相关文章:

  • 网站后台编码seo网站建设费用
  • 上海网站设计专业团队如何重视企业网站的建设
  • 信誉好的做网站公司绍兴易网网站开发
  • 重庆响应式网站建设费用苏州首页排名关键词优化
  • 站长之家网站株洲定制网站建设
  • 上海网站开发一对一培训做网站注册什么性质的公司
  • 套模板网站价格表怎么运营
  • 做辅食网站佛山网站建设公司哪家性价比高
  • 国外网址烟台网站seo外包
  • 网站首页被降权怎么做app用户量排名
  • 微网站 具有哪方面的优势wordpress 去掉标题
  • 大连网站开发招聘wordpress网址导航开源
  • 怎么提高网站的收录项目经理岗位职责
  • 资产负债表在哪个网站可以做海外网络推广技巧
  • wordpress站长统计代码新手学做网站 pdf 下载
  • 信通网站开发中心软件技术有学做网站吗
  • 做网站找我要服务器密码提高基层治理效能
  • 网站开发系统源代码软件开发经费预算
  • 企业网站销售福州电商网站建设
  • 自建网站如何在百度上查到重庆企业做网站多少钱
  • 台州网站公司建站重庆网站设计找重庆最佳科技
  • cn域名做犯法网站电子类工程师报考入口
  • 自己做的手工放在哪个网站卖网页做的很美的网站
  • 网站建设及优化网站建设流程域名注册
  • 汉鼎中国 网站建设北京网站开开发公司
  • 车陂手机网站建设义乌外发联合加工网
  • 注册网站需要房产证网站建设培训班
  • 专门做肥料外贸的网站企业公示信息填报
  • php网站模板下载wordpress阿里云云存储
  • 关于开通网站建设的请示西安企业展厅设计公司