Автоматическое связывание категорий друг с другом при категоризации текста

Я работал над проектом по извлечению большого количества коротких текстов и распределил их по категориям на основе существующего большого списка названий категорий. Для этого мне пришлось выяснить, как сначала создать хороший текстовый корпус из данных, чтобы иметь справочные документы для категоризации, а затем повысить качество категоризации до приемлемого уровня. С этой частью я закончил (к счастью, классификация текста - это то, что многие люди провели много исследований).

Теперь моя следующая проблема, я пытаюсь найти хороший способ связать различные категории друг с другом в вычислительном отношении. То есть выяснить, как распознать, что "автомобили" и "шевроле" связаны между собой. До сих пор я пытался использовать методы категоризации N-Gram, описанные, среди прочего, Cavnar и Trenkle для сравнения различных справочных документов, которые я создал для каждой категории. К сожалению, мне кажется, что лучшее, что я смог извлечь из этого метода, это примерно 50-55% правильных отношений между категориями, и это самые лучшие отношения, в целом это около 30-35%, что ужасно мало.

Я также попробовал несколько других подходов, но мне не удалось получить релевантные ссылки на более чем 40% (примером несоответствующего отношения может быть категория "грузовики", тесно связанная с категорией "макияж"). "или категория" подгузники "пока слабо (или не совсем) связана с" шевроле ").

Теперь я попытался найти лучшие методы для этого, но мне кажется, что я не могу найти ни одного (хотя я знаю, что другие добились большего успеха, чем я). У кого-нибудь есть опыт с этим? Какие-нибудь подсказки относительно полезных методов для создания отношений между категориями? Прямо сейчас методы, которые я попробовал, либо не дают достаточно отношений вообще, либо содержат слишком высокий процент нежелательных отношений.

1 ответ

Очевидно, что лучший способ подобного соответствия сильно зависит от вашей таксономии, характера ваших "справочных документов" и ожидаемых отношений, которые вы хотели бы создать.

Однако на основании предоставленной информации я бы предложил следующее:

  1. Начните с построения словесной (а не буквенной) униграммы или биграммы для каждой из ваших категорий на основе справочных документов. Если их мало для каждой категории (кажется, что у вас может быть только одна), вы можете использовать подход под наблюдением и добавить также автоматически классифицированные документы для каждой категории. Относительно простым инструментом для построения модели может быть инструментарий CMU SLM.
  2. Рассчитайте взаимную информацию (infogain) каждого термина или фразы в вашей модели по отношению к другим категориям. если ваши категории похожи, вам может потребоваться использовать только соседние категории, чтобы получить значимый результат. Этот шаг даст лучшие разделительные термины более высокие оценки.
  3. Соотнесите категории друг с другом на основе самых популярных терминов или фраз. Это можно сделать либо с помощью евклидова или косинусного расстояния между моделями категорий, либо с помощью несколько более сложных методов, таких как алгоритмы на основе графов или иерархическая кластеризация.
Другие вопросы по тегам