Tokenizer

docker配置搭建elasticsearch集群

北城余情 提交于 2020-08-06 17:14:28
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

docker配置搭建elasticsearch集群

岁酱吖の 提交于 2020-08-06 17:06:10
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

Embedding和Word2Vec实战

[亡魂溺海] 提交于 2020-08-05 05:06:59
在之前的文章中谈到了文本向量化的一些基本原理和概念,本文将介绍Word2Vec的代码实现 https://www.cnblogs.com/dogecheng/p/11470196.html#Word2Vec Word2Vec论文地址 https://arxiv.org/abs/1301.3781 1.Embedding 与one-hot编码相比, 词嵌入可以将更多的信息塞入更低的维度中 下面我们用 Keras 完成一个词嵌入的学习,Keras 的 Embedding 层的输入是一个二维整数张量 , 形状为(samples,sequence_length),即(样本数,序列长度) 较短的序列应该用 0 填充,较长的序列应该被截断,保证输入的序列长度是相同的 Embedding 层输出是(samples,sequence_length,embedding_dimensionality) 的 三维浮点数张量 。 首先,我们需要对文本进行分词处理,然后对分词结果进行序列化 再统一输入的序列长度,最后把统一长度的序列化结果输入到 Embedding 层中 整个过程可以用下面的图描述 从样本的角度看,我们可以用下面的图描述这个过程 示意代码如下 from keras.preprocessing.text import Tokenizer from keras.preprocessing

Elasticsearch从入门到放弃:分词器初印象

