在python中使用matplotlib进行相似性度量的绘图圆中的错误 - python

我正在研究使用tf-idf度量查找两个句子/文档之间的相似性的项目。

现在我的问题是如何以图形/可视化格式显示相似性。类似于维恩图(Venn diagram),交点值成为相似性度量,或者matplotlib或任何python库中可用的任何其他图。

我尝试了以下代码:

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity  

documents = (
"The sky is blue",
"The sun is bright"

)
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
print tfidf_matrix
cosine = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix)
print cosine
import matplotlib.pyplot as plt
r=25
d1 = 2 * r * (1 - cosine[0][0])
circle1=plt.Circle((0,0),d1/2,color='r')
d2 = 2 * r * (1 - cosine[0][1])
circle2=plt.Circle((r,0),d2/2,color="b")
fig = plt.gcf()
fig.gca().add_artist(circle1)
fig.gca().add_artist(circle2)
fig.savefig('plotcircles.png')
plt.show()

但是我得到的情节是空的。有人可以解释什么是错误的。

绘图圆源:plot a circle

python大神给出的解决方案

地块不是空的,但我想,您的圈子很大!

我没有安装sklearn,因此我从您print cosine开始:

## set constants
r = 1
d = 2 * r * (1 - cosine[0][1])

## draw circles
circle1=plt.Circle((0, 0), r, alpha=.5)
circle2=plt.Circle((d, 0), r, alpha=.5)
## set axis limits
plt.ylim([-1.1, 1.1])
plt.xlim([-1.1, 1.1 + d])
fig = plt.gcf()
fig.gca().add_artist(circle1)
fig.gca().add_artist(circle2)
## hide axes if you like
# fig.gca().get_xaxis().set_visible(False)
# fig.gca().get_yaxis().set_visible(False)
fig.savefig('venn_diagramm.png')

这也回答了您的另一个问题,我也在其中添加了这段代码!