Кластеризация документов с использованием BERT и WMD - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу кластеризовать текстовые документы на основе BERT-встраивания их предложений с использованием ОМУ в качестве меры сходства. У меня нет большого опыта в НЛП, поэтому любая помощь приветствуется.

Теперь я могу вычислить вложение предложений следующим образом:

from bert_embedding import BertEmbedding

bert_abstract = 'Some Document'
sentences = bert_abstract.split('\n')
bert_embedding = BertEmbeddings(model='bert_24_1024_16', dataset_name='book_corpus_wiki_en_cased')
result = bert_embedding(sentences)
#average over sentences for document embedding

Что я хочу сделать дальше, так этоиспользовать ОМУ в качестве меры расстояния для алгоритма кластеризации, что-то вроде этого.

from sklearn.metrics import pairwise_distances
from sklearn.cluster import SpectralClustering
from wmd import WMD

#calculate the pairwise distance between each document using their respective bert embedding and wmd
distance_matrix = pairwise_distance(documents, WMD())
similarity = -distance_matrix
#use the matrix for a spcectral clustering algorithm
sc = SpectralClustering(affinity='precomputed')

К сожалению, я не знаю, как подать вложения в ОМУ и рассчитать его матрицу расстояний. Я также посмотрел gensim, где что-то похожее достижимо, используя word2vec, но не для BERT.

...