首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >文本分词和去停止词的一次优化

文本分词和去停止词的一次优化

作者头像
故事尾音
发布于 2019-12-18 08:49:26
发布于 2019-12-18 08:49:26
81300
代码可运行
举报
运行总次数:0
代码可运行

之前在处理QA语料库的时候,在分词和去停止词的时候消耗时间很长,所以专门搜了一些资料针对这个问题进行了一次优化,总结如下。

文本分词

使用jieba自带的并行分词

在分词前添加jieba.enable_parallel(4)就行了。但是我这里并没有这么做,主要是怕分词顺序出错了。

使用jieba_fast

这是一个cpython的库,使用方法和jieba一致,Github官网。官网的描述如下:

使用cpython重写了jieba分词库中计算DAG和HMM中的vitrebi函数,速度得到大幅提升。

去停止词

构建字典加速

我最开始使用的是把停止词读成列表,然后去列表里面查找,速度很慢。原先的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def get_stopwords(self,stopwords_path):
    stop_f = open(stopwords_path, "r", encoding='utf-8')
    stop_words = list()
    for line in stop_f.readlines():
        line = line.strip()
        if not len(line):
            continue
        stop_words.append(line)
    stop_f.close()
    # print('哈工大停止词表长度为:' + str(len(stop_words)))
    return stop_words

改进之后,构建了停止词字典,速度提高了一倍左右。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def get_stopwords(self,stopwords_path):
    stop_f = open(stopwords_path, "r", encoding='utf-8')
    stop_words = {}
    for line in stop_f.readlines():
        line = line.strip()
        if not len(line):
            continue
        stop_words[line] = line
    stop_f.close()
    # print('哈工大停止词表长度为:' + str(len(stop_words)))
    return stop_words

总结

