Python 如何运行spaCy';s的句子相似性函数到一个字符串数组以获得一个分数数组?

Python 如何运行spaCy';s的句子相似性函数到一个字符串数组以获得一个分数数组?,python,nlp,vectorization,similarity,spacy,Python,Nlp,Vectorization,Similarity,Spacy,我必须将一个spacy文档与一个spacy文档列表进行比较,并希望得到一个相似性分数列表作为输出。当然,我可以使用for循环来实现这一点,但我正在寻找一些优化的解决方案,比如numpy提供的广播等 我有一份文件与一份文件清单相对应: oneDoc = 'Hello, I want to be compared with a list of documents' listDocs = ["I'm the first one", "I'm the second one"] spaCy为我们提供了一

我必须将一个spacy文档与一个spacy文档列表进行比较,并希望得到一个相似性分数列表作为输出。当然,我可以使用for循环来实现这一点,但我正在寻找一些优化的解决方案,比如numpy提供的广播等

我有一份文件与一份文件清单相对应:

oneDoc = 'Hello, I want to be compared with a list of documents'
listDocs = ["I'm the first one", "I'm the second one"]
spaCy为我们提供了一个文档相似性函数:

oneDoc = nlp(oneDoc)
listDocs = nlp(listDocs)
similarity_score = np.zeros(len(listDocs))
for i, doc in enumerate(listDocs):
    similarity_score[i] = oneDoc.similarity(doc)
由于将一个文档与两个文档的列表进行比较,因此相似性分数如下所示:
[0.7,0.8]


我正在寻找一种方法来避免这种循环。换句话说,我想将此函数矢量化。

使用
nlp.pipe
处理所有文本文档。从每个文档中获取嵌入
.vector
。应用以余弦为度量的numpy成对距离函数创建矩阵