word2vec

写给程序员的机器学习入门 (六)

醉酒当歌 提交于 2020-08-06 04:45:45
这一篇将会举两个例子说明怎么应用递归模型,包括文本情感分类和预测股价走势。与前几篇不同,这一篇使用的数据是现实存在的数据,我们将可以看到更高级的模型和手法🤠。 例子① - 文本感情分类 文本感情分类是一个典型的例子,简单的来说就是给出一段话,判断这段话是正面还是负面的,例如淘宝或者京东上对商品的评价,豆瓣上对电影的评价,更高级的情感分类还能对文本中的感情进行细分。因为涉及到自然语言,文本感情分类也属于自然语言处理 (NLP, Nature Langure Processing),我们接下来将会使用 ami66 在 github 上 公开的数据 ,来实现根据商品评论内容识别是正面评论还是负面评论。 在处理文本之前我们需要对文本进行切分,切分方法可以分为按字切分和按单词切分,按单词切分的精度更高但要求使用分词类库。处理中文时我们可以使用开源的 jieba 类库来按单词切分,执行 pip3 install jieba --user 即可安装,使用例子如下: # 按字切分 >>> words = [c for c in "我来到北京清华大学"] >>> words ['我', '来', '到', '北', '京', '清', '华', '大', '学'] # 按单词切分 >>> import jieba >>> words = list(jieba.cut("我来到北京清华大学")) >>

推荐系统概况:传统CTR 深度学习CTR GraphEmbedding 多任务学习 包括:思想、优缺点、网络结构、公式、代码实现等方面

五迷三道 提交于 2020-08-05 20:27:09
推荐系统概况:传统CTR、深度学习CTR、Graph Embedding、多任务学习 包括:思想、优缺点、网络结构、公式、代码实现等方面 传统CTR 深度学习CTR Graph Embedding 多任务学习 总结一下推荐系统使用的技术: Embedding 把稀疏特征稠密化,从而可以让下层网络融合更多的特征 Matrix Factorization 通过矩阵分解技术加入隐向量,从而提高向量的表达能力 Factoriation Machine 通过隐向量特征的交叉从而提高泛化能力 Multilayer Perceptrons 通过多层感知机,加入类似Attention、GRU、向量操作(拼接、内积、外积)、向量交叉等各种技术提高模型的泛化、记忆能力 回头再看看推荐系统的发展历程: 从CF到MF 然后发展到FM、FFM 接着发展到MLP、Graph Embedding 然后多目学习 当然,这里面可能有些是交替发展的。 我觉得推动推荐系统发展因素有: 日益规模庞大的电商类等系统带来的数据量爆发式增长,大数据技术的使用 微博、新闻、短视频等传播类爆发式增长,产品的个性化强、兴趣变换快 硬件技术GPU、TPU带来计算能力加强 业务需求越来越复杂,评价要求增多:CTR、CVR、阅读时长、多样性、惊喜度... 借鉴CV、NLP领域发展的部分技术成果, 例如:Word2vec, CNN、GRU

文本分类实战(一)—— word2vec预训练词向量

非 Y 不嫁゛ 提交于 2020-08-04 17:41:32
1 大纲概述   文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类。总共有以下系列:    word2vec预训练词向量    textCNN 模型    charCNN 模型    Bi-LSTM 模型    Bi-LSTM + Attention 模型    RCNN 模型    Adversarial LSTM 模型    Transformer 模型    ELMo 预训练模型    BERT 预训练模型    所有代码均在 textClassifier 仓库中。 2 数据集   数据集为IMDB 电影影评,总共有三个数据文件,在/data/rawData目录下,包括unlabeledTrainData.tsv,labeledTrainData.tsv,testData.tsv。在进行文本分类时需要有标签的数据(labeledTrainData),但是在训练word2vec词向量模型(无监督学习)时可以将无标签的数据一起用上。 3 数据预处理   IMDB 电影影评属于英文文本,本序列主要是文本分类的模型介绍,因此数据预处理比较简单,只去除了各种标点符号,HTML标签,小写化等。代码如下: import pandas as pd from bs4 import BeautifulSoup

