我有2个文件A-B(或2个系列的文件),并希望得到 一份显示两份文件之间差异的新文件:A-B
根据不同,有几个定义,一个是: 单词列表/"概念"包括在A中,但不包括在B中。
我在考虑为A和B的每个句子使用TF IDF, 如:
from sklearn.feature_extraction.text import TfidfVectorizer
d1 = [open(f1) for f1 in text_files]
tfidf = TfidfVectorizer().fit_transform(d1)
pairwise_similarity = tfidf * tfidf.T
我不确定这是否与生成新文件C =" A-B"相关, 特别感兴趣的是"语义差异"在文件C
中答案 0 :(得分:0)
gensim使用Cosine similarity计算文档之间的相似度(详情here):
index = similarities.MatrixSimilarity(lsi[corpus]) # transform corpus to LSI space and index it
sims = index[vec_lsi] # perform a similarity query against the corpus
在上面的代码中,vec_lsi
是LSI空间中的文档A,sims
是A与corpus
中文档之间的相似数组。
根据wikipedia,你可以改变余弦相似度并计算角距离,这是一个距离度量:
distance = np.arccos(sims)/np.pi
请注意,这些余弦相似度和角距离是基于矢量的,它们的解释取决于矢量的组成。在我的例子中,向量是潜在语义索引(LSI)得分,因此角距离与语义空间中的距离有关。