Skip to content

Latest commit

 

History

History
68 lines (40 loc) · 3.71 KB

coclustering.md

File metadata and controls

68 lines (40 loc) · 3.71 KB
  • Cluster-Based Graphs for Conceiving Dialog Systems [Paper]

В это статье предлагается способ получения конечного автомата диалога из диалогового корпуса с использованием бикластеризации.

  • Вход: диалоговый корпус.
  • Выход: общий граф диалога (конечный автомат).

Польза заключается в том, что можно получить примерную архитектуру диалогового агента из корпуса. Затем на ее основе уже можно делать финальное решение.

Общий алгоритм

  1. Диалоговый корпус представляем в виде матрицы смежности двудольного графа. Первая доля - номер шага в диалоге (speech turn). Вторая доля - словарь.

bipart-graph

  1. Применяем алгоритм бикластеризации на матрице смежности (speech turn x words).

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

Подробнее про бикластеризацию:

В бикластеризации число кластеров определяется автоматически.

  1. После бикластеризации, каждому speech turn был поставлен в соответствие кластер, например:
  • speech turn 1 - cluster 1
  • speech turn 2 - cluster 1
  • speech turn 3 - cluster 4
  • ...

Надо иметь в виду, что каждому кластеру также соответствуют слова из словаря, поэтому можно не читая диалоги получить примерное название кластера.

  1. Далее в исходном корпусе каждый speech turn заменялся на соответствующий кластер. В итоге диалог будет выглядеть примерно так:
  • User: Cluster 1
  • Bot: Cluster 1
  • User: Cluster 2
  • Bot: Cluster 3

Последовательность также сохраняется, поэтому по корпусу можно построить общий граф диалога (конечный автомат). Для этого нужно сделать матрицу смежности Cluster x Cluster, где ячейка c_ij это число ответов, такое что предыдущим был cluster i, а текущий cluster j.

По получившейся матрице смежности уже можно построить граф диалога.

Пример получившегося сырого графа диалога:

raw-graph

Пример вручную доработанного графа диалога (переименованы и смерджены некоторые кластеры):

clean-graph