首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换新文本时BERTopic嵌入ValueError

转换新文本时BERTopic嵌入ValueError
EN

Stack Overflow用户
提问于 2022-11-18 16:33:21
回答 1查看 18关注 0票数 0

我使用SentenceTransformer创建了嵌入,并对这些嵌入进行了BERTopic模型的培训。

代码语言:javascript
复制
sentence_model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = sentence_model.encode(training_docs, show_progress_bar=True)
topic_model = BERTopic().fit_transform(training_docs, embeddings)
topic_model.reduce_topics(training_docs, nr_topics=5)

然后,我使用泡菜保存了embeddings,使用topic_model.save()保存了topic_model。我也可以同时加载它们,但是当我尝试在一个新的文本上使用它时,例如:

代码语言:javascript
复制
with open('embeddings.pickle', 'rb') as pkl:
    embeddings = pickle.load(pkl)

topic_model = BERTopic.load('mybertopic')

sentence = 'I have found my car.'

topics, probs = topic_model.transform(sentence, embeddings)

我得到以下错误:

代码语言:javascript
复制
ValueError: Make sure that the embeddings are a numpy array with shape: (len(docs), vector_dim) where vector_dim is the dimensionality of the vector embeddings. 

嵌入是一个numpy数组。我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-18 16:54:58

好吧我解决了。我必须使用相同的SentenceTransformer对文本进行编码,而不是在transform方法中使用整个嵌入。

代码语言:javascript
复制
embeddings = sentence_model.encode(sentence)
topics, probs = topic_model.transform(sentence, embeddings)
print(topics)
[-1]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74492719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档