首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏沈唁志

    文本处理,第2部分:OH,倒排索引

    这是我的文本处理系列的第二部分。在这篇博客中,我们将研究如何将文本文档存储在可以通过查询轻松检索的表单中。我将使用流行的开源Apache Lucene索引进行说明。 系统中有两个主要的处理流程... 关键字(未分析,索引,存储) 未编入索引(未分析,未索引,已存储) 未存储(分析,索引,未存储) 文本(分析,索引,存储) 倒排索引是存储的核心数据结构。 (这可以使Web API检索某些文本输出,抓取网页或接收HTTP文档上载)。这可以以批处理或在线方式完成。当索引处理开始时,它解析每个原始文档并分析其文本内容。典型的步骤包括... 请注意,每个级别的段文件大小呈指数增长(M,M ^ 2,M ^ 3)。这将每个查询需要搜索的段文件的数量保持在O(logN)复杂度,其中N是索引中文档的数量。 p2 (1).png 在文档索引期间,首先随机选择一排机器并分配用于构建索引。当一个新文档被抓取时,随机挑选一个来自所选行的列机器来承载文档。该文档将被发送到构建索引的这台机器。

    3K40发布于 2018-06-04
  • 来自专栏MongoDB中文社区

    索引系列:2dsphere索引

    No 2 版本变更 2dsphere索引版本 版本 3 MongoDB 3.2 引入了 2dsphere索引的版本3。 对于包含2dsphere索引键以及其他类型键的复合索引,该索引是否引用文档只取决于2dsphere索引字段。 MongoDB的早期版本仅支持2dsphere (Version 1)索引。 这使得geoNear在具有多个2dsphere索引或多个2d索引的文档中也能被使用: 如果您的集合具有多个2dsphere索引或多个2d索引,则必须使用key选项来指定使用哪个索引字段路径。 如果未指定key,您将无法使用多个2dsphere索引或多个2d索引。因为没有指定key时,在多个2d索引2dsphere索引中选择索引将变得无法明确。 敲黑板!!! 如果您不指定key,您将最多只能拥有一个2dsphere索引或一个2dsphere索引,MongoDB首先寻找2d索引。如果不存在2d索引,则MongoDB会寻找2dsphere索引

    3.6K10发布于 2020-05-11
  • 来自专栏爬蜥的学习之旅

    文本获取和搜索引擎简介

    类似搜索引擎的Pull模型:用户拥有主动权,它具有Ad hoc属性,就是说暂时性的需要,后续不再使用,比如搜索到某个关键字的文档后,这个关键字就不再被使用 查询和浏览的区别:查询是用户知道搜索什么, 浏览是将内容放置供人查看,而不是查询 类似推荐系统的Push模型:系统拥有主动权,一个良好的推荐系统能够给用户推送它真正需要的信息 文本获取的方式 用户给定查询关键字在既有的数据集里头搜索出想要的结果以供浏览 文本获取的方式一般有两种: 第一是 document selection,即根据某种函数f给查询q和文件d作用后的结果来分类,[f(q,d)=1 / 0],明确把文档分隔开,要么完全相关,要么完全不相关 ; 第二是 Ranking,它是计算相关性,并依次排列顺序,关键在于如何说明某个文件的相关性比另一个的相关性更大,当相关性大于某个阈值的时候就返回匹配的文件[ f(q,d)>THETA] 文本获取(Text 通过词(Term)向量的方式来代表一个 doc/query,每一个Term都可以是不同的概念,每一个又代表不同的维度,N term代表N维,对于一个Query vector来说,它可以表示为q=(x1,x2,

    1K30发布于 2019-07-09
  • 来自专栏机器学习算法原理与实践

    文本主题模型之潜在语义索引(LSI)

        在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法。本文关注于潜在语义索引算法(LSI)的原理。 1. 2. 潜在语义索引(LSI)概述     潜在语义索引(Latent Semantic Indexing,以下简称LSI),有的文章也叫Latent Semantic  Analysis(LSA)。 我们假定对应的主题数为2,则通过SVD降维后得到的三矩阵为: ?     从矩阵$U_k$我们可以看到词和词义之间的相关性。而从$V_k$可以看到3个文本和两个主题的相关性。 我们可以计算第一个文本和第二个文本的余弦相似度如下 :$$sim(d1,d2) = \frac{(-0.4945)*(-0.6458) + (0.6492)*(-0.7194)}{\sqrt{(-0.4945 )^2+0.6492^2}\sqrt{(-0.6458)^2+(-0.7194)^2}}$$ 5.

    1.8K20发布于 2018-08-07
  • 来自专栏让技术和时代并行

    lucene给文本索引和搜索功能的应用

    lucene允许你往程序中添加搜索功能,lucene能够把你从文本中解析出来的数据进行索引和搜索 ,lucene不关心数据来源 甚至不关心语种,不过你需要把它转换成文本格式。 也就是说你可以搜索 html网页,文本文档,word文档 ,pdf,或者其他一些 总之 只要能够提取出文本信息的即可。 , 而每个field相当于我们的表名 ,它能够对文本进行自动处理去掉里面的一些语气词,它能把你规定的域当作关键词来进行索引 以备查询时使用,lucene比较容易使用 ,但是不如数据库灵活,速度很快。 { String indexDir = "f:\\index"; //1 String dataDir = "f:\\baidu"; //2 list.add(doc.get("contents")); } reader.close(); return list; } } //这里我主要给文档中的文本进行添加了索引

    1.1K30发布于 2019-04-16
  • 来自专栏Hank’s Blog

    (2)Python索引和切片

    1K20发布于 2020-09-16
  • 来自专栏逸鹏说道

    维护索引2)——填充因子

    前言: 在第九章中,已经介绍了如何使用索引,当一个索引创建时,以B-Tree格式存放数据,拥有根节点、中间节点、叶子节点。 比如有一个聚集索引在SSN上,当插入一个新的SSN数时。 SQLServer会尝试把数据插入到合适的数据页,假设SSN从2开始,此时在最后的数据页中找到这个页面是以SSN开始的,SQLServer将会仅仅在这个页中插入新行。 填充因子仅仅在创建或重建一个索引时有影响,在日常的DML操作中,页依然会100%填满。 , type_desc , fill_factor FROM sys.indexes WHERE type_desc <> 'HEAP' 2

    1.1K60发布于 2018-04-11
  • 来自专栏liuchengxu

    Vim 文本对象指南 (2)

    接 Vim 文本对象 (1), 关于插件使用, 可以查看完整配置 space-vim. ---- 编程语言的文本对象 Vim 基于常见编程语言结构提供了几个常见的文本对象. 模式为 操作 + a/i + 符号,这样操作的就是文本对象。不加 a 或者 i 的话就不是一个对文本对象的操作了。对文本对象进行操作时,Vim 不会考虑你的光标位置。 而非文本对象操作时,会从当前光标处开始生效。 举个例子, ci" 指的是 change inner ", 改变 ""所包含的内容,也就是删除 "" 里面的内容并进入插入模式。 y)) 大括号 a} – a brace block i} – inner brace block puts "Name: #{user.name}" ci} puts "Name: #{}" 这些文本对象同样可以通过 at – a tag block it – inner tag block <h2>Sample Title</h2> cit <h2></h2> 因为操作后光标并不在 <h2> 里面, 所以 cit

    52420发布于 2018-08-23
  • 来自专栏程序猿杂货铺

    【MySQL(2)| MySQL索引机制】

    什么是索引索引是存储引擎用于快速找到记录数据行的一种分散存储的数据结构。 索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 哈希索引的应用场景 根据本人的理解,这种直接通过哈希索引的存储引擎,因为索引自身只需要存储对应的哈希值,所以索引的结构十分紧凑,这会让哈希索引查找的速度非常快 哈希索引的一些限制 哈希索引只包含哈希值和行指针 哈希索引数据并不是按照索引列的值顺序存储的,所以也就无法用于排序 哈希索引也不支持部分索引列匹配查找,因为哈希索引始终是使用索引的全部列值内容来计算哈希值的。 (1)由于是m分叉的,高度能够大大降低; (2)每个节点可以存储j个记录,如果将节点大小设置为页大小,例如4K,能够充分的利用预读的特性,极大减少磁盘IO; 注意:高度降低的原因在于: 在利用了局部性原理前提下 ,我们把一个节点的大小设为一页,一页4K,假设一个KEY有8byte,一个节点可以存储500个KEY,即j=500 m叉树,大概m/2<= j <=m,即可以差不多是1000叉树 一层树:1个节点,1*

    1.4K20发布于 2019-09-03
  • 来自专栏数据分析与挖掘

    机器学习-文本分类(2)-新闻文本分类

    而且文本按照字符级别进行了匿名处理,处理后的数据为下: ? 这里就直接拆分训练集为训练集和测试集了。 在数据集中标签的对应的关系如下: {'科技': 0, '股票': 1, '体育': 2, '娱乐': 3, '时政': 4, '社会': 5, '教育': 6, '财经': 7, '家居': 8, '游戏 2、导入相应包 import pandas as pd import numpy as np from sklearn.feature_extraction.text import CountVectorizer train_set.csv" train_df = pd.read_csv(train_path, sep='\t', nrows=15000) train_df['text'] train_df['label'] 4、进行文本分类 f1.append(f1_score(test_y, val_pred, average='macro')) tfidf = TfidfVectorizer(ngram_range=(2,2

    1.3K30发布于 2020-08-26
  • 来自专栏爬蜥的学习之旅

    文本获取和搜索引擎的概率模型

    coursera课程 text retrieval and search engine 第四周 推荐。

    1.4K30发布于 2019-07-09
  • 来自专栏数说工作室

    海量文本用 Simhash, 2小时变4秒! | 文本分析:大规模文本处理(2

    但是,亿级数据库,用传统的相似度计算方法太慢了,我们需要一个文本查询方法,可以快速的把一段文本的相似文本查出来。 在实际的文本处理工作中,不解决海量查询这一基本问题,耗时等待是非常可怕的。 比如我们时常要对海量相似文本进行去重、或者对海量相似文本的聚类等。 具体场景为:在搜索引擎中查询一段文本,10分钟后才能返回?对微博上某种近一周的文本进行聚类,要等1个月? 你会发现,很多时候,如果不先解决掉大规模相似文本的问题,后面很多高大上的分析、模型都做不了,这也是为什么我文本分析这个系列中,我先介绍“大规模文本处理”,而没有先介绍word2vec、LSTM等方法的原因 2、Simhash 的计算 我们以 “Python is sexy” 为例,展示以下 一段文本的SimHash过程: 先给一个总的流程图: ? 所以,一段文本的Simhash指纹,我们需要复制成四次存储,以text1为例,simhash 成64位之后,我们分成四个部分,A1-A2-A3-A4。

    11.5K136发布于 2018-08-17
  • 来自专栏爬蜥的学习之旅

    文本获取和搜索引擎之推荐系统

    推荐系统即把恰当的内容推送给用户,类似于在一系列文档中过滤出用户想要的。一般有两种方式:

    80631发布于 2019-07-09
  • 来自专栏vivo互联网技术

    【干货】Elasticsearch索引性能优化 (2)

    Elasticsearch索引性能优化 (2) 本文翻译自QBox官方博客的“Elasticsearch索引性能优化”系列文章中的第二篇,版权归原作者所有。 curl -XPOST 'localhost:9200/my_index/_refresh' 2 段与合并 段合并是一个计算开销较大的操作,而且会消耗大量的磁盘I/O。 "indices.store.throttle.type" : "merge" } }' 注意:上面的设置只适用于Elasticsearch 1.X版本,Elasticsearch 2. 机械介质在并发I/O方面有较大的时间开销,因此需要减少线程数,以便能按索引并发访问磁盘。该设置允许每次有max_thread_count + 2个线程操作磁盘,所以设置为1表示支持3个线程。 index.translog.interval - 检查是否需要flush的时间间隔,随机在该时间到2倍之间取值,默认为5秒。

    89440发布于 2019-04-19
  • 来自专栏vivo互联网技术

    【干货】Elasticsearch索引性能优化 (2)

    Elasticsearch索引性能优化 (2) 本文翻译自QBox官方博客的“Elasticsearch索引性能优化”系列文章中的第二篇,版权归原作者所有。 curl -XPOST 'localhost:9200/my_index/_refresh' 2 段与合并 段合并是一个计算开销较大的操作,而且会消耗大量的磁盘I/O。 "indices.store.throttle.type" : "merge" } }' 注意:上面的设置只适用于Elasticsearch 1.X版本,Elasticsearch 2. 机械介质在并发I/O方面有较大的时间开销,因此需要减少线程数,以便能按索引并发访问磁盘。该设置允许每次有max_thread_count + 2个线程操作磁盘,所以设置为1表示支持3个线程。 index.translog.interval - 检查是否需要flush的时间间隔,随机在该时间到2倍之间取值,默认为5秒。

    1.5K30发布于 2019-03-19
  • 来自专栏生物信息学、python、R、linux

    ggplot2文本换行

    在做基因富集时,有些通路特别长,以至于使图片的大小不好控制,这种情况可以用stringr包的str_wrap来完成文本自动换行。 如使用clusterProfiler的barplot时,因为clusterProfiler是基于ggplot2,所以更改ggplot中scale_x_discrete或者scale_y_discrete 1.用到stringr包里的str_wrap函数 library(stringr) library(ggplot2) library(clusterProfiler) x = enrichGO(OrgDb image.png 2.如果不想用到stringr包 get_wraper <- function(width) { function(x) { lapply(strwrap(x sn=fa1f4b6299f94eeb52baf5bda6a5ff6b&chksm=ec43b303db343a150806b3b1ab22a1df1c90405235bb399b155f7c50de2a0a23faf2f4ad0beb

    3.9K30发布于 2020-04-01
  • 来自专栏java学习java

    索引的数据结构(2

    常见索引概念 索引按照物理实现方式,索引可以分为 2 种:聚簇(聚集)和非聚簇(非聚集)索引。我们也把非聚集 索引称为二级索引或者辅助索引。 1. 聚簇索引 特点: 1. 二级索引(辅助索引、非聚簇索引) 概念:回表 我们根据这个以c2列大小排序的B+树只能确定我们要查找记录的主键值,所以如果我们想根 据c2列的值查找到完整的用户记录的话,仍然需要到 聚簇索引 中再查一遍 在记录的c2列相同的情况下,采用c3列进行排序 注意一点,以c2和c3列的大小为排序规则建立的B+树称为 联合索引 ,本质上也是一个二级索引。 为c2和c3列分别建立索引会分别以c2和c3列的大小为排序规则建立2棵B+树。 3.4 InnoDB的B+树索引的注意事项  1. 根页面位置万年不动 2. 内节点中目录项记录的唯一性 3. 如果我们在Col2上建立一个二级索引,则此  如果我们在Col2上建立一个二级索引,则此索引的结构如下图所示: MyISAM 与 InnoDB对比   MyISAM的索引方式都是“非聚簇”的,与InnoDB

    80440编辑于 2022-11-15
  • 来自专栏初见Linux

    2.文本标签-HTML基础

    2.HTML文本 本章主要学习以下六个方面的内容: 标题标签 段落标签 换行标签 文本标签 水平线标签 特殊符号 学完之后,最基本的任务是一定要把这个纯文本网页做出来。 (3)标题与搜索引擎优化SEO 标题标签看似简单,但是在搜索引擎优化(SEO)中扮演着非常重要的角色,这块在之后的文章中会介绍。 粗体标签1.png (2)实际开发 在实际开发中,若要实现对文本的加粗效果,尽量使用 strong 标签,而不要选择 b 标签。 这是因为 strong 标签比 b 标签更具有语义性。 2.斜体标签-em 可使用 em标签 、i 标签 或 cite标签来实现文本斜体效果。 (1)示例 <! (2)实际开发 学习CSS之后,对于删除线效果,一般用CSS来实现,几乎不会用 s 标签来实现。 6.下划线标签 可使用 u 标签来实现文本的下划线效果。 (1)示例 <!

    4.8K30编辑于 2022-01-11
  • 来自专栏用户7873631的专栏

    dom啦 循环索引同步2

    DOCTYPE html> <html> <head> <title></title> </head> <body> <button>我是按钮1</button> <button>我是按钮2</button ) { console.log(i); } list.push(fn); } list[0](); list[1](); list[2] ) { console.log(i); } list.push(fn); } list[0](); list[1](); list[2]

    48740发布于 2020-10-28
  • 来自专栏生物信息学、python、R、linux

    ggplot2 annotate文本设置意大利斜体ggplot2 annotate文本设置意大利斜体

    hjust=0.5)) + annotate("text", x = -Inf, y = Inf, label = paste(italic_p, p.val, sep=''), hjust = -.2, vjust = 2) dev.off() 可以实现p为斜体: 注意保存的时候,要使用cairo_pdf()而不是pdf(),否则p有可能显示不出来。 参考: 1). https://www.codenong.com/30673470/ 2). https://www.coder.work/article/6252692

    1.9K30发布于 2021-09-07
领券