word collocations中文版(信息检索)
虽然说是大作业,也做了好几天,但是完全没有什么实际价值...就是把现有的东西东拼西凑一下,发现跑的特别慢还搞了个多核
写这篇blog纯属是我吃饱了没事干,记录一下装env的蛋疼
首先我们是在python下进行的,虽然python本身有点慢,而且多线程8太行,但是架不住他在处理dictionary的时候简单
同时我们需要的库有lucene(建立索引),pyltp(依存句法粉细),wx(画一个很丑的GUI界面,作业要求的)
我惊奇的发现,只有python3.6才能满足这三个库同时存在...
配置环境:我在阿里云上用竞价方式买了一个计算性ecs.ic5.3xlarge,12核12GB,虽然看起来很贵,但是实际竞价的话一天也就10多块钱(结果硬盘比机器贵...)
首先在tuna源上下载anaconda3-5.2,bash安装
更新pip以后就可以直接pip install pyltp了,但是pyltp还有模型数据要单独下载,百度一下就好了
接下来下载pylucene-8.1.1,解压以后按照网上的步骤安装到python里面
最后 conda install wxpython=4.0.4=py36hc99224d_0 安装wxpython,不指定build的话anaconda自动给升级成python3.7就爆了....
到此环境终于搞定了
首先word collocation,也就是常用词搭配,可以用一句话来解释:“元芳 你 怎么 看”
显然“元芳”,”你“,“怎”么都是修饰看的,也就是说虽然”元芳“和“你”在同一句话里面,而且甚至连在一起,但是他们之间其实是没有什么“搭配”的关系的
这时候可以用到一个叫做依存句法分析的东西,也就是可以把一句话里每个词修饰的到底是另外哪一个词给找出来,这样我们就可以得到一句话里的所有“词语搭配”了
这个东西并不需要我来写,使用哈工大写的极烂但是仅此一家的LTP工具可以简单地分析一下,但是有一说一,确实很慢
现在查询一个词“服务”和它搭配最多的词,我们只要找到所有包含“服务”的句子,然后把这些句子给用ltp分析一下,这样就能找到所有修饰“服务”的词了
我们再把它们统计一下个数,出现越多的说明这种搭配越常见,于是就完事了
但是我们发现实际上运算速度非常的慢,因为需要在线依存句法分析,一分钟大约只能处理10000条句子
所以我又使用了python里的mulitprocessing,用满了所有的12个核心,这样子速度大概提升了10倍左右(因为有大量内存拷贝,占用了很多时间)
同时因为我要在两个process里传递dictionary,然而我经过查找发现mulitprocessing.Queue的大小只有65536Byte(大概),所以我只能传递词典的前150个词左右回去,剩下的词出现次数也并不多,所以去掉了也没有关系,最终结果如下:
暂时先写到这里,有空再补
word collocations中文版(信息检索)的更多相关文章
- word双栏排版,最后一页由于分节符造成最后一页是空白页,删除分节符双栏就变成了单栏
遇到这个问题时,我们把心思都花在了如何“删除”这个空白页. 但是最有效的办法不是“删除”,而是(以word2007为例): Word 2007中文版: 鼠标放在最后一页,点击页面布局①,选择页面布局右 ...
- <Python Text Processing with NLTK 2.0 Cookbook>代码笔记
如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...
- Python爬虫抓取 python tutorial中文版,保存为word
看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地 首先是网页的内容 查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保 ...
- Python 资源大全中文版
Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...
- JavaScript资源大全中文版(Awesome最新版--转载自张果老师博客)
JavaScript资源大全中文版(Awesome最新版) 目录 前端MVC 框架和库 包管理器 加载器 打包工具 测试框架 框架 断言 覆盖率 运行器 QA 工具 基于 Node 的 CMS 框 ...
- Java资源大全中文版(Awesome最新版)(转载)
原文地址:http://www.cnblogs.com/best/p/5876559.html 目录 业务流程管理套件 字节码操作 集群管理 代码分析 编译器生成工具 构建工具 外部配置工具 约束满足 ...
- 安装部署完office web apps 后,无法浏览Word
安装部署完office web apps 后,在sharepoint 2010浏览器中浏览Word提示:“由于出现意外错误,Word Web App 无法打开此 文档 进行查看. 要查看此 文档,请在 ...
- [No00000C]Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
Word对于我们办公来说,是不可缺少的办公软件,因为没有它我们可能无法进行许多任务.所以现在的文员和办公室工作的人,最基础的就是会熟悉的使用Office办公软件.在此,为提高大家Word使用水平,特为 ...
- Github优秀java项目集合(中文版) - 涉及java所有的知识体系
Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...
随机推荐
- quartz2.3.0系列目录——带您由浅入深全面掌握quartz2.3.0
quartz2.3.0系列目录 官网下载地址:http://www.quartz-scheduler.org/downloads/ 本系列demo全部来源于官网,仅仅是简化和汉化了注释!一部分代码de ...
- 怎么理解js的原型链继承?
前言 了解java等面向对象语言的童鞋应该知道.面向对象的三大特性就是:封装,继承,多态. 今天,我们就来聊一聊继承.但是,注意,我们现在说的是js的继承. 在js的es6语法出来之前,我们想实现js ...
- yield再理解--绝对够透彻
首先,拿好宝剑: 先把yield看做“return”, 普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了. 看做return之后再把它看做一个是生成器(generat ...
- Centos7部署开源聊天软件rocket.chat
一.部署rocket.chat 1.看官方文档部署,很简单,一步一步跟着部署即可 注意:需要部署节点需要联网主要是yum方式 https://rocket.chat/docs/installation ...
- angular解决跨域问题
通过angular自身的代理转发功能 配置package.json 启动项目通过npm start启动,会自动启动代理服务npm start
- centOS学习part7:Oracle开机自启配置
0 上一章(http://www.cnblogs.com/souvenir/p/3884904.html)我们用了很多时间以及很长的篇幅来介绍oracle的整个安装过程,希望对大家用所帮助.oracl ...
- react基础学习和react服务端渲染框架next.js踩坑
说明 React作为Facebook 内部开发 Instagram 的项目中,是一个用来构建用户界面的优秀 JS 库,于 2013 年 5 月开源.作为前端的三大框架之一,React的应用可以说是非常 ...
- linux对象系统---kobject, ktype, kset, subsys
本文转自:linux中kobject/ktype/kset/subsys之间的关系 随着内核版本的发展,会有一些变化,无论怎样,变化的是形式,不变的是思想! 那么他们之间具有什么关系?那应该不是'小3 ...
- oracle批量操作
https://stackoverflow.com/questions/39576/best-way-to-do-multi-row-insert-in-oracle 1 批量insert 方式一: ...
- SQL SERVER-3种连接
Nested Loops Join Merge Join Hash Join