Você não pode e você não. Imagine que você tem uma variável aleatória de distribuição de probabilidade Q. Mas seu amigo Bob acha que o resultado vem da distribuição de probabilidade P. Ele construiu uma codificação ideal, que minimiza o número de bits esperados que ele precisará usar para informar as resultado. Mas, como ele construiu a codificação de P e não de Q, seus códigos serão mais longos do que o necessário. A divergência KL mede quanto tempo os códigos serão.
Agora vamos dizer que ele tem uma moeda e ele quer lhe contar a sequência de resultados que ele obtém. Como cabeça e cauda são igualmente prováveis, ele fornece os dois códigos de 1 bit. 0 para cabeça, 1 para cauda. Se ele conseguir cauda, cauda, cauda, ele pode enviar 1 1 0 1. Agora, se sua moeda cair no limite, ele não poderá contar! Nenhum código que ele envia para você funcionaria. Neste ponto, a divergência de KL quebra.
Como a divergência de KL se decompõe, você terá que usar outra medida ou outra distribuição de probabilidade. O que você deve fazer realmente depende do que você deseja. Por que você está comparando distribuições de probabilidade? De onde vêm suas distribuições de probabilidade, são estimadas a partir de dados?
Você diz que suas distribuições de probabilidade vêm de documentos de linguagem natural de alguma forma e deseja comparar pares de categorias.
Primeiro, eu recomendaria uma medida de relação simétrica. Para esta aplicação, parece que A é tão semelhante a B quanto B é semelhante a A.
Você já tentou a medida de similaridade de cosseno? É bastante comum na PNL.
Se você deseja manter a KL, uma coisa que você pode fazer é estimar uma função de probabilidade de ambos os documentos e depois ver quantos bits extras você precisaria, em média, para qualquer documento. Ou seja (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2