Я выполняю косинусное сходство в 2 документах, а затем пытаюсь получить формат таблицы для вывода, в котором у нас есть один исходный документ, а затем целевой документ и его показатель сходства.Может кто-нибудь помочь мне сделать правильный формат стола, используя панд?Я новичок в машинном обучении.
def calculate_similarity(self, withdigits_source_rules, target_rules=[], threshold=0.7):
"""Calculates & returns similarity scores between given source rules & all
the target rules"""
if isinstance(target_rules, str):
target_rules = [target_rules]
source_vec = self.vectorize(withdigits_source_rules)
results = []
for rule in target_rules:
target_vec = self.vectorize(rule)
sim_score = self._cosine_sim(source_vec, target_vec)
if sim_score > threshold:
results.append({
'Score':sim_score,
'Target doc':rule
})
# Sort results by score in desc order
results.sort(key=lambda k : k['Score'] , reverse=True)
return results
for rule in source_rules:
sim_scores= ds.calculate_similarity(rule, target_rules)
d={'Source doc':rule,'Result':sim_scores}
df = pd.DataFrame(data=d)
print(df)
Вывод в этом формате
Source doc Result
0 Cars difference {'Cosine Sim Score': 1.0, 'Target Rule': 'Cars difference'}
Source doc Result
0 Context {'Cosine Sim Score': 1.0, 'Target Rule': 'Context'}
1 Context {'Cosine Sim Score': 1.0, 'Target Rule': 'Context 1.1'}
2 Context {'Cosine Sim Score': 1.0, 'Target Rule': 'Content'}
3 Context {'Cosine Sim Score': 1.0, 'Target Rule': 'Contents'}
Я хочу, чтобы вывод был в табличном формате с использованием панд
Source doc | Target doc | score
0 Cars difference | Cars difference | 1.000000
0 Context | Context | 1.000
1 | Context 1.1 | 1.000
2 | Content | 1.000
3 | Contents | 1.000