我有一个名为 iir 的文件夹,它有 500 个 txt 文件。我有另一个名为 video 的 json 文件(具有字典结构)。
我希望计算:对于 500 个 txt 文件中的每一个,找到与所有视频的余弦相似度。在此之后对每个 txt 文件的视频进行排名,并将该排名列表保存在另一个文件中。
到目前为止,我能够阅读所有的 txt 文件。这是代码:
import gensim
import glob
# go to directory
all_files = glob.glob("ExtratingConceptFromVideoScripts/iir/*.txt")
# go to files
indata = tuple()
for filename in all_files:
with open(filename,'r')as file:
for line in file.readlines():
d = line.strip().split( ',' )
indata = indata + (d[0], )
print(indata[0]) # print the contents of first file
这是输出:
Online edition (c)2009 Cambridge UP An Introduction to Information Retrieval Draft of April 1
现在,我阅读了 json 文件的内容:
import gensim
import glob
# go to directory
all_files = glob.glob('ExtratingConceptFromVideoScripts/data/corpus.json')
# go to files
vid = tuple()
for filename in all_files:
with open(filename,'r')as file:
for line in file.readlines():
d = line.strip().split( ',' )
vid = vid + (d[:8], )
print(vid)
输出:
(['{"0": {"metadata": {"id": "fQ3JoXLXxc4"', ' "title": "| Board Questions | 12 Maths | Equivalence Class | Equivalence Class Board Questions |"', ' "tags": ["Board Questions"', ' "12 maths"', ' "12 maths Board Questions"', ' "Previous Year Board Questions"', ' "Maths Board Questions"', ' "Board questions based on Equivalence Classes"'],)
现在,我的问题是:余弦相似度矩阵在一个元组中找到一组文档之间的余弦相似度(即,它找到了 doc iir 中所有文件之间的 cos sim)。如何使用 vid 中的每个文档计算每个 iir 文档的 cos sim。
我试图将 vid json 文件转换为元组,然后计算 iir 和 vid 之间的 cos sim,但它给出了错误。
谁能帮我解释如何在不同格式的文件之间找到 cos sim,如何循环文件和计算 cos sim,如何根据最高 cos sim 对文档进行排名。