标签: word-embedding

Word2Vec 中的维度从何而来?

我正在使用 word2vec 模型来训练神经网络并构建神经嵌入来查找向量空间上的相似单词。但我的问题是关于单词和上下文嵌入(矩阵)中的维度,我们在训练开始时通过随机数(向量)对其进行初始化,如下所示https://iksinc.wordpress.com/2015/04/13 /词作为向量/

\n\n

假设我们想要在图表上显示 {book,paper,notebook,novel} 单词,首先我们应该构建一个尺寸为 4x2 或 4x3 或 4x4 等的矩阵,我知道矩阵的第一个尺寸是我们的词汇|v|。但是矩阵的第二个维度(向量的维度数),例如这是单词 \xe2\x80\x9cbook" [0.3,0.01,0.04] 的向量,这些数字是什么?它们有什么意义吗? 例如0.3数字与词汇表中的单词\xe2\x80\x9cbook"和\xe2\x80\x9cpaper\xe2\x80\x9d之间的关系有关,0.01是book和notebook之间的关系等。\n就这样就像 TF-IDF 或共现矩阵一样,Y 的每个维度(列)都有一个含义 - 它是与 X 行中的单词相关的单词或文档。

\n

nlp machine-learning neural-network word2vec word-embedding

5
推荐指数
1
解决办法
3179
查看次数

我可以创建带有预训练嵌入的 Apache Spark Word2VecModel 吗?

我想在我的 Python Spark 文本分类管道中使用词嵌入。该文档展示了如何训练您自己的嵌入,但我想使用像 GloVe 这样的预训练集。有没有某种方法可以使用预训练的嵌入来初始化 Word2VecModel 还是我必须编写自己的转换器类?

apache-spark word2vec pyspark apache-spark-ml word-embedding

5
推荐指数
0
解决办法
645
查看次数

Word2vec中单词类比背后的运算是什么?

根据https://code.google.com/archive/p/word2vec/

最近的研究表明,词向量捕捉了许多语言规律,例如向量运算向量(‘巴黎’)-向量(‘法国’)+向量(‘意大利’)产生的向量非常接近向量(‘罗马’) '),并且向量('king') -向量('man') + vector('woman') 接近于向量('queen') [3, 1]。您可以通过运行 demo-analogy.sh 来尝试一个简单的演示。

所以我们可以尝试使用提供的演示脚本:

+ ../bin/word-analogy ../data/text8-vector.bin
Enter three words (EXIT to break): paris france berlin

Word: paris  Position in vocabulary: 198365

Word: france  Position in vocabulary: 225534

Word: berlin  Position in vocabulary: 380477

                                              Word              Distance
------------------------------------------------------------------------
                                           germany      0.509434
                                          european      0.486505
Run Code Online (Sandbox Code Playgroud)

请注意,这paris france berlin是演示建议的输入提示。问题是,如果我打开相同的词向量Gensim并尝试自己计算向量,我将无法重现这种行为。例如:

