From f5c000f309ed323b473f046f2e7e0db77d06151d Mon Sep 17 00:00:00 2001 From: John Dagdelen Date: Wed, 14 Sep 2022 17:09:11 -0700 Subject: [PATCH] Fixing bug to allow smaller number of topics. When number of topics is less than 30 (default perplexity for TSNE) an error is thrown. This reduces perplexity to be always smaller than the number of topics. --- pyLDAvis/_prepare.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyLDAvis/_prepare.py b/pyLDAvis/_prepare.py index d50c1881..30bee0a0 100644 --- a/pyLDAvis/_prepare.py +++ b/pyLDAvis/_prepare.py @@ -163,7 +163,7 @@ def js_TSNE(distributions, **kwargs): tsne : array, shape (`n_dists`, 2) """ dist_matrix = squareform(pdist(distributions, metric=_jensen_shannon)) - model = TSNE(n_components=2, random_state=0, metric='precomputed', **kwargs) + model = TSNE(n_components=2, random_state=0, metric='precomputed', perplexity=min(len(dist_matrix)-1, 30), **kwargs) return model.fit_transform(dist_matrix) @@ -468,4 +468,4 @@ def to_dict(self): 'topic.order': self.topic_order} def to_json(self): - return json.dumps(self.to_dict(), cls=NumPyEncoder) \ No newline at end of file + return json.dumps(self.to_dict(), cls=NumPyEncoder)