首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring整合Mybatis分析与编码
最近一直在持续学习,好久没更新博客了,一直只在埋头学习,没有啥输出,今天就来输出一篇文章。之前Spring和Mybatis没有学很扎实,整合的时候很多代码看的很迷糊,所以整明白了就来写一篇文章。
Aomsir
2022/12/06
3330
SSM框架整合—详细整合教程(Spring+SpringMVC+MyBatis)
因为Spring中有强大的bean管理机制,解决了对象之间的耦合度,另外对于重用的对象,通过容器来管理比较方便,还提供了强大的事务处理机制。所以把重复的代码都交给spring去处理,也可以提高代码的灵活性。
苏州程序大白
2022/06/12
4.2K0
最新Spring整合MyBatis详解教程
此时,就可以删除mybatis核心配置文件mybatis-config.xml中的数据源配置
用户7656790
2020/09/10
4710
mybatis分页插件pageHelper简单实用
转载自 http://blog.csdn.net/Smile_Miracle/article/details/53185655
allsmallpig
2021/02/25
3560
mybatis 高级映射和spring整合之与Spring整合(6)
mybatis 高级映射和spring整合之mybatis与Spring整合 3.0 mybatis和spring整合(掌握) 3.1 整合思路 需求spring通过单例方式管理SqlSessionFactory。 spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成) 持久层的mapper都需要有spring进行管理。 3.2 整合环境 创建一个新的ja
王小雷
2019/05/26
4040
java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot
cat属于代码侵入式的,集成cat需要进行相应的埋码。接入代码可以参考integration包下的代码
用户4361942
2019/05/29
2.8K0
java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot
Spring 整合 Mybatis
这里创建 SqlSessionFactory 的代码是固定的,变化的部分只有 getMapper 时需要传入的参数。
wsuo
2020/09/17
4260
Springboot 中同时使用mybatis注解和springbean-xml配置方式
因为自己新建了一个应用,为了开发的速度,直接选用了springboot,但后来发现大部分读库的代码和同事已有的代码重复, 索性直接拿过来用。但问题是我已有的代码是通过纯注解的方式使用mybatis,同事代码是spring+xml来使用mybatis,经过几天的探索,发现一种两种方式结合使用的方法。   我们在spring中用@Autowired获取mybatis mapper时,其实是Spring通过mybatis的sqlSessionFactory获取到的,mybatis-starter在启动过程中会在spring容器中注册好sqlSessionFactory, 但这starter并不会读取xml中配置的mapper。但如果你先让spring通过bean xml注册了sqlSessionFactory并读取了xml中的mapper配置,就无法注册mybatis-stater中的autoconfigure就会失败,你用纯注解写的那个mapper就加载不上了。   所以先让springboot在启动时候先执行完成mybatis-starter中的MybatisAutoConfiguration,这时候在spring容器中sqlSessionFactory已经注册好了,然后把关于mapper的springbean xml配置文件读取并配置,配置过程中spring会先尝试注册sqlSessionFactory,其实已经有了,就会用这个factory把xml中mapper再加载一遍,因为spring中默认都是单例, 所以不会重建mybatis-starter中创建的sqlSessionFactory, 这里非常关键的一点就是加载xml必须在MybatisAutoConfiguration完成后,具体配置代码如下。
xindoo
2021/01/21
1.2K0
深入浅出MyBatis:MyBatis与Spring集成及实用场景
本篇是「深入浅出MyBatis」系列的最后一篇,主要介绍与Spring的集成,以及工作中的一些实用场景。
情情说
2018/04/27
9270
深入浅出MyBatis:MyBatis与Spring集成及实用场景
java-mybaits-009-mybatis-spring-使用,SqlSessionFactoryBean、事务
要注意 SqlSessionFactory 需要一个 DataSource(数据源) 。这可以是任意 的 DataSource,配置它就和配置其它 Spring 数据库连接一样。
全栈程序员站长
2022/07/21
4340
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制
到目前为止web.xml中出现的标签:servlet filter listener context-param。
鹿老师的Java笔记
2020/08/06
3860
mybatis-spring整合的三种(逐渐优化)方案
第一种就是作者之前写过的,就是通过编写是实现类然后在实现类里面实现接口的方法,然后在applicationcontex.xml文件中注册创建一个该实现类的bean对象,然后在该对象中注入SQLSession的以来即可
萌萌哒的瓤瓤
2020/08/26
5030
Mybatis 文档(一)
既然有了 SqlSessionFactory,顾名思义,我们就可以从中获得 SqlSession 的实例了。SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。例如:
Remember_Ray
2020/08/03
6050
java之mybatis整合spring
在cn.vincent.mapper.impl下 UserMapperImpl.java
Vincent-yuan
2019/09/04
4360
java之mybatis整合spring
Spring | Spring整合Mybatis
http://www.mybatis.org/spring/zh/index.html
啵啵鱼
2022/11/23
4190
Spring | Spring整合Mybatis
Spring-Mybatis 整合
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。
张小驰出没
2021/04/15
5090
Spring-Mybatis 整合
Spring整合Mybatis
整合Mybatis 导入相关jar包 junit mybatis mysql数据库 spring相关的 aop织入 mybatis-spring 【new】 <dependencies> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dep
后端码匠
2021/08/22
3420
MyBatis-Spring的实现方式有哪些?
MyBatis-Spring是一个用于集成MyBatis和Spring框架的开源项目,它可以使得在Spring环境下使用MyBatis更加方便。以下是 MyBatis-Spring 的实现方式:
GeekLiHua
2025/01/21
1280
mybatis 详解(十一)------ mybatis和spring整合
IT可乐
2018/01/04
1K0
mybatis 详解(十一)------ mybatis和spring整合
spring整合mybatis
SqlSessionDaoSupport 中getSqlSession() 即获取sqlSessionTemplate
Java微观世界
2025/01/20
1330
推荐阅读
相关推荐
Spring整合Mybatis分析与编码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档