根据您提供的代码和错误信息,问题可能出在bertopic_model.hierarchical_topics(texts)
这一行。这个错误可能是由于数据集的某些特殊情况导致的。为了解决这个问题,您可以尝试以下方法:
检查您的数据集是否包含空值或非字符串类型的文本。如果有,请确保在使用
sentence_model.encode()
之前将它们转换为字符串类型。您可以尝试使用不同的距离度量方法,例如"euclidean"或"cosine",看看是否仍然出现错误。
您可以尝试使用不同的聚类算法,例如K-means或DBSCAN,看看是否仍然出现错误。
您可以尝试调整UMAP模型的参数,例如
n_neighbors
、n_components
和min_dist
,以找到适合您数据集的参数组合。您可以尝试使用其他主题建模库,例如Gensim或LDA,看看是否仍然出现错误。
如果以上方法都无法解决问题,建议您提供更多关于数据集的信息,以便我们能够更好地帮助您解决问题。
2条答案
按热度按时间h22fl7wq1#
确实可能会发生,生成的距离矩阵包含负值。有一个thread here,其中有一些解可以尝试。
55ooxyrt2#
感谢您!我按照您提到的方法进行了操作:
使用上述方法,我得到了2个负值(总共307k)。
如果我使用您推荐的距离函数,分层主题似乎运行良好。
distance_function_abs = lambda x: np.abs(1 - cosine_similarity(x))
非常感谢!