>>> word_vectors = KeyedVectors.load_word2vec_format(BIGDATA, binary=True)
>>> v = word_vectors['paris'] - word_vectors['france'] + word_vectors['berlin']
>>> word_vectors.most_similar(np.array([v]))
[('berlin', 0.7331711649894714), ('paris', 0.6669869422912598), ('kunst', 0.4056406617164612), ('inca', …
Run Code Online (Sandbox Code Playgroud)

python gensim word2vec word-embedding

5
推荐指数
1
解决办法
4269
查看次数

将 TF-IDF 与预训练的词嵌入相结合

我有一个网站元描述列表(128k 描述;每个描述平均有 20-30 个单词),并且正在尝试构建一个相似度排名器(如:向我显示与此网站元描述最相似的 5 个网站)

它与 TF-IDF uni- 和 bigram 配合得非常好,我认为我还可以通过添加预先训练的词嵌入(准确地说是 spacy“en_core_web_lg”)来改进它。情节扭曲:根本行不通。从字面上没有得到一个好的猜测,它突然吐出完全随机的建议。

下面是我的代码。有什么想法我可能哪里出了问题吗?我是否在监督一些高度直观的事情?

import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
import sys
import pickle
import spacy
import scipy.sparse
from scipy.sparse import csr_matrix
import math
from sklearn.metrics.pairwise import linear_kernel
nlp=spacy.load('en_core_web_lg')


""" Tokenizing"""
def _keep_token(t):
    return (t.is_alpha and 
            not (t.is_space or t.is_punct or 
                 t.is_stop or t.like_num))
def _lemmatize_doc(doc):
    return [ t.lemma_ for t in doc if _keep_token(t)]

def _preprocess(doc_list):     
    return [_lemmatize_doc(nlp(doc)) for doc in doc_list]
def dummy_fun(doc): …
Run Code Online (Sandbox Code Playgroud)

nlp tf-idf spacy word-embedding tfidfvectorizer

5
推荐指数
1
解决办法
5335
查看次数

从句子中提取关系概念

是否有当前模型,或者我如何训练一个模型,该模型采用涉及两个主题的句子,例如:

[减数分裂]是[细胞分裂]的一种...

并决定一个是另一个的子概念还是父概念?在这种情况下,细胞分裂是减数分裂的母体。

nlp information-extraction word2vec word-embedding relation-extraction

5
推荐指数
1
解决办法
273
查看次数

LDA2Vec Python 实现示例?

大家好,有人可以帮我看一下使用 python 的 LDA2Vec 的工作示例吗?请假设数据框 df 具有包含文本数据的“注释”列

我正在尝试实现“cemoody/lda2vec”github 示例,但遇到多个问题 - 1. 如何安装 spacy 包?2.导入错误:无法从“lda2vec”导入名称“预处理” 3.导入错误:无法从“lda2vec”导入名称“LDA2Vec”

不知道我在这里缺少什么。

任何帮助/链接将非常感激

python lda word2vec word-embedding

5
推荐指数
1
解决办法
4303
查看次数

在 python 中测量多种语言文本之间的相似性的最佳方法是什么?

所以,我有一个任务需要测量两个文本之间的相似度。这些文本是杂货店产品的简短描述。它们始终包含产品名称(例如牛奶),并且可能包含生产商和/或尺寸,以及产品的一些其他特征。

我有一整套这样的文本,然后,当新的文本到达时,我需要确定我的数据库中是否有类似的产品,并测量它们的相似程度(从 0 到 100% 的范围)。

问题是:文本可能采用两种不同的语言:乌克兰语和俄语。另外,如果有外国品牌(例如,Coca Cola),它会用英文书写。

我解决这个任务的最初想法是获得多语言单词嵌入(不同语言中的相似单词位于附近)并找到这些文本之间的距离。但是,我不确定这会有多有效,如果可以的话,该从什么开始。

因为我拥有的每个文本只是一组产品特征,所以一些基于上下文的词嵌入可能不起作用(我不确定这个陈述,这只是我的假设)。

到目前为止,我已经尝试熟悉MUSE框架,但在安装时遇到了问题faiss

因此,我的问题是:

  • 我的词嵌入想法值得尝试吗?
  • 也许有更好的方法吗?
  • 如果词嵌入的想法没问题,我应该使用哪些?

注意:我有 Windows 10(以防某些库无法在 Windows 上运行),并且我需要该库才能使用乌克兰语和俄语。

预先感谢您的任何帮助!任何建议将不胜感激!

python multilingual nlp similarity word-embedding

5
推荐指数
1
解决办法
1543
查看次数

如何从 BERT 模型中获取词嵌入的余弦相似度

我感兴趣的是如何从 BERT 模型中获取不同句子中词嵌入的相似度(实际上,这意味着词在不同场景下具有不同的含义)。

例如:

sent1 = 'I like living in New York.'
sent2 = 'New York is a prosperous city.'
Run Code Online (Sandbox Code Playgroud)

我想从sent1和sent2中获取cos(纽约,纽约)的值,即使短语“纽约”相同,但它出现在不同的句子中。我从https://discuss.huggingface.co/t/generate-raw-word-embeddings-using-transformer-models-like-bert-for-downstream-process/2958/2得到了一些直觉

但我仍然不知道我需要提取哪一层的嵌入以及如何计算上面示例的 cos 相似度。

在此先感谢您的任何建议!

python transformer-model word-embedding bert-language-model

5
推荐指数
1
解决办法
1万
查看次数

更新 faiss 索引中的元素

我用来faiss indexflatIP存储与某些单词相关的向量。我还使用另一个列表来存储单词(列表中第 n 个元素的向量是 faiss 索引中的第 n 个向量)。我有两个问题:

  1. 有没有更好的方法将单词与其向量联系起来?
  2. 我可以更新 faiss 中的第 n 个元素吗?

python word-embedding faiss

5
推荐指数
1
解决办法
7292
查看次数

如何在Microsoft SQL Server中存储n维向量?

我想在 SQL Server 中存储一个大n维向量(例如嵌入向量)作为与另一行关联的元数据。

\n

在本例中,它将是一个 384 维向量,例如:

\n
[0.161391481757164,   -0.23294533789157867, -0.5648667216300964,  -0.3210797905921936,  -0.03274689242243767,  0.011770576238632202, -0.06612513959407806,\n-0.14662186801433563, -0.17081189155578613,  0.2879514992237091,  -0.1932784765958786,   0.009713868610560894, 0.23330552875995636,   0.03551964834332466,\n-0.20526213943958282,  0.06445703655481339, -0.3146169185638428,   0.5788811445236206,   0.09118294715881348, -0.0048667509108781815,-0.16503077745437622,\n 0.25162017345428467, -0.36395764350891113, -0.34742429852485657,  0.0526515394449234,   0.08912508934736252,  0.48464590311050415,  -0.04224267974495888,\n 0.32445403933525085, -0.6847451329231262,  -0.20959551632404327, -0.027657458558678627, 0.20439794659614563,  0.6859520077705383,   -0.4988805055618286,\n-0.26204171776771545, -0.18842612206935883,  0.07067661732435226,  0.02633148804306984,  0.03182782977819443,  0.28935596346855164,  -0.0016041728667914867,\n 0.14609676599502563, -0.36272501945495605,  0.10288259387016296, -0.3651926815509796,  -0.3823530375957489,   0.14052163064479828,   0.006418740376830101,\n 0.11741586774587631, -0.6509529948234558,  -0.15997739136219025, -0.42837604880332947,  0.12351743131875992,  0.0485026054084301,    0.24820692837238312,\n 0.46972623467445374, -0.47954055666923523, -0.5238635540008545,  -0.3543052673339844,   0.22626525163650513,  0.18406584858894348,   0.6463921070098877,\n 0.11894208937883377, -0.07143554836511612,  0.004256516695022583, 0.10088140517473221,  0.3335645794868469,   0.16905969381332397,   0.056856121867895126,\n …
Run Code Online (Sandbox Code Playgroud)

sql-server arrays vector word-embedding

5
推荐指数
1
解决办法
2848
查看次数