Python: gensim: RuntimeError: you must first build vocabulary before training the model

夙愿已清 提交于 2020-08-01 05:43:05
问题 I know that this question has been asked already, but I was still not able to find a solution for it. I would like to use gensim's word2vec on a custom data set, but now I'm still figuring out in what format the dataset has to be. I had a look at this post where the input is basically a list of lists (one big list containing other lists that are tokenized sentences from the NLTK Brown corpus). So I thought that this is the input format I have to use for the command word2vec.Word2Vec() .

Python: gensim: RuntimeError: you must first build vocabulary before training the model

陌路散爱 提交于 2020-08-01 05:43:05
问题 I know that this question has been asked already, but I was still not able to find a solution for it. I would like to use gensim's word2vec on a custom data set, but now I'm still figuring out in what format the dataset has to be. I had a look at this post where the input is basically a list of lists (one big list containing other lists that are tokenized sentences from the NLTK Brown corpus). So I thought that this is the input format I have to use for the command word2vec.Word2Vec() .

NLP中的自监督表示学习,全是动图,很过瘾的

江枫思渺然 提交于 2020-07-29 10:09:49
作者:amitness 编译:ronghuaiyang 其实在自监督学习的概念提出之前,NLP中就已经运用到了这一思想。 虽然计算机视觉在自监督学习方面取得了惊人的进展,但在很长一段时间内,自监督学习一直是NLP研究领域的一等公民。语言模型早在90年代就已经存在,甚至在“自我监督学习”这个术语出现之前。2013年的Word2Vec论文推广了这一模式,在许多问题上应用这些自监督的方法,这个领域得到了迅速的发展。 这些自监督的方法的核心是一个叫做 “ pretext task ” 的框架,它允许我们使用数据本身来生成标签,并使用监督的方法来解决非监督的问题。这些也被称为“ auxiliary task ”或“ pre-training task “。通过执行此任务获得的表示可以用作我们的下游监督任务的起点。 在这篇文章中,我将概述研究人员在没有明确的数据标注的情况下从文本语料库中学习表示的各种pretext tasks。本文的重点是任务的制定,而不是实现它们的架构。 自监督的方案 1. 预测中心词 在这个公式中,我们取一定窗口大小的一小块文本,我们的目标是根据周围的单词预测中心单词。 例如,在下面的图中,我们有一个大小为1的窗口,因此我们在中间单词的两边各有一个单词。使用这些相邻的词,我们需要预测中心词。 这个方案已经在著名的Word2Vec论文的“ Continuous Bag of

软件漏洞数据处理及分类方法总结

感情迁移 提交于 2020-07-28 18:48:30
目录 一、前言 二、软件漏洞数据分析 三、软件漏洞分类实验流程 四、软件漏洞文本预处理 五、软件漏洞文本表示方法 六、软件漏洞分类模型构建 七、软件漏洞分类实验结果与分析 八、总结 一、前言 本人基于网络空间安全研究方向做过入侵检测实验、软件缺陷分类实验、软件安全漏洞分类管理实验等,网络安全方向相关数据集可参看个人总结: 网络安全相关数据集介绍与下载 ( 具体可参看个人博客: Asia-Lee )。 本文的主要目的是为了构造一个有效的软件漏洞分类模型,该模型能有效提高软件漏洞分类管理的效率和软件漏洞分类的准确率,减少系统被攻击和破坏的风险,降低漏洞修复的成本。本文主要使用深度学习相关方法构造漏洞分类模型进行实验调研。 二、软件漏洞数据分析 实验所用数据为美国国家计算机 通用漏洞数据库(National Vulnerability Database,NVD )和 中国国家信息安全漏洞库(China National Vulnerability Database of Information Security,CNNVD) ,主要以 NVD漏洞数据库 中的漏洞数据为基准数据,本次实验使用的是从2002年到2019年5月份的NVD漏洞数据。 NVD漏洞数据库收录的漏洞数据具有唯一性,规范性,兼容性和统一性,采用国际编码语法规范,因此,可以作为软件漏洞分类研究的基准数据集

