(
papers: List[Dict[str, Any]],
*,
fallback_vector: Optional[List[float]] = None,
)
| 680 | |
| 681 | |
| 682 | def _average_vector( |
| 683 | papers: List[Dict[str, Any]], |
| 684 | *, |
| 685 | fallback_vector: Optional[List[float]] = None, |
| 686 | ) -> List[float]: |
| 687 | target_dim = _infer_vector_dimension(fallback_vector or [], *[paper.get("embedding", []) for paper in papers]) |
| 688 | embeddings = _collect_embeddings(papers, target_dim) |
| 689 | if not embeddings: |
| 690 | return _normalize_vector(_resize_vector(fallback_vector or [], target_dim)) |
| 691 | return _normalize_vector(np.mean(embeddings, axis=0).tolist()) |
| 692 | |
| 693 | |
| 694 | def _topic_distribution(papers: List[Dict[str, Any]]) -> Dict[str, float]: |
no test coverage detected