Расслабленное расстояние Word Mover в R - PullRequest
0 голосов
/ 06 декабря 2018

Я использую расстояние Relaxed Word Mover в пакете text2vec, чтобы вычислить расстояние между документами, чтобы определить наиболее похожий документ для каждого целевого документа.Векторы слов компилируются с использованием FastText, доступного в пакете gensim в Python.Длина документов может варьироваться от одного слова до более 50 слов.Некоторые документы дублируются в корпусе.Я предполагаю, что расстояние между этими дубликатами должно быть очень коротким, а значения для разных пар одних и тех же документов должны быть одинаковыми.Тем не менее, я наблюдаю, что расстояние между этими идентичными парами может варьироваться от 0 до более 1, и некоторые другие менее значимые документы даже заключаются в том, что они ближе, чем эти идентичные пары.Используемая мной команда выглядит следующим образом:

library(text2vec)
tokens = word_tokenizer(tolower(data$item))

v = create_vocabulary(itoken(tokens))

v = prune_vocabulary(v, term_count_min = 12, term_count_max = 1000000)
it = itoken(tokens)

# Use our filtered vocabulary
vectorizer = vocab_vectorizer(v)

dtm = create_dtm(it, vectorizer)
tcm = create_tcm(it, vectorizer, skip_grams_window = 50)

#word vectors from FastText
wv_fasttext<-as.data.frame(wv_fasttext)
rownames(wv_fasttext) <- wv_fasttext[, 'na']

wv_fasttext$name<- NULL
wv_fasttext<- data.matrix(wv_fasttext, rownames.force = TRUE)

rwmd_model = RWMD$new(wv)

rwmd_distance = dist2(dtm[1:1000,], dtm[1:1000,], method = rwmd_model, norm 
= 'none')

Есть ли проблемы с вышеуказанной моделью?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...