别来无恙 提交于 2020-08-04 22:12:03
Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新。 之前我们聊过了 Elasticsearch 的索引 和 文档 ,不太熟悉的话可以先翻阅一下前文。今天再一起聊一下 Elasticsearch 的分词器。 关于分词 如果你是讲 Elasticsearch 作为搜索引擎,那么你应该需要对分词进行了解,Elasticsearch 的分词是将全文本转换为一系列单词,这样有助于在搜索时得到相关的结果以及相关性分析。例如我们有一个文本为“I love Elasticsearch”,然后 Elasticsearch 可以将其分解为三个单词,这时我们无论搜索哪个单词,都能搜到这个文本。 Elasticsearch 通过分词器对文本进行分词处理,Elasticsearch 的分词器是由 Character Filters、Tokenizer 和Token Filter 三部分组成。在介绍它们之前,我们先来简单了解一下 Analyze API,它可以帮助我们快速测试一个 Analyzer 的作用,它的用法也非常简单: GET /_analyze { "analyzer" : "standard", "text" : "Quick Brown

用Siamese和Dual BERT来做多源文本分类

旧街凉风 提交于 2020-07-28 07:25:40
作者:Marco Cerliani 编译:ronghuaiyang 正文共:2062 字 10 图 预计阅读时间:6 分钟 原文链接: 用Siamese和Dual BERT来做多源文本分类 ​ mp.weixin.qq.com 使用不同的方式来使用BERT模型。 在NLP中不断的研究产生了各种各样的预训练模型。对于各种任务,例如文本分类、无监督主题建模和问题回答等,不断的在刷新业界最佳。其中,最伟大的发现之一是在神经网络结构中采用了注意力机制。这种技术是所有称为 transformers 的网络的基础。他们应用注意力机制来提取关于给定单词上下文的信息,然后将其编码到一个学习到的向量中。 作为数据科学家,我们可以调用很多transformers架构,并使用它们对我们的任务进行预测或微调。在这篇文章中,我们喜欢读经典的BERT,但是同样的推理也适用于其他所有的transformer结构。 我们使用了siamese结构,这是一个双路BERT ,用于多文本输入的分类。 数据 我们从Kaggle上收集数据集。新闻类别数据集: https://www. kaggle.com/rmisra/news- category-dataset 包含从HuffPost上获得的2012年至2018年的约20万条新闻标题。我们需要根据两种不同的文本来源对新闻文章进行分类:标题和简介

Python分词工具——jieba

爷,独闯天下 提交于 2020-05-08 10:24:18
jieba简介   python在数据挖掘领域的使用越来越广泛。想要使用python做文本分析,分词是必不可少的一个环节在python的第三方包里,jieba应该算得上是分词领域的佼佼者。 GitHub地址: https://github.com/fxsjy/jieba 安装方法 # 全自动安装: easy_install jieba 或者 pip install jieba / pip3 install jieba # 半自动安装: 先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py install # 手动安装: 将 jieba 目录放置于当前目录或者 site-packages 目录 主要算法 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法 特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 MIT

文本特征提取---词袋模型,TF-IDF模型,N-gram模型(Text Feature Extraction Bag of Words TF-IDF N-gram )

十年热恋 提交于 2020-05-06 01:48:50
假设有一段文本:"I have a cat, his name is Huzihu. Huzihu is really cute and friendly. We are good friends." 那么怎么提取这段文本的特征呢? 一个简单的方法就是使用 词袋 模型 ( bag of words model )。选定文本内一定的词放入词袋,统计词袋内所有词在文本中出现的次数(忽略语法和单词出现的顺序),将其用向量的形式表示出来。 词频统计可以用scikit-learn的 CountVectorizer 实现: text1= " I have a cat, his name is Huzihu. Huzihu is really cute and friendly. We are good friends. " from sklearn.feature_extraction.text import CountVectorizer CV = CountVectorizer() words =CV.fit_transform([text1]) # 这里注意要把文本字符串变为列表进行输入 print (words) 首先CountVectorizer将文本映射成字典,字典的键是文本内的词,值是词的索引,然后对字典进行学习,将其转换成词频矩阵并输出: (0, 3) 1 (0, 4) 1

scikit-learn 4.2 Feature extraction特征提取

冷暖自知 提交于 2020-05-06 01:48:21
4.2 特征提取 sklearn.feature_extraction 模块可以被用来从包含文本或者特片的数据集中提取出适用于机器学习算法的特征。 注意:特征提取和特征选择是极不相同的:前者由任意数据组成,比如文本或者图片,转换为适用于机器学习的数字。后者是应用于这些特征的机器学习方法。 4.2.1 从字典中加载特征 类DictVectorizer可以将由python标准的列表dict对象所表示的特征转换为由scikit-learn中常用的NumPy/SciPy所表示的对象。 虽然 dict 处理起来不是特别快,但是其优势在于方便的使用,创建系数矩阵(缺失值不会被存储)以及将特征名字存储与值上。 DictVectorizer 可以创建我们 称之为 one-of-K 或者" one-hot "编码用于分类特征(又名 aka nominal,discrete )特征。分类特征是"属性 - 值"对,值限制为一系列的无序离散变量(比如,主题标识、对象类型、标记、名字。。。) 在下面的例子中,"城市"是一个分类属性,"温度"是另一个数值特征: >>> measurements = [ ... {'city': 'Dubai', 'temperature': 33.}, ... {'city': 'London', 'temperature': 12.}, ... {'city': 'San

【漫画】ElasticSearch原理 必知必会的倒排索引和分词

让人想犯罪 __ 提交于 2020-05-04 08:27:11
倒排索引的初衷 倒排索引,它也是索引。索引,初衷都是为了快速检索到你要的数据。 我相信你一定知道mysql的索引,如果对某一个字段加了索引,一般来说查询该字段速度是可以有显著的提升。 每种数据库都有自己要解决的问题(或者说擅长的领域),对应的就有自己的数据结构,而不同的使用场景和数据结构,需要用不同的索引,才能起到最大化加快查询的目的。 对 Mysql 来说,是 B+ 树,对 Elasticsearch/Lucene 来说,是倒排索引。 倒排索引是什么 刚刚胖滚猪说到图书的例子,目录和索引页,其实就很形象的可以比喻为正排索引和倒排索引。为了进一步加深理解,再看看熟悉的搜索引擎。没有搜索引擎时,我们只能直接输入一个网址,然后获取网站内容,这时我们的行为是document -> words。此谓「正向索引」。后来,我们希望能够输入一个单词,找到含有这个单词,或者和这个单词有关系的文章,即word -> documents。于是我们把这种索引,叫「反向索引」,或者「倒排索引」。 好了,我们来总结一下: 倒排索引的实现 假如一篇文章当中,有这么一段话"胖滚猪编程让你收获快乐",我要通过"胖滚猪"这个词来搜索到这篇文章,那么应该如何实现呢。 我们是很容易想到,可以将这篇文章的词都拆开,拆分为"胖滚猪"、"编程"、"收获"、"快乐"。注意我们把没用的词,比如"让"去掉了

在Keras中用Bert进行情感分析

我的梦境 提交于 2020-05-02 03:55:00
之前在 BERT实战——基于Keras 一文中介绍了两个库 keras_bert 和 bert4keras 但是由于 bert4keras 处于开发阶段,有些函数名称和位置等等发生了变化,那篇文章只用了 bert4keras 进行情感分析 于是这里新开了一篇文章将 2 个库都用一遍, bert4keras 也使用最新版本 本文所用bert4keras时间:2019-11-09 害怕 bert4keras 后续继续变化,需要稳定的可以先采用 keras_bert 数据集: 原始Github链接: https://github.com/bojone/bert4keras/tree/master/examples/datasets 个人网盘:链接: https://pan.baidu.com/s/1OAhNbRYpU1HW25_vChdRng 提取码: uxax 1.使用keras_bert 配置一些超参数,导入需要的包和设置文件路径 import json import numpy as np import pandas as pd from keras_bert import load_trained_model_from_checkpoint, Tokenizer # 超参数 maxlen = 100 batch_size = 16 droup_out_rate = 0.5