У меня есть Python-словарь, сохраненный как векторный файл с методом Pickle (через Bert-as-Service и предварительно обученную модель Google), например:
(ключ) Фраза: (значение) Phrase_Vector_from_Bert = woman fabric:1.3237 -2.6354 1.7458 ....
Но я не имею ни малейшего представления о сходстве фраз с векторными файлами из модели Bert-as-Service, как я это делаю с Gensim Word2Vec, поскольку последняя оснащена .shogitymethod.
Не могли бы вы дать совет, чтобы получить сходство фраз / ключевых слов или сгруппировать их с помощью моего векторного файла Python-Pickle-dictionary?
Или, может быть, есть лучшая идея для кластеризации ключевых слов?с Bert-as-Service?
Следующие коды показывают, как я получаю векторы для фраз / ключевых слов:
import Myutility
# the file Myutility includes the function save_model and load_model
import BertCommand
# the file Bertcommand includes the function to start Bert-as-service
client
WORD_PATH = 'E:/Works/testwords.txt'
WORD_FEATURE = 'E:/Works/word.google.vector'
word_vectors = {}
with open(WORD_PATH) as f:
lines = f.readlines()
for line in lines:
line = line.strip('\n')
if line:
word = line
print(line)
word_vectors[word]=None
for word in word_vectors:
try:
v = bc.encode([word])
word_vectors[word] = v
except:
pass
save_model(word_vectors,WORD_FEATURE)