未验证 提交 e0c1edd1 编写于 作者: J Jack Zhou 提交者: GitHub

Fix windows bug (#5140)

* add embedding example in embeddings.md

* add embedding.md link in toke_embedding readme

* fix windows url bug
上级 6d8ba1ef
...@@ -3,13 +3,15 @@ ...@@ -3,13 +3,15 @@
- [英文词向量](#英文词向量) - [英文词向量](#英文词向量)
- [GloVe](#glove) - [GloVe](#glove)
- [FastText](#fasttext) - [FastText](#fasttext)
- [使用方式](#使用方式)
- [模型信息](#模型信息) - [模型信息](#模型信息)
- [致谢](#致谢) - [致谢](#致谢)
- [参考论文](#参考论文) - [参考论文](#参考论文)
# Embedding 模型汇总 # Embedding 模型汇总
PaddleNLP提供多个开源的预训练Embedding模型,用户仅需在使用`paddlenlp.embeddings.TokenEmbedding`时,指定预训练模型的名称,即可加载相对应的预训练模型。以下为PaddleNLP所支持的预训练Embedding模型,其名称用作`paddlenlp.embeddings.TokenEmbedding`的参数。命名方式为:\${训练模型}.\${语料}.\${词向量类型}.\${co-occurrence type}.dim\${维度}。训练模型有三种,分别是Word2Vec(w2v, 使用skip-gram模型训练), GloVe(glove)和FastText(fasttext)。 PaddleNLP提供多个开源的预训练Embedding模型,用户仅需在使用`paddlenlp.embeddings.TokenEmbedding`时,指定预训练模型的名称,即可加载相对应的预训练模型。以下为PaddleNLP所支持的预训练Embedding模型,其名称用作`paddlenlp.embeddings.TokenEmbedding`的参数。命名方式为:\${训练模型}.\${语料}.\${词向量类型}.\${co-occurrence type}.dim\${维度}。训练模型有三种,分别是Word2Vec(w2v, 使用skip-gram模型训练), GloVe(glove)和FastText(fasttext)。在[使用方式](#使用方式)这一节中,将介绍如何通过模型名称使用`paddlenlp.embeddings.TokenEmbedding`加载预训练模型。
## 中文词向量 ## 中文词向量
...@@ -65,6 +67,17 @@ PaddleNLP提供多个开源的预训练Embedding模型,用户仅需在使用`p ...@@ -65,6 +67,17 @@ PaddleNLP提供多个开源的预训练Embedding模型,用户仅需在使用`p
| Wiki2017 | fasttext.wiki-news.target.word-word.dim300.en | | Wiki2017 | fasttext.wiki-news.target.word-word.dim300.en |
| Crawl | fasttext.crawl.target.word-word.dim300.en | | Crawl | fasttext.crawl.target.word-word.dim300.en |
## 使用方式
以上所述的模型名称可直接以参数形式传入padddlenlp.embeddings.TokenEmbedding,加载相对应的模型。比如要加载语料为Wiki2017,通过FastText训练的预训练模型(`fasttext.wiki-news.target.word-word.dim300.en`),只需执行以下代码:
```python
import paddle
from paddlenlp.embeddings import TokenEmbedding
token_embedding = TokenEmbedding(embedding_name="fasttext.wiki-news.target.word-word.dim300.en")
```
## 模型信息 ## 模型信息
| 模型 | 文件大小 | 词表大小 | | 模型 | 文件大小 | 词表大小 |
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
| 参数 | 类型 | 属性 | | 参数 | 类型 | 属性 |
| ------------ | ------------ | ------------ | | ------------ | ------------ | ------------ |
| embedding_name | **string** | 预训练embedding名称,可通过paddlenlp.embeddings.list_embedding_name查询。 | | embedding_name | **string** | 预训练embedding名称,可通过paddlenlp.embeddings.list_embedding_name[Embedding 模型汇总](../../docs/embeddings.md)查询。 |
| unknown_token | **string** | unknown token。 | | unknown_token | **string** | unknown token。 |
| unknown_token_vector | **list** 或者 **np.array** | 用来初始化unknown token对应的vector。默认为None(以正态分布方式初始化vector)| | unknown_token_vector | **list** 或者 **np.array** | 用来初始化unknown token对应的vector。默认为None(以正态分布方式初始化vector)|
| extended_vocab_path | **string** | 扩展词表的文件名路径。词表格式为一行一个词。 | | extended_vocab_path | **string** | 扩展词表的文件名路径。词表格式为一行一个词。 |
......
...@@ -16,7 +16,7 @@ from enum import Enum ...@@ -16,7 +16,7 @@ from enum import Enum
import os.path as osp import os.path as osp
URL_ROOT = "https://paddlenlp.bj.bcebos.com" URL_ROOT = "https://paddlenlp.bj.bcebos.com"
EMBEDDING_URL_ROOT = osp.join(URL_ROOT, "models/embeddings") EMBEDDING_URL_ROOT = URL_ROOT + "/models/embeddings"
PAD_TOKEN = '[PAD]' PAD_TOKEN = '[PAD]'
UNK_TOKEN = '[UNK]' UNK_TOKEN = '[UNK]'
......
...@@ -69,7 +69,7 @@ class TokenEmbedding(nn.Embedding): ...@@ -69,7 +69,7 @@ class TokenEmbedding(nn.Embedding):
vector_path = osp.join(EMBEDDING_HOME, embedding_name + ".npz") vector_path = osp.join(EMBEDDING_HOME, embedding_name + ".npz")
if not osp.exists(vector_path): if not osp.exists(vector_path):
# download # download
url = osp.join(EMBEDDING_URL_ROOT, embedding_name + ".tar.gz") url = EMBEDDING_URL_ROOT + "/" + embedding_name + ".tar.gz"
get_path_from_url(url, EMBEDDING_HOME) get_path_from_url(url, EMBEDDING_HOME)
logger.info("Loading token embedding...") logger.info("Loading token embedding...")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册