Я не нашел много публичных упоминаний о всплесках, связанных с анализом текста.Я встречал Моделирование статистических свойств письменного текста .
Если я правильно читаю формулу в разделе 2.6 из предоставленной вами статьи, то это относительная пропорция слов, деленная на процент документов, в которых эти слова появляются.
Я надеялся, что использование функции dfm_tfidf
приведет меня туда.Но часть функции scheme_df
не имеет опции пропорциональной частоты документа.
Но мы можем использовать части существующих функций Quanteda, чтобы собрать все вместе.
Предположим, что у нас есть документМатрица (dfm
) называется "docfm".Тогда шаги будут такими:
, относительная пропорция членов может быть вычислена как dfm_weight(docfm, scheme = "prop")
Получение пропорциональной частоты документа равно docfreq(docfm) / ndocs(docfm)
.
Теперь некоторые вычисления с матричным делением.Либо apply
, либо sweep
будет работать.apply
вернет матрицу и ее нужно транспонировать, развертка вернет dgeMatrix.В обоих случаях вы можете превратить их обратно в dmf
с as.dfm
.К сожалению, оба являются плотными матрицами, поэтому вам, возможно, придется принять это во внимание.Все вместе:
Использование apply
:
t(apply(X = dfm_weight(docfm, scheme = "prop"), 1, "/", (docfreq(docfm) / ndoc(docfm))))
Использование sweep
:
sweep(dfm_weight(docfm, scheme = "prop"), MARGIN = 2, STATS = docfreq(docfm) / ndoc(docfm), FUN = "/")