Как измерить, насколько документ основан на предопределенных лингвистических c категориях? - PullRequest
3 голосов
/ 27 мая 2020

У меня есть 3 категории слов, которые соответствуют разным типам психологических побуждений (потребность в силе, потребность в достижении и потребность в принадлежности). В настоящее время для каждого документа в моей выборке (n = 100000) я использую инструмент для подсчета количества слов в каждой категории и вычисляю оценку доли для каждой категории путем преобразования количества сырых слов в процентное соотношение на основе общего количества слов. используется в тексте.

                 n-power   n-achieve  n-affiliation
Document1        0.010      0.025      0.100  
Document2        0.045      0.010      0.050
:                :          :          :
:                :          :          :
Document100000   0.100      0.020      0.010

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

1 Ответ

2 голосов
/ 27 мая 2020

По сути, у вас проблема с кластеризацией. В настоящее время вы сделали представление каждого из ваших документов с 3 числами, давайте назовем их вектором (по сути, вы придумали некоторые вложения). Чтобы сделать то, что вы хотите, вы можете 1) Рассчитать средний вектор для всего набора. В основном сложите все числа в каждом столбце и разделите на количество документов. 2) Выберите метрику c, которая вам нравится, которая будет отражать выравнивание векторов вашего документа со средним значением. Вы можете просто использовать (Евклидов) sklearn.metrics.pairwise.euclidean_distances или косинус sklearn.metrics.pairwise.cosine_distances X будет вашим списком векторов документов, а Y будет единственным средним вектор в списке. Это хорошее место для начала.

Если бы я сделал это, я бы проигнорировал средний векторный подход, поскольку вы фактически имеете дело с проблемой кластеризации. Поэтому я бы использовал KMeans подробнее здесь руководство

Надеюсь, это поможет!

...