Ruby/utils/brainmap_analysis.py

40 lines
1.0 KiB
Python

import json
import os
BRAINMAP_PATH = "data/memory/brainmap.json"
def analyze_brainmap(path=BRAINMAP_PATH):
if not os.path.exists(path):
print("No brainmap found.")
return
with open(path, "r", encoding="utf-8") as f:
brainmap = json.load(f)
total_words = len(brainmap)
total_neighbors = 0
orphan_words = 0
weak_links = 0
for word, neighbors in brainmap.items():
num_neighbors = len(neighbors)
total_neighbors += num_neighbors
if num_neighbors <= 1:
orphan_words += 1
weak_links += sum(1 for strength in neighbors.values() if strength <= 2)
avg_neighbors = total_neighbors / total_words if total_words else 0
print(f"📖 Brainmap Analysis:")
print(f"- Total Words: {total_words}")
print(f"- Average Neighbors per Word: {avg_neighbors:.2f}")
print(f"- Orphan Words (<=1 neighbor): {orphan_words}")
print(f"- Weak Connections (strength <=2): {weak_links}")
if __name__ == "__main__":
analyze_brainmap()