经过以上改进,代码加速了4倍左右,提升还是很明显的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
理解 LSTM 网络
人类不会每一秒都从头开始思考。当你阅读这篇文章时,你会根据对之前单词的理解来理解每个单词。您不会扔掉所有东西并重新从头开始思考。你的思想有恒心。
小锋学长生活大爆炸
2022/05/09
6950
理解 LSTM 网络
理解LSTM网络
人类不会每时每刻都从头开始重新思考,就像你阅读这篇文章时,你会根据对上文的理解来推断每个词语的意思,而不是抛弃一切从零开始思考。换而言之,你的思想具有持久性。
花落花飞去
2018/02/02
9120
理解LSTM网络
译 理解RNN和LSTM网络
循环神经网络(RNN) 人们的每次思考并不都是从零开始的。比如说你在阅读这篇文章时,你基于对前面的文字的理解来理解你目前阅读到的文字,而不是每读到一个文字时,都抛弃掉前面的思考,从头开始。你的记忆是有持久性的。 传统的神经网络并不能如此,这似乎是一个主要的缺点。例如,假设你在看一场电影,你想对电影里的每一个场景进行分类。传统的神经网络不能够基于前面的已分类场景来推断接下来的场景分类。 循环神经网络(Recurrent Neural Networks)解决了这个问题。这种神经网络带有环,可以将信息持久化。在
云时之间
2018/04/11
7260
(译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LSTM详细的网络结构还是不了解,心里牵挂着难受呀!今天看了 tensorflow 文档上面推荐的这篇博文,看完这后,焕然大悟,对 LSTM 的结构理解基本上没有太大问题。此博文写得真真真好!!!为了帮助大家理解,也是怕日后自己对这些有遗忘的话可以迅速回想起来,所以打算对原文写个翻译。首先声明,由于本人水平有限,如有翻译不好或理解有误的多多指出!此外,本译文也不是和原文一字一句对应的,为了方便理解可能会做一些调整和
Spark学习技巧
2018/06/22
1.3K0
如果你还没搞懂LSTM 网络,那本文绝对值得一看
本文作者Christopher Olah是Google Brain的研究科学家,她在文中图文并茂地解释了什么是LSTM网络,为什么要用LSTM网络,以及LSTM的核心思想,并通过分步详解的形式让读者更容易接受和理解这些概念。 在文章末尾,作者有一个思考:虽然LSTM使得我们在使用RNN能完成任务上迈进了一大步,但还会有下一个大进步吗? 对此你是怎么看的呢? 作者 | Christopher Olah 译者 | 于乃通 循环神经网络(RNN) 人们的每次思考并不都是从零开始的。比如说你在阅读这篇文章时,你
AI科技大本营
2018/04/27
8370
如果你还没搞懂LSTM 网络,那本文绝对值得一看
多图+公式全面解析RNN,LSTM,Seq2Seq,Attention注意力机制
我们知道人类并不是从零开始思考东西,就像你读这篇文章的时候,你对每个字的理解都是建立在前几个字上面。你读完每个字后并不是直接丢弃然后又从零开始读下一个字,因为你的思想是具有持续性的,很多东西你要通过上下文才能理解。
CristianoC
2020/06/02
3.5K0
深度丨目前最受欢迎的 LSTM 教程:谷歌大脑科学家亲解
AI 科技评论按:这篇文章非常经典,出自 Google Brain 科学家 Christopher Olah 的博客,小编保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技评论」私聊。 如果你对深度学习稍有些研究的话,相信你一定听说过 LSTM,AI 科技评论此前也编译过 LSTM 之父 Jürgen Schmidhuber 的访谈文章,他与 Sepp Hochreiter 在 1997 年发表的一篇论文中提出了 LSTM 的概念。 LSTM 能够提升神经网络接受输入信息及训练数据的记忆机
AI科技评论
2018/03/09
1K0
深度丨目前最受欢迎的 LSTM 教程:谷歌大脑科学家亲解
使用Keras进行深度学习:(六)LSTM和双向LSTM讲解及实践
作者 | Ray 编辑 | 磐石 出品 | 磐创AI技术团队 【磐创AI导读】:keras系列第六篇,本文主要介绍了LSTM与双向LSTM网路的原理和具体代码实现。长短期记忆(Long Short Term Memory, LSTM)也是一种时间递归神经网络,最早由 Hochreiter & Schmidhuber 在1997年提出,设计初衷是希望能够解决RNN中的长期依赖问题,让记住长期信息成为神经网络的默认行为,而不是需要很大力气才能学会。欢迎大家点击上方蓝字关注我们的公众号:磐创AI。点击公众号下方文
磐创AI
2018/07/03
2.2K0
[译] 理解 LSTM 网络
本文译自 Colah 的博文 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断后续的事件。 RNN 解决了这
用户1107453
2018/06/21
4420
利用LSTM(长短期记忆网络)来处理脑电数据
LSTMs(Long Short Term Memory networks,长短期记忆网络)简称LSTMs,很多地方用LSTM来指代它。本文也使用LSTM来表示长短期记忆网络。LSTM是一种特殊的RNN网络(循环神经网络)。想要说清楚LSTM,就很有必要先介绍一下RNN。下面我将简略介绍一下RNN原理。
脑机接口社区
2020/07/01
1.1K0
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
RNN在处理长期依赖(时间序列上距离较远的节点)时会遇到巨大的困难,因为计算距离较远的节点之间联系时会涉及雅可比矩阵的多次相乘,会造成梯度消失或者梯度膨胀的现象。为了解决该问题,研究人员提出了许多解决办法,例如ESN(Echo State Network),增加有漏单元(Leaky Units)等等,其中成功应用最广泛的就是门限RNN(Gated RNN),而LSTM就是门限RNN中最著名的一种。有漏单元通过设计连接间的权重系数,从而允许RNN累积距离较远节点间的长期联系;而门限RNN则泛化了这样的思想,允许在不同时刻改变该系数,且允许网络忘记当前已经积累的信息。
JOYCE_Leo16
2024/04/09
1860
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
【综述专栏】循环神经网络RNN(含LSTM,GRU)小综述
在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
马上科普尚尚
2021/01/13
5.3K0
【综述专栏】循环神经网络RNN(含LSTM,GRU)小综述
深度学习|理解LSTM网络(前篇)
01 — 回顾 近两天推送介绍了CNN网络,关于这部分的介绍,请参考: 深度学习|卷积神经网络(CNN)介绍(前篇) 深度学习|卷积神经网络(CNN)介绍(后篇) CNN网络在图像处理被广泛应用,接下来,介绍另一种在自然语言处理(NLP)和语音识别领域应用广泛的网络:LSTM(Long Short Term Memory),它是RNN网络的一个更具有工程应用的版本。 关于这部分的内容介绍,基本参考:《Understanding LSTM Networks》(http://colah.github.io/po
double
2018/04/02
7770
深度学习|理解LSTM网络(前篇)
【专知中秋呈献-PyTorch手把手深度学习教程03】LSTM快速理解与PyTorch实现: 图文+代码
首先祝各位专知好友,中秋佳节快乐! 【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视觉等)、大数据、编程语言、系统架构。使用请访问专知 进行主题搜索查看 - 桌面电脑访问www.zhuanzhi.ai, 手机端访问www.zhuanzhi.ai 或关注微信公众号后台回复" 专知"进入专知,搜索主题查看。值国庆佳节,专知特别推出独家特刊-来自中科院自动化所专知小组博士生huaiwen和Jin创
WZEARW
2018/04/09
2.3K0
【专知中秋呈献-PyTorch手把手深度学习教程03】LSTM快速理解与PyTorch实现: 图文+代码
LSTM模型介绍
人类不会每时每刻都开始思考。 当你阅读这篇文章时,你会根据你对之前单词的理解来理解每个单词。 你不会忘掉掉所有东西,然后再从头开始思考。 你的想法有持久性。
全栈程序员站长
2022/10/01
1.2K0
LSTM模型介绍
用机器学习实现IT服务票单的分配,实例详解分享
用认知计算处理现实生活中的业务是一件很有意义的事情,比如在IT服务管理领域。机器学习对处理现实案例中的分类与分配问题将会比人工更为有效,比如以下几种场景:
商业新知
2019/05/09
7560
用机器学习实现IT服务票单的分配,实例详解分享
超生动图解LSTM和GPU:拯救循环神经网络的记忆障碍就靠它们了!
AI识别你的语音、回答你的问题、帮你翻译外语,都离不开一种特殊的循环神经网络(RNN):长短期记忆网络(Long short-term memory,LSTM)。
量子位
2018/10/26
6970
教程 | 如何使用LSTM在Keras中快速实现情感分析任务
选自TowardsDataScience 作者:Nimesh Sinha 机器之心编译 参与:Nurhachu Null、路雪 本文对 LSTM 进行了简单介绍,并讲述了如何使用 LSTM 在 Keras 中快速实现情感分析任务。 长短期记忆网络通常被称为 LSTM,它是由 Hochreiter 和 Schmiduber 提出的,被广泛地应用在语音识别、语言建模、情感分析和文本预测中。在深入 LSTM 之前,我们首先应该理解对 LSTM 的需求,这个可以通过 RNN 在实际应用中的缺陷来解释。所以我们就从
机器之心
2018/05/08
2.2K0
教程 | 如何使用LSTM在Keras中快速实现情感分析任务
LSTM模型
什么是LSTM模型 LSTM (Long Short-Term Memory)也称长短时记忆结构,它是传统RNN的变体,与经典RNN相比能够有效捕捉长序列之间的语义关联,缓解梯度消失或爆炸现象.同时LSTM的结构更复杂,它的核心结构可以分为四个部分去解析: ●遗忘门 ●输入门 ●细胞状态 ●输出门
zhangjiqun
2024/12/14
7290
LSTM模型
理解 LSTM 网络
本文转自简书 原文作者:Colah 翻译:Not_GOD Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断
用户1737318
2018/06/05
7490
推荐阅读
相关推荐
理解 LSTM 网络
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档