跳转到主要内容

为bicleaner-ai的glove-python分支

项目描述

bicleaner-ai-glove

注意:这是一个从glove-python分叉的项目,专为bicleaner-ai创建。

Circle CI

这是GloVe的玩具Python实现。

GloVe生成词的密集向量嵌入,其中一起出现的词在结果向量空间中靠近。

虽然这产生的嵌入与word2vec(在gensim中有出色的Python实现)相似,但方法不同:GloVe通过分解语料库词共现矩阵的对数来生成嵌入。

代码使用异步随机梯度下降,并使用Cython实现。它很可能包含大量错误。

安装

使用pip从pypi安装:pip install glove_python

OSX用户注意:由于使用了OpenMP,glove-python无法在Clang下编译。为了安装它,您需要一个较新的gcc版本(例如来自Homebrew)。这应该由setup.py捕获;如果没有,请提出一个问题。

使用OSX中默认的Python发行版进行构建也不受支持;请尝试使用Homebrew或Anaconda的版本。

用法

生成嵌入是一个两步过程:从语料库创建共现矩阵,然后使用它来生成嵌入。Corpus类帮助从令牌的可迭代对象构建语料库;Glove类使用类似sklearn的API训练嵌入。

还支持基本的段落向量。段落向量(在这种情况下)是在单词向量空间中对段落(多词文本片段)的嵌入,使得段落表示接近其包含的单词,并调整语料库中单词的频率(类似于tf-idf加权)。在调用训练模型上的transform_paragraph方法后可以获得这些向量。

示例

example.py包含一些运行简单训练脚本的示例代码:ipython -i -- examples/example.py -c my_corpus.txt -t 10应处理您的语料库,运行10个GloVe训练轮次,并将您放入一个ipython外壳中,其中glove.most_similar('physics')应产生一个类似单词的列表。

如果您想处理维基百科语料库,可以使用-w标志将文件从此处传递到example.py脚本中。运行make all-wiki应下载一个小型维基百科导出文件,处理它并训练嵌入。构建共现矩阵将花费一些时间;通过增加训练并行性以匹配可用的物理CPU核心数可以提高向量的训练速度。

在我的机器上运行此代码产生以下结果

In [1]: glove.most_similar('physics')
Out[1]:
[('biology', 0.89425889335342257),
 ('chemistry', 0.88913708236100086),
 ('quantum', 0.88859617025616333),
 ('mechanics', 0.88821824562025431)]

In [4]: glove.most_similar('north')
Out[4]:
[('west', 0.99047203572917908),
 ('south', 0.98655786905501008),
 ('east', 0.97914140138065575),
 ('coast', 0.97680427897282185)]

In [6]: glove.most_similar('queen')
Out[6]:
[('anne', 0.88284931171714842),
 ('mary', 0.87615260138308615),
 ('elizabeth', 0.87362497374226267),
 ('prince', 0.87011034923161801)]

In [19]: glove.most_similar('car')
Out[19]:
[('race', 0.89549347066796814),
 ('driver', 0.89350343749207217),
 ('cars', 0.83601334715106568),
 ('racing', 0.83157724991920212)]

开发

欢迎提交拉取请求。

在修改.pyx扩展文件时,您需要运行python setup.py cythonize以在运行pip install -e .之前生成扩展.c.cpp文件。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

bicleaner-ai-glove-0.2.1.tar.gz (332.9 kB 查看散列)

上传时间:

构建分发

bicleaner_ai_glove-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看散列)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

bicleaner_ai_glove-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

bicleaner_ai_glove-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

bicleaner_ai_glove-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

bicleaner_ai_glove-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

bicleaner_ai_glove-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ x86-64

支持