0

我有 2 个文档 AB(或 2 个系列文档),并且想获得一个显示两个文档之间差异的新文档:AB

不同的是,有几个定义,一个是:单词列表/“概念”包含在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="AB" 相关,特别是对文档 C 中的“语义差异”感兴趣

4

1 回答 1

0

gensim 使用余弦相似度计算文档之间的相似度(详见此处):

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) 分数,因此角距离与语义空间中的距离有关。

于 2016-06-08T14:08:40.817 回答