构造word2vec之skip-gram数据集

允我心安 提交于 2020-07-27 12:07:58
skip-gram是根据中心词预测周边词,窗口大小为C,负例采样数为K。 import torch from torch.utils.data import Dataset, DataLoader from collections import Counter import numpy as np # 设定一些超参数 K = 100 # number of negative samples C = 3 # nearby words threshold MAX_VOCAB_SIZE = 30000 # the vocabulary size BATCH_SIZE = 128 # the batch size # 打开train数据集 with open('data/text8.train.txt', 'r') as fin: text = fin.read() # 分割所有单词 text = [word for word in text.split()] # {word:number} vocab = dict(Counter(text).most_common(MAX_VOCAB_SIZE-1)) # 新增 "<unk>"字符 vocab["<unk>"] = len(text) - np.sum(list(vocab.values())) # 字符集列表 idx_to_word

使用Facebook的Pytorch的BigGraph从知识图谱中提取知识

拟墨画扇 提交于 2020-07-24 00:44:57
机器学习使我们能够训练一个可以将数据转换为标签的模型,从而把 相似的 数据映射到 相似 或相同的标签。 例如,我们正在为电子邮件构建一个垃圾邮件过滤器。我们有很多电子邮件,其中一些标记为垃圾邮件,另一些标记为正常邮件(INBOX)。我们可以构建一个模型,该模型学习识别垃圾邮件。被标记为垃圾邮件的邮件在某种程度上类似于已经标记为垃圾邮件的邮件。 相似性 的概念对于机器学习至关重要。在现实世界中,相似性的概念与某个主题相关,它取决于我们的 知识 。 另一方面,数学模型定义了相似性的概念。通常,我们将数据表示为多维向量,并测量向量之间的距离。 https://www.quora.com/Why-do-we-use-cosine-similarity-on-Word2Vec-instead-of-Euclidean-distance 特征工程是将我们对现实世界中的某个对象的知识转换为数字表示的过程。我们认为相似的对象转化为数字后的向量也会很靠近。 例如,我们正在估算房价。我们的经验告诉我们,房屋是由卧室的数量,浴室的数量,房龄,房屋面积,位置等来定义的。位于同一社区,具有相同大小和房龄的房屋的价格应该大致相同。我们将对房屋市场的了解转化为表征房屋的数字,并用它来估算房屋的价格。 不幸的是,如上所述,手动特征工程在将我们的知识转换为描述性特征的能力方面存在局限性。 有时

使用Facebook的Pytorch的BigGraph从知识图谱中提取知识

独自空忆成欢 提交于 2020-07-23 22:21:18
机器学习使我们能够训练一个可以将数据转换为标签的模型,从而把 相似的 数据映射到 相似 或相同的标签。 例如,我们正在为电子邮件构建一个垃圾邮件过滤器。我们有很多电子邮件,其中一些标记为垃圾邮件,另一些标记为正常邮件(INBOX)。我们可以构建一个模型,该模型学习识别垃圾邮件。被标记为垃圾邮件的邮件在某种程度上类似于已经标记为垃圾邮件的邮件。 相似性 的概念对于机器学习至关重要。在现实世界中,相似性的概念与某个主题相关,它取决于我们的 知识 。 另一方面,数学模型定义了相似性的概念。通常,我们将数据表示为多维向量,并测量向量之间的距离。 https://www.quora.com/Why-do-we-use-cosine-similarity-on-Word2Vec-instead-of-Euclidean-distance 特征工程是将我们对现实世界中的某个对象的知识转换为数字表示的过程。我们认为相似的对象转化为数字后的向量也会很靠近。 例如,我们正在估算房价。我们的经验告诉我们,房屋是由卧室的数量,浴室的数量,房龄,房屋面积,位置等来定义的。位于同一社区,具有相同大小和房龄的房屋的价格应该大致相同。我们将对房屋市场的了解转化为表征房屋的数字,并用它来估算房屋的价格。 不幸的是,如上所述,手动特征工程在将我们的知识转换为描述性特征的能力方面存在局限性。 有时