Python 获取一个句子中每个标记的嵌入

Python 获取一个句子中每个标记的嵌入,python,pandas,machine-learning,nlp,data-science,Python,Pandas,Machine Learning,Nlp,Data Science,我有一个python中的数据框架,其中有一列文本数据。我需要运行一个循环,在该循环中,我将获取文本列中的每一行,并获取该特定行中每个标记的bert嵌入。然后我需要附加这些向量嵌入,并出于某种目的进行尝试 e、 g“我叫奥巴马” 为“My”获取768向量嵌入 获取“name”的768向量嵌入 获取“is”的768向量嵌入 获取“奥巴马”的768矢量嵌入 最终输出:大小为768*4=3072的向量嵌入 假设每一行都有确切数量的单词出现我相信您是在尝试将基于上下文的句子单个单词嵌入到图片中,而不是像手

我有一个python中的数据框架,其中有一列文本数据。我需要运行一个循环,在该循环中,我将获取文本列中的每一行,并获取该特定行中每个标记的bert嵌入。然后我需要附加这些向量嵌入,并出于某种目的进行尝试

e、 g“我叫奥巴马” 为“My”获取768向量嵌入 获取“name”的768向量嵌入 获取“is”的768向量嵌入 获取“奥巴马”的768矢量嵌入

最终输出:大小为768*4=3072的向量嵌入
假设每一行都有确切数量的单词出现

我相信您是在尝试将基于上下文的句子单个单词嵌入到图片中,而不是像手套一样的固定向量。 你的方法应该是正确的

  • 将段落标记为单独的句子(如果适用,请查看一些句子标记器或SBD(句子边界检测)方法)
  • 现在,对于构成段落的每个句子,获得单词的嵌入
  • 求平均值,以便在多个Paragrap中获得一致形状的向量(在您的示例中是dataframe单元,基本上是段落)
  • pip安装句子转换器

    一旦安装

    model = SentenceTransformer('paraphrase-distilroberta-base-v1')
    
    #Our sentences we like to encode
    sentences = ['This framework generates embeddings for each input sentence',
        'Sentences are passed as a list of string.',
        'The quick brown fox jumps over the lazy dog.']
    
    #Sentences are encoded by calling model.encode()
    embeddings = model.encode(sentences)
    
    #Print the embeddings
    for sentence, embedding in zip(sentences, embeddings):
        print("Sentence:", sentence)
        print("Embedding:", embedding)
        print("")
    

    看看嵌入向量和围绕嵌入的聚合技术。

    这也将为每个句子提供768个向量嵌入。我希望每个单词都能嵌入768个向量。有没有办法用伯特来做呢?再看一下,这会给你768*n的向量。其中n是句子中的字数。