📜  在Python使用通用句子编码器进行词嵌入

📅  最后修改于: 2022-05-13 01:55:36.316000             🧑  作者: Mango

在Python使用通用句子编码器进行词嵌入

与将单词表示为向量的词嵌入技术不同,在 Sentence Embeddings 中,整个句子或文本及其语义信息被映射到实数向量中。这种技术可以理解和处理整个文本的有用信息,然后可以更好地理解句子的上下文或含义。

在本文中,您将了解如何使用Universal Sentence Encoder为一个完整的句子创建向量。

例如:

让我们考虑两句话: –

  1. 你几岁?
  2. 你几岁?

以上两句意思相似,即我们试图询问此人的年龄。在上面的两个句子中,单个单词及其向量无法很好地洞察一个完整的句子试图传达的内容,也无法对这两个句子是否相似进行分类。所以在这种情况下,句子嵌入比词嵌入表现更好。



有各种句子嵌入技术,如 Doc2Vec、SentenceBERT、Universal Sentence Encoder 等。

通用句子编码器

Universal Sentence Encoder 将整个句子或文本编码为实数向量,可用于聚类、句子相似性、文本分类和其他自然语言处理 (NLP) 任务。预训练模型可在 Apache-2.0 许可下获得。预训练模型使用深度平均网络 ( DAN ) 编码器对大于字长的文本、句子、短语、段落等进行训练。

使用 Universal Sentence Encoder 实现句子嵌入:

在终端中运行代码之前运行这些命令以安装必要的库。

程序:

Python3
# import necessary libraries
import tensorflow_hub as hub
  
# Load pre-trained universal sentence encoder model
embed = hub.load("https://tfhub.dev/google/universal-sentence-encoder/4")
  
# Sentences for which you want to create embeddings,
# passed as an array in embed()
Sentences = [
    "How old are you",
    "What is your age",
    "I love to watch Television",
    "I am wearing a wrist watch"
]
embeddings = embed(Sentences)
  
# Printing embeddings of each sentence
print(embeddings)
  
# To print each embeddings along with its corresponding 
# sentence below code can be used.
for i in range(len(Sentences)):
    print(Sentences[i])
    print(embeddings[i])


输出:

解释:

上面的输出使用通用句子编码器将输入句子表示为相应的向量。