Справочная информация:
Я знал желаемые тематические категории, примерно 300 из них. К ним относятся подкатегории (например, биохимия имеет подкатегории, такие как полимеразная цепная реакция, молекулярная биология и т. Д. С ~ 10 субкатами на кошку). У меня нет данных для документов, помеченных темами (поэтому я вынужден использовать неконтролируемый подход). Моя цель - в основном классифицировать документы по их подкатегориям. Я также предпочитаю классифицировать документ на 5 подкатегорий, хотя люди в конечном итоге выберут, какие из этих 5 являются идеальными (возможно, множественными). В настоящее время я рассматриваю это как проблему классификации в один слой, поскольку это кажется наиболее простым при неконтролируемом подходе, хотя я мог бы разработать многоуровневые модели, если бы у меня было время.
Я обнаружил, что одним из наиболее эффективных способов классификации с моим набором данных было создание набора «тематических» векторов word2vec, которые усредняют ключевые термины для данной подтемы и находят ближайшую k- «тему» векторы к усредненному вектору word2vec моих документов. Простейший пример: для моей темы / категории молекулярной биологии подкатегории биохимии я бы усреднил векторы для биохимии и молекулярной биологии. Затем я взял бы какой-нибудь документ, превратил его в вектор и посмотрел, к каким векторам тем он тоже ближе всего.
Проблема:
Я пытаюсь найти лучшие слова для усреднения для данного тематического вектора. В настоящее время я использую оценки TFIDF и / или вывод тематической модели guidedLDA для определения ключевых слов для каждой категории. Однако у них есть проблема, заключающаяся в том, что в подкатегориях есть повторяющиеся слова (то есть слово «клетка» не часто появляется в моем общем корпусе, поскольку оно включает в себя очень отдельные темы, такие как электротехника, но обнаруживается в 80% биохимических категорий. - настолько низкий показатель IDF, но высокий среди моей подкатегории, поэтому с его высоким показателем он идентифицируется как ключевое слово). По сути, мне интересно, есть ли хороший способ определить ключевые слова, которые не слишком сильно перекрываются; мое совпадение в основном среди подкатегорий.
Исследования до сих пор / возможные ответы?
Я заметил, что существуют немного разные методы вычисления векторов tfidf, поэтому я подумал, что, возможно, было бы неплохо изменить tfidf так, чтобы он имел больший порог (одно и то же слово в 8/10 подкатегориях не идеально, но в 3 / 10 может быть в порядке).
Я также рассматриваю возможность превращения моей модели в два уровня - категорию и подкатегорию, где я определяю новые ключевые слова для подкатегории, просто предполагая, что моя первоначальная категоризация является правильной (я до сих пор не занимался этим, потому что у меня нет контролируемых данных, поэтому очень трудно понять, действительно ли документы подкатегории, из которых я извлеку ключевые слова, из этой подкатегории / будут генерировать хорошие слова).