我正在使用 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我想在我的 Python Spark 文本分类管道中使用词嵌入。该文档展示了如何训练您自己的嵌入,但我想使用像 GloVe 这样的预训练集。有没有某种方法可以使用预训练的嵌入来初始化 Word2VecModel 还是我必须编写自己的转换器类?
apache-spark word2vec pyspark apache-spark-ml word-embedding
根据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) 我有一个网站元描述列表(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 information-extraction word2vec word-embedding relation-extraction
大家好,有人可以帮我看一下使用 python 的 LDA2Vec 的工作示例吗?请假设数据框 df 具有包含文本数据的“注释”列
我正在尝试实现“cemoody/lda2vec”github 示例,但遇到多个问题 - 1. 如何安装 spacy 包?2.导入错误:无法从“lda2vec”导入名称“预处理” 3.导入错误:无法从“lda2vec”导入名称“LDA2Vec”
不知道我在这里缺少什么。
任何帮助/链接将非常感激
所以,我有一个任务需要测量两个文本之间的相似度。这些文本是杂货店产品的简短描述。它们始终包含产品名称(例如牛奶),并且可能包含生产商和/或尺寸,以及产品的一些其他特征。
我有一整套这样的文本,然后,当新的文本到达时,我需要确定我的数据库中是否有类似的产品,并测量它们的相似程度(从 0 到 100% 的范围)。
问题是:文本可能采用两种不同的语言:乌克兰语和俄语。另外,如果有外国品牌(例如,Coca Cola),它会用英文书写。
我解决这个任务的最初想法是获得多语言单词嵌入(不同语言中的相似单词位于附近)并找到这些文本之间的距离。但是,我不确定这会有多有效,如果可以的话,该从什么开始。
因为我拥有的每个文本只是一组产品特征,所以一些基于上下文的词嵌入可能不起作用(我不确定这个陈述,这只是我的假设)。
到目前为止,我已经尝试熟悉MUSE框架,但在安装时遇到了问题faiss。
因此,我的问题是:
注意:我有 Windows 10(以防某些库无法在 Windows 上运行),并且我需要该库才能使用乌克兰语和俄语。
预先感谢您的任何帮助!任何建议将不胜感激!
我感兴趣的是如何从 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 相似度。
在此先感谢您的任何建议!
我用来faiss indexflatIP存储与某些单词相关的向量。我还使用另一个列表来存储单词(列表中第 n 个元素的向量是 faiss 索引中的第 n 个向量)。我有两个问题:
我想在 SQL Server 中存储一个大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) word-embedding ×10
python ×5
word2vec ×5
nlp ×4
apache-spark ×1
arrays ×1
faiss ×1
gensim ×1
lda ×1
multilingual ×1
pyspark ×1
similarity ×1
spacy ×1
sql-server ×1
tf-idf ×1
vector ×1