非英语文本中基于预训练模型的BERT语句嵌入

2024-05-17 03:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图应用BERT句子嵌入,从瑞典语文本字符串语料库中找到类似的瑞典语句子。 来自句子变形金刚(SBERT)的句子BERT似乎是理想的选择。他们有各种预训练模型,并给出了很好的例子: (https://github.com/UKPLab/sentence-transformers

from sentence_transformers import SentenceTransformer, util
import torch

embedder = SentenceTransformer('distilbert-base-nli-stsb-mean-tokens')

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.']
sentence_embeddings = model.encode(sentences)

然而,他们对非英语句子转换器的选择似乎是有限的。我想知道,在提取句子嵌入方面,是否有可能而且可能更准确地应用来自拥抱脸库的伯特模型,该模型专门针对瑞典文本或任何其他非英语语言进行训练?在一种语言上专门训练的伯特模型不会为该语言生成更精确的句子嵌入吗?最后,所有的模特都会用他们各自的语言在相同的任务上接受训练,以理解这门语言,对吗

有什么想法或经历吗

最终目标是使用句子嵌入的余弦相似性对相似的句子/段落进行排序


Tags: 字符串模型文本import语言sentencessentence句子
1条回答
网友
1楼 · 发布于 2024-05-17 03:44:15

在瑞典语中使用经过训练的BERT确实要好得多。原因是,对于在英语语料库上训练的伯特来说,瑞典词都是离群词。因此,即使一个英国的BERT可以在瑞典语料库上做一些工作,如果可以的话,瑞典的BERT也是一个明显的选择

然而,如果您面临混合语言语料库的可能性,那么您就不能应用这种方法,因为您不仅需要为所涉及的每种语言指定一个单独的BERT,还需要检测所使用的语言,包括句内级别。在这种情况下,一个可能的解决方案是使用拥抱人脸网络或任何公共翻译API将所有文本从“自动检测语言”翻译成英语。例如谷歌、Deepl、Yandex或百度

另外,如果您碰巧尝试了两种BERT'S,请在这里的评论中分享质量差异

相关问题 更多 >