python中预训练的单词嵌入。
embeddings的Python项目详细描述
embeddings是一个python包,它为自然语言处理和机器学习提供预训练的单词嵌入。
与加载大文件查询嵌入不同,embeddings由数据库支持,加载和查询速度快:
>>>%timeitGloveEmbedding('common_crawl_840',d_emb=300)100loops,bestof3:12.7msperloop>>>%timeitGloveEmbedding('common_crawl_840',d_emb=300).emb('canada')100loops,bestof3:12.9msperloop>>>g=GloveEmbedding('common_crawl_840',d_emb=300)>>>%timeit-n1g.emb('canada')1loop,bestof3:38.2µsperloop
安装
pip install embeddings # from pypi pip install git+https://github.com/vzhong/embeddings.git # from github
用法
第一次使用时,嵌入首先以sqlite数据库的形式下载到磁盘。 对于手套等大型嵌入件,这可能需要很长时间。 对数据库直接查询嵌入的进一步使用情况。 嵌入数据库存储在$EMBEDDINGS_ROOT目录中(默认为~/.embeddings)。注意,如果您的主目录在nfs上,那么这个位置可能是不需要的,因为它会显著减慢数据库查询的速度。
fromembeddingsimportGloveEmbedding,FastTextEmbedding,KazumaCharEmbedding,ConcatEmbeddingg=GloveEmbedding('common_crawl_840',d_emb=300,show_progress=True)f=FastTextEmbedding()k=KazumaCharEmbedding()c=ConcatEmbedding([g,f,k])forwin['canada','vancouver','toronto']:print('embedding {}'.format(w))print(g.emb(w))print(f.emb(w))print(k.emb(w))print(c.emb(w))
码头工人
如果使用Docker,则可以在vzhong/embeddings处找到一个预先填充了Common Crawl 840手套嵌入和桥本kazuma字符NGRAM嵌入的图像。 要从此容器装入卷,请将容器中的$EMBEDDINGS_ROOT设置为/opt/embeddings。
例如:
docker run --volumes-from vzhong/embeddings -e EMBEDDINGS_ROOT='/opt/embeddings' myimage python train.py
贡献
拉请求欢迎!