40 lines
1.0 KiB
Python
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()
|