R: функция Quansteda texttat_simil - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Quanteda textstat_simil для вычисления семантической связанности в текстовом корпусе.Использование этой функции объясняется здесь: https://rdrr.io/cran/quanteda/man/textstat_simil.html

Это рабочий пример, и он отлично работает:

# compute term similarities
pres_dfm <- dfm(data_corpus_inaugural, remove_punct = TRUE, remove = stopwords("english"))
(s1 <- textstat_simil(pres_dfm, c("fair", "health", "terror"), method = "cosine", margin = "features"))
head(as.matrix(s1, 10)
as.list(s1, n=8)

У меня два вопроса.

Первый вопрос : какая весовая схема применялась к частотам dfm перед вычислением косинусного сходства?Обычно в таких моделях распределения, как эта, меры сходства (например, косинус, игральные кости и т. Д.) Рассчитываются на взвешенных частотах, а не на необработанных частотах.Общие схемы взвешивания: PPMI (точечная взаимная информация, TF / IDF и т. Д.).Какая схема взвешивания была применена здесь?Можно ли использовать другую схему, если необходимо?

Второй вопрос : где я могу найти более подробную информацию о том, как опции textstat_simil были реализованы в Quanteda?А именно, textstat_simil варианты: "correlation" (default), "cosine", "jaccard", "ejaccard", "dice", "edice", "simple matching", "hamann", and "faith".В частности, я хотел бы знать, как вычисляются простое сопоставление , edice и ejaccard .

Заранее спасибо за ваши ответы.

Ура, Марина

1 Ответ

0 голосов
/ 25 апреля 2018

1) Если вы сначала не взвесите dfm, используя dfm_weight(), то значение dfm, введенное в textstat_simil(), будет необработанным. (Для косинусного сходства это дает тот же результат, что и относительные частоты членов, поскольку он основан на угле между векторами, а не на расстоянии между многомерными координатами.)

2) Исходный код для методов можно посмотреть здесь , где формулы представлены в простой форме в комментариях к конкретным функциям.

...