====
Paper
====

======
Python
=====
=

=========
Tensorflow
=========

=======
PyTorch
=======

=====
Keras
=====

=======
Topics
=======

====
Link
====

====
Video

====

==========
Drug Design

==========

==============
Material Science
==============

=========
Economics
=========
=


=================
Word Vector Models
=================


Word2vec

Word2Vec是一种将文本中的词进行嵌入的方法,而所谓嵌入,就是将各个词使用一个定长的向量来表示。word2vec工具主要包含两个模型:连续词袋模型(continuous bag of words,简称CBOW)和跳字模型(skip-gram),word2vec词向量可以较好地表达不同词之间的相似和类比关系

CBOW模型,它的目标是:给定一串文本,使用某个词的上下文来预测这个词。例如,对于句子“Old soldiers never die,they just fade away”,预测soldiers这个词时,可以使用never、die、fade、away这四个词,它们构成了soldiers的上下文。这样,从文本中就可以提取一系列的训练样本。得到上下文以后,将这些词的one-hot编码累加起来,输入神经网络,然后神经网络进行一些变换,其目标为得到fox这个词的one-hot编码。训练好之后的神经网络中,隐藏层的权重矩阵就是词嵌入后的向量了。

skip-gram是类似的,它输入当前词soldiers,目标是变换为上下文的词汇,此处上下文词汇的处理与CBOW一样,也是将这些词的one-hot编码相加,作为训练使用的真值。

GitHub Word2Vec 词向量模型详解 + Python代码实战
Word2Vec模型  
   
   
   

 


GloVe

GitHub 斯坦福大学的词向量工具:GloVe
Glove词向量 Glove:一种词向量表示方式总结
词向量:GloVe 模型详解  
   
   

ELMo

ELMo (Embeddings from Language Models) 是由Allen Institute for AI的AllenNLP团队开发的。

GitHub  
   
   
   
   
   
   

Bert

BERT (Bidirectional Encoder Representations from Transformers) 是由Google AI团队开发的。

GitHub  
   
   
   
   
   
   

GPT

GPT (Generative Pre-trained Transformer) 是由OpenAI开发的。其主要版本(如GPT-2和GPT-3)的代码和模型都可以在OpenAI的GitHub页面找到。

以下是GPT-2的官方GitHub仓库地址: https://github.com/openai/gpt-2

至于GPT-3,OpenAI并没有完全开放其训练代码,但提供了API供开发者使用。你可以访问OpenAI的官方网站查看关于GPT-3的更多详情。

   
   
   
   
   

TF-IDF

TF-IDF的全称是term frequency–inverse document frequency,翻译为词频-逆向文件频率。TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF-IDF和BOW的缺点相同,无法用于描述词与词之间的关系,从原理上来看,这两种方法是专注与单个词的,而不是整个文本相似度的,所以用这两个方法做文本相似度的度量肯定效果不会太好。

TF-IDF (Term Frequency-Inverse Document Frequency) 是一个常见的文本表示方法,而不是特定于某一个项目或团队的模型,因此没有一个"官方"的GitHub仓库。然而,很多开源工具和库提供了TF-IDF的实现,其中最著名的是scikit-learn,一个用于Python的机器学习库。

如果你想看scikit-learn中TF-IDF的实现,你可以访问其官方GitHub仓库并搜索TF-IDF相关代码: https://github.com/scikit-learn/scikit-learn

   
   
   
   
   

BOW

BOW全名叫Bag of words,也称为词袋模型,在信息检索中,BOW假定对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文本中每个词的出现都是独立的,不依赖于其他词 是否出现,或者说当这篇文章的作者在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。

那么在文本相似度中,词袋模型是将两篇文本通过词袋模型变为向量模型,通过计算向量的余弦距离来计算两个文本间的相似度。但这有个明显的缺点,就是严重缺乏相似词之间的表达。比如“我喜欢足球”和“我不喜欢足球”这两个文本是严重不相似的,但词袋模型会判为高度相似。再比如“我喜欢足球”和“我热爱足球”的意思是非常的接近的,但词袋模型不能表示“喜欢”和“爱”之间严重的相似关系。

"Bag of Words" (BoW) 是一个基本的文本表示方法,并没有一个特定的"官方"GitHub仓库。然而,许多开源工具和库提供了BoW的实现。scikit-learn是其中之一,它在Python中为机器学习提供了广泛的工具,其中就包括BoW的实现。

你可以在scikit-learn的官方GitHub仓库中查找BoW相关的代码: https://github.com/scikit-learn/scikit-learn

   
   
   
   
   

 


Huggingface transformers

Huggingface Transformers 是基于一个开源基于 transformer 模型结构提供的预训练语言库,它支持 Pytorch,Tensorflow2.0,并且支持两个框架的相互转换。框架支持了最新的各种NLP预训练语言模型,使用者可以很快速的进行模型的调用,并且支持模型further pretraining 和 下游任务fine-tuning。 该库是使用 BERT 等预训练模型的最常用的库,甚至超过了google等开源的源代码。它的设计原则保证了它支持各种不同的预训练模型,并且有统一的合理的规范。使用者可以很方便的进行模型的下载,以及使用。同时,它支持用户自己上传自己的预训练模型到Model Hub中,提供其他用户使用。对于NLP从业者,可以使用这个库,很方便地进行自然语言理解(NLU) 和 自然语言生成(NLG)任务的SOTA模型使用。