Введение
Матрица "документ-термин" – это математическая матрица, описывающая частоту встречаемости терминов в каждом документе коллекции. В матрице "документ-термин" строки соответствуют документам в коллекции, а столбцы – терминам. Эта матрица является частным случаем матрицы признаков документа, где "признаки" могут относиться к другим свойствам документа, помимо терминов. Также часто встречается транспонированная матрица, или матрица "термин-документ", где документы являются столбцами, а термины – строками. Они полезны в области обработки естественного языка и вычислительного анализа текста. Значения в ячейках матрицы обычно представляют собой абсолютное количество вхождений данного термина, однако существуют различные схемы для взвешивания этих значений, такие как нормализация по строкам (то есть относительная частота/пропорции) и TF-IDF. Термины обычно представляют собой отдельные слова, разделенные пробелами или знаками препинания с обеих сторон (также известные как униграммы). В этом случае такое представление также называют "мешком слов", поскольку сохраняется количество отдельных слов, но не порядок их следования в документе.
История концепции
Термин «матрица «документ-термин»» возник в первые годы компьютеризации текста. Растущие возможности хранения документов создали проблему эффективного поиска нужного документа. Если ранее классификация и индексация выполнялись вручную, то исследователи стали изучать возможность автоматизации этого процесса с использованием информации о частоте слов. Одной из первых опубликованных матриц «документ-термин» была статья Гарольда Борко 1962 года «Построение эмпирически обоснованной математически выведенной классификационной системы» (страница 282, см. также его статью 1965 года). Борко ссылается на две компьютерные программы: «FEAT» (Frequency of Every Allowable Term – частота каждого допустимого термина), написанную Джоном К. Олни из Корпорации системной разработки, и программу Descriptor Word Index, написанную Эйлин Стоун, также из Корпорации системной разработки. После выбора документов, составляющих экспериментальную библиотеку, следующим шагом была перфорация всего текста для последующей компьютерной обработки. Для этого анализа использовалась программа FEAT (Frequency of Every Allowable Term). Она была написана Джоном К. Олни из Корпорации системной разработки и предназначена для подсчета частоты отдельных слов и пар слов. Результатом работы программы являлся алфавитный список всех типов слов, отсортированный по частоте их появления в тексте. Определенные служебные слова, такие как «и», «the», «at», «a» и т. д., помещались в таблицу «списка запрещенных слов», а частота этих слов регистрировалась в отдельном списке. Специальная компьютерная программа, названная Descriptor Word Index Program, была разработана для предоставления этой информации и подготовки матрицы «документ-термин» в формате, подходящем для ввода в программу факторного анализа. Программа Descriptor Word Index была подготовлена Эйлин Стоун из Корпорации системной разработки. Вскоре после этого, в 1963 году, Джерард Солтон опубликовал работу «Некоторые иерархические модели для автоматического поиска документов», которая также содержала визуальное представление матрицы «документ-термин». В то время Солтон работал в Гарвардском университете, а его исследования финансировались Исследовательскими лабораториями ВВС Кембриджа и компанией Sylvania Electric Products, Inc. В этой статье Солтон представляет матрицу «документ-термин» в сравнении с матрицей контекста терминов, используемой для измерения сходства между словами: <blockquote>Если вместо ассоциаций слов требуется генерировать ассоциации документов или кластеры документов, можно использовать те же процедуры с небольшими изменениями. Вместо того чтобы начинать с матрицы «слово-предложение» C, теперь целесообразно построить матрицу «слово-документ» F, в которой перечисляется частота появления слова Wi в документе Dj. Сходство документов теперь можно вычислить, как и раньше, путем сравнения пар строк и получения коэффициентов сходства на основе частоты совместного появления содержательных слов в данном документе. Эта процедура создает матрицу сходства документов, которая, в свою очередь, может быть использована для генерации кластеров документов. Ланкастер приписывает Борко создание матрицы «документ-термин»: Гарольд Борко из Корпорации системной разработки продвинул эту операцию немного дальше. Значительная группа ключевых слов выбирается из словаря экспериментальной коллекции. Они располагаются в матрице «документ-термин», чтобы показать частоту появления каждого термина в каждом документе. Затем вычисляется коэффициент корреляции для каждой пары слов на основе их совместного появления в наборе документов. Полученная матрица терминов затем подвергается факторному анализу, и выделяется ряд факторов. Эти факторы, при интерпретации и наименовании на основе терминов с высокой нагрузкой, которые появляются в каждом из факторов, становятся классами эмпирической классификации. Термины с высокой нагрузкой в каждом факторе являются ключевыми словами или предикторами категорий.</blockquote>
Выбор терминов
С точки зрения матрицы, каждая строка представляет собой документ. В векторной семантической модели, которая обычно используется для вычисления матрицы "документ-термин", цель состоит в том, чтобы представить тему документа посредством частоты семантически значимых терминов. Термины являются семантическими единицами документов. Часто предполагается, что для индоевропейских языков наиболее значимыми категориями являются существительные, глаголы и прилагательные, и слова из этих категорий следует сохранять как термины. Добавление коллокаций в качестве терминов повышает качество векторов, особенно при вычислении сходства между документами.
Улучшение результатов поиска
Латентный семантический анализ (LSA, выполняющий сингулярное разложение матрицы "документ-термин") может улучшить результаты поиска, устраняя неоднозначность многозначных слов и находя синонимы запроса. Однако поиск в высокоразмерном непрерывном пространстве значительно медленнее, чем поиск в стандартной префиксной структуре данных, используемой в поисковых системах.
Поиск тем
Многовариантный анализ матрицы «документ-термин» может выявить темы или основные направления содержания корпуса. В частности, могут быть использованы латентный семантический анализ и кластеризация данных, а в последнее время оказалось, что вероятностный латентный семантический анализ, с его обобщением – распределением Дирихле, а также неотрицательная матричная факторизация, эффективно решают эту задачу.
Реализация
Gensim: фреймворк Python с открытым исходным кодом для векторного моделирования. Включает в себя алгоритмы, эффективно использующие память, для создания матриц "терм-документ" из текста, а также стандартные преобразования (tf-idf, LSA, LDA).