[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-eliorc--node2vec":3,"tool-eliorc--node2vec":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":93,"env_deps":94,"category_tags":101,"github_topics":102,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":106,"updated_at":107,"faqs":108,"releases":138},2124,"eliorc\u002Fnode2vec","node2vec","Implementation of the node2vec algorithm.","node2vec 是一个基于 Python 实现的开源工具，专为网络图数据设计，能够将复杂的图结构转化为计算机易于处理的低维向量。它核心解决了传统方法难以有效提取图数据中节点拓扑特征的问题，通过模拟“随机游走”策略，让彼此在结构中相似的节点在向量空间中也彼此靠近，从而保留网络的局部与全局结构信息。\n\n这款工具特别适合数据科学家、机器学习研究人员以及需要处理社交网络、生物信息网络或推荐系统的开发者使用。其独特亮点在于引入了两个可调节参数（p 和 q），让用户能灵活控制游走过程是更倾向于探索邻近节点还是深入远处结构，从而在广度优先和深度优先搜索之间找到最佳平衡。此外，node2vec 不仅支持节点嵌入，还提供了多种边嵌入方法（如哈达玛积），并兼容大图的并行计算与内存优化。配合简洁的 API 接口，用户只需几行代码即可完成从图构建、向量训练到相似度查询的全流程，是进行图表示学习的高效利器。","# Node2Vec\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Feliorc_node2vec_readme_4c816aaf47e8.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fnode2vec)\n\nPython3 implementation of the node2vec algorithm Aditya Grover, Jure Leskovec and Vid Kocijan.\n[node2vec: Scalable Feature Learning for Networks. A. Grover, J. Leskovec. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2016.](https:\u002F\u002Fsnap.stanford.edu\u002Fnode2vec\u002F)\n\n# Maintenance\n\n### I no longer have time to maintain this, if someone wants to pick the baton let me know\n\n## Installation\n\n`pip install node2vec`\n\n## Usage\n```python\nimport networkx as nx\nfrom node2vec import Node2Vec\n\n# Create a graph\ngraph = nx.fast_gnp_random_graph(n=100, p=0.5)\n\n# Precompute probabilities and generate walks - **ON WINDOWS ONLY WORKS WITH workers=1**\nnode2vec = Node2Vec(graph, dimensions=64, walk_length=30, num_walks=200, workers=4)  # Use temp_folder for big graphs\n\n# Embed nodes\nmodel = node2vec.fit(window=10, min_count=1, batch_words=4)  # Any keywords acceptable by gensim.Word2Vec can be passed, `dimensions` and `workers` are automatically passed (from the Node2Vec constructor)\n\n# Look for most similar nodes\nmodel.wv.most_similar('2')  # Output node names are always strings\n\n# Save embeddings for later use\nmodel.wv.save_word2vec_format(EMBEDDING_FILENAME)\n\n# Save model for later use\nmodel.save(EMBEDDING_MODEL_FILENAME)\n\n# Embed edges using Hadamard method\nfrom node2vec.edges import HadamardEmbedder\n\nedges_embs = HadamardEmbedder(keyed_vectors=model.wv)\n\n# Look for embeddings on the fly - here we pass normal tuples\nedges_embs[('1', '2')]\n''' OUTPUT\narray([ 5.75068220e-03, -1.10937878e-02,  3.76693785e-01,  2.69105062e-02,\n       ... ... ....\n       ..................................................................],\n      dtype=float32)\n'''\n\n# Get all edges in a separate KeyedVectors instance - use with caution could be huge for big networks\nedges_kv = edges_embs.as_keyed_vectors()\n\n# Look for most similar edges - this time tuples must be sorted and as str\nedges_kv.most_similar(str(('1', '2')))\n\n# Save embeddings for later use\nedges_kv.save_word2vec_format(EDGES_EMBEDDING_FILENAME)\n\n```\n\n### Parameters\n\n#### `node2vec.Node2vec`\n\n- `Node2Vec` constructor:\n    1. `graph`: The first positional argument has to be a networkx graph. Node names must be all integers or all strings. On the output model they will always be strings.\n    2. `dimensions`: Embedding dimensions (default: 128)\n    3. `walk_length`: Number of nodes in each walk (default: 80)\n    4. `num_walks`: Number of walks per node (default: 10)\n    5. `p`: Return hyper parameter (default: 1)\n    6. `q`: Input parameter (default: 1)\n    7. `weight_key`: On weighted graphs, this is the key for the weight attribute (default: 'weight')\n    8. `workers`: Number of workers for parallel execution (default: 1)\n    9. `sampling_strategy`: Node specific sampling strategies, supports setting node specific 'q', 'p', 'num_walks' and 'walk_length'.\n        Use these keys exactly. If not set, will use the global ones which were passed on the object initialization`\n    10. `quiet`: Boolean controlling the verbosity. (default: False)\n    11. `temp_folder`: String path pointing to folder to save a shared memory copy of the graph - Supply when working on graphs that are too big to fit in memory during algorithm execution.\n    12. `seed`: Seed for the random number generator (default: None). Deterministic results can be obtained if seed is set and `workers=1`.\n\n- `Node2Vec.fit` method:\n    Accepts any key word argument acceptable by gensim.Word2Vec\n\n#### `node2vec.EdgeEmbedder`\n\n`EdgeEmbedder` is an abstract class which all the concrete edge embeddings class inherit from.\nThe classes are `AverageEmbedder`, `HadamardEmbedder`, `WeightedL1Embedder` and `WeightedL2Embedder` which their practical definition could be found in the [paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.00653.pdf) on table 1\nNotice that edge embeddings are defined for any pair of nodes, connected or not and even node with itself.\n\n- Constructor:\n    1. `keyed_vectors`: A gensim.models.KeyedVectors instance containing the node embeddings\n    2. `quiet`: Boolean controlling the verbosity. (default: False)\n\n- `EdgeEmbedder.__getitem__(item)` method, better known as `EdgeEmbedder[item]`:\n    1. `item` - A tuple consisting of 2 nodes from the `keyed_vectors` passed in the constructor. Will return the embedding of the edge.\n\n- `EdgeEmbedder.as_keyed_vectors` method: Returns a `gensim.models.KeyedVectors` instance with all possible node pairs in a *sorted* manner as string.\n  For example, for nodes ['1', '2', '3'] we will have as keys \"('1', '1')\", \"('1', '2')\", \"('1', '3')\", \"('2', '2')\", \"('2', '3')\" and \"('3', '3')\".\n\n## Caveats\n- Node names in the input graph must be all strings, or all ints\n- Parallel execution not working on Windows (`joblib` known issue). To run non-parallel on Windows pass `workers=1` on the `Node2Vec`'s constructor\n\n## TODO\n- [x] Parallel implementation for walk generation\n- [ ] Parallel implementation for probability precomputation\n","# Node2Vec\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Feliorc_node2vec_readme_4c816aaf47e8.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fnode2vec)\n\n由 Aditya Grover、Jure Leskovec 和 Vid Kocijan 实现的 Python3 版本的 node2vec 算法。\n[node2vec: 面向网络的可扩展特征学习。A. Grover, J. Leskovec. ACM SIGKDD 国际知识发现与数据挖掘会议 (KDD), 2016。](https:\u002F\u002Fsnap.stanford.edu\u002Fnode2vec\u002F)\n\n# 维护\n\n### 我现在没有时间继续维护这个项目，如果有人愿意接手，请告诉我。\n\n## 安装\n\n`pip install node2vec`\n\n## 使用方法\n```python\nimport networkx as nx\nfrom node2vec import Node2Vec\n\n# 创建一个图\ngraph = nx.fast_gnp_random_graph(n=100, p=0.5)\n\n# 预计算概率并生成随机游走路径 - **在 Windows 上仅支持 workers=1**\nnode2vec = Node2Vec(graph, dimensions=64, walk_length=30, num_walks=200, workers=4)  # 对于大型图，可以使用 temp_folder 参数\n\n# 嵌入节点\nmodel = node2vec.fit(window=10, min_count=1, batch_words=4)  # 可以传递任何 gensim.Word2Vec 接受的参数，`dimensions` 和 `workers` 会自动从 Node2Vec 构造函数中传入\n\n# 查找最相似的节点\nmodel.wv.most_similar('2')  # 输出的节点名称始终是字符串\n\n# 保存嵌入以便后续使用\nmodel.wv.save_word2vec_format(EMBEDDING_FILENAME)\n\n# 保存模型以便后续使用\nmodel.save(EMBEDDING_MODEL_FILENAME)\n\n# 使用 Hadamard 方法嵌入边\nfrom node2vec.edges import HadamardEmbedder\n\nedges_embs = HadamardEmbedder(keyed_vectors=model.wv)\n\n# 动态查询边的嵌入 - 这里传入普通的元组\nedges_embs[('1', '2')]\n''' 输出\narray([ 5.75068220e-03, -1.10937878e-02,  3.76693785e-01,  2.69105062e-02,\n       ... ... ....\n       ..................................................................],\n      dtype=float32)\n'''\n\n# 获取所有边的嵌入，并存储在一个单独的 KeyedVectors 实例中 - 大型网络可能会导致数据量过大，需谨慎使用\nedges_kv = edges_embs.as_keyed_vectors()\n\n# 查找最相似的边 - 此时元组必须按字典序排序，并且以字符串形式提供\nedges_kv.most_similar(str(('1', '2')))\n\n# 保存边的嵌入以便后续使用\nedges_kv.save_word2vec_format(EDGES_EMBEDDING_FILENAME)\n\n```\n\n### 参数\n\n#### `node2vec.Node2vec`\n\n- `Node2Vec` 构造函数：\n    1. `graph`: 第一个位置参数必须是一个 networkx 图。节点名称必须全部为整数或全部为字符串。在输出模型中，它们将始终是字符串。\n    2. `dimensions`: 嵌入维度（默认：128）\n    3. `walk_length`: 每条随机游走路径中的节点数量（默认：80）\n    4. `num_walks`: 每个节点生成的随机游走路径数量（默认：10）\n    5. `p`: 返回超参数（默认：1）\n    6. `q`: 输入参数（默认：1）\n    7. `weight_key`: 对于加权图，这是权重属性的键（默认：'weight'）\n    8. `workers`: 并行执行的工作线程数（默认：1）\n    9. `sampling_strategy`: 节点特定的采样策略，支持为每个节点设置不同的 `q`、`p`、`num_walks` 和 `walk_length`。\n        必须精确使用这些键。如果未设置，则会使用对象初始化时传入的全局参数。\n    10. `quiet`: 控制输出详细程度的布尔值。（默认：False）\n    11. `temp_folder`: 指向用于保存图的共享内存副本的文件夹路径 - 在算法执行过程中处理无法完全加载到内存的大型图时使用。\n    12. `seed`: 随机数生成器的种子（默认：None）。如果设置了种子并且 `workers=1`，则可以获得确定性的结果。\n\n- `Node2Vec.fit` 方法：\n    接受任何 gensim.Word2Vec 可接受的关键字参数。\n\n#### `node2vec.EdgeEmbedder`\n\n`EdgeEmbedder` 是一个抽象类，所有具体的边嵌入类都继承自它。\n这些类包括 `AverageEmbedder`、`HadamardEmbedder`、`WeightedL1Embedder` 和 `WeightedL2Embedder`，其具体定义可以在论文 [table 1](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.00653.pdf) 中找到。\n需要注意的是，边嵌入适用于任意两个节点的组合，无论它们是否相连，甚至包括节点与其自身的组合。\n\n- 构造函数：\n    1. `keyed_vectors`: 包含节点嵌入的 gensim.models.KeyedVectors 实例\n    2. `quiet`: 控制输出详细程度的布尔值。（默认：False）\n\n- `EdgeEmbedder.__getitem__(item)` 方法，也称为 `EdgeEmbedder[item]`：\n    1. `item` - 一个由构造函数中传入的 `keyed_vectors` 中的两个节点组成的元组。该方法将返回对应边的嵌入。\n\n- `EdgeEmbedder.as_keyed_vectors` 方法：返回一个 `gensim.models.KeyedVectors` 实例，其中包含所有可能的节点对，以 *排序* 后的字符串形式呈现。\n例如，对于节点 ['1', '2', '3']，键将是 \"('1', '1')\", \"('1', '2')\", \"('1', '3')\", \"('2', '2')\", \"('2', '3')\" 和 \"('3', '3')\"。\n\n## 注意事项\n- 输入图中的节点名称必须全部为字符串，或者全部为整数。\n- Windows 系统上不支持并行执行（`joblib` 已知问题）。要在 Windows 上进行非并行运行，请在 `Node2Vec` 的构造函数中设置 `workers=1`。\n\n## 待办事项\n- [x] 随机游走生成的并行实现\n- [ ] 概率预计算的并行实现","# Node2Vec 快速上手指南\n\nNode2Vec 是一种可扩展的网络特征学习算法，能够将图中的节点映射为低维向量表示，适用于链路预测、节点分类等任务。以下是基于 Python 实现的快速入门指南。\n\n## 环境准备\n\n- **操作系统**：Linux \u002F macOS \u002F Windows\n  - *注意*：Windows 用户在并行执行时存在已知限制，建议设置 `workers=1`。\n- **Python 版本**：Python 3.6+\n- **前置依赖**：\n  - `networkx`：用于构建和处理图结构\n  - `gensim`：用于训练 Word2Vec 模型（node2vec 内部自动调用）\n\n## 安装步骤\n\n推荐使用国内镜像源加速安装（如清华大学开源软件镜像站）：\n\n```bash\npip install node2vec -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n若未安装 `networkx`，请一并安装：\n\n```bash\npip install networkx -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\n以下是最简化的使用示例，展示如何构建随机图、生成节点嵌入并查找相似节点：\n\n```python\nimport networkx as nx\nfrom node2vec import Node2Vec\n\n# 1. 创建图（示例使用随机图，实际使用中可替换为自定义图）\ngraph = nx.fast_gnp_random_graph(n=100, p=0.5)\n\n# 2. 初始化 Node2Vec 模型\n# 注意：Windows 用户请务必设置 workers=1\nnode2vec = Node2Vec(\n    graph,\n    dimensions=64,      # 嵌入向量维度\n    walk_length=30,     # 每次游走的节点数\n    num_walks=200,      # 每个节点的游走次数\n    workers=4           # 并行工作线程数（Windows 请设为 1）\n)\n\n# 3. 训练模型\nmodel = node2vec.fit(window=10, min_count=1, batch_words=4)\n\n# 4. 查找与节点 '2' 最相似的节点\nsimilar_nodes = model.wv.most_similar('2')\nprint(similar_nodes)\n\n# 5. 保存节点嵌入向量（可选）\nmodel.wv.save_word2vec_format('node_embeddings.txt')\n\n# 6. 保存完整模型以便后续加载使用（可选）\nmodel.save('node2vec_model.pkl')\n```\n\n> **提示**：图中节点名称必须全部为字符串或全部为整数。输出模型中节点名统一转换为字符串格式。","某电商平台的推荐算法团队正试图从复杂的用户 - 商品交互网络中挖掘潜在的关联关系，以优化“猜你喜欢”功能。\n\n### 没有 node2vec 时\n- **结构信息丢失**：传统方法仅依赖直接的共现统计或简单的邻接矩阵，无法捕捉用户在浏览路径中隐含的深层拓扑结构（如“看了又看”的传递性）。\n- **冷启动困难**：对于新上架商品或新用户，由于缺乏足够的历史交互数据，基于规则的推荐往往失效，导致列表空白或随机展示。\n- **计算效率低下**：面对千万级节点的网络，手动设计特征或使用传统图算法进行相似度计算耗时极长，难以满足实时推荐的需求。\n- **泛化能力弱**：模型难以识别结构相似但无直接连接的节点，导致推荐结果局限在狭小的局部圈子，缺乏惊喜感。\n\n### 使用 node2vec 后\n- **深度结构编码**：node2vec 通过可控的随机游走策略，将图中节点的低维向量表示学习出来，完美保留了网络的同质性和结构性特征。\n- **解决稀疏难题**：即使交互数据稀疏，node2vec 也能利用图的全局结构信息生成高质量嵌入，显著提升冷启动场景下的推荐准确率。\n- **高效相似度检索**：生成的向量可直接用于快速余弦相似度计算，将原本复杂的图遍历问题转化为高效的向量运算，大幅降低延迟。\n- **发现潜在关联**：能够精准识别出虽无直接交易但处于相似网络位置的“隐形”关联商品，有效拓展了推荐的多样性和覆盖面。\n\nnode2vec 的核心价值在于将复杂的非欧几里得图结构转化为机器易于理解的稠密向量，让隐藏在网络拓扑中的商业洞察变得可计算、可应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Feliorc_node2vec_518140c3.png","eliorc","Elior Cohen","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Feliorc_88e8b905.jpg",null,"@datascienceisrael","https:\u002F\u002Fgithub.com\u002Feliorc",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,1294,254,"2026-04-04T14:17:15","MIT",1,"Linux, macOS, Windows","未说明","未说明（处理大图时建议使用 temp_folder 参数以避免内存溢出）",{"notes":95,"python":96,"dependencies":97},"在 Windows 系统上并行执行存在已知问题，必须将 workers 参数设置为 1 才能正常运行；输入图的节点名称必须全为字符串或全为整数；对于无法完全载入内存的大型图，需指定 temp_folder 参数使用共享内存。","3.x",[98,99,100],"networkx","gensim","joblib",[13],[103,104,105],"machine-learning-algorithms","embeddings","deep-learning","2026-03-27T02:49:30.150509","2026-04-06T06:54:42.508974",[109,114,119,124,129,134],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},9770,"遇到 'MemoryError' 内存分配失败错误该如何处理？","当图数据较大时，预计算概率可能耗尽内存。可以尝试在初始化 `Node2Vec` 时指定 `temp_folder` 参数，将临时数据写入磁盘而不是内存。例如：`node2vec = Node2Vec(graph, ..., temp_folder=\".\u002Ftmp_data\")`。确保指定的文件夹路径存在且有写入权限。","https:\u002F\u002Fgithub.com\u002Feliorc\u002Fnode2vec\u002Fissues\u002F62",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},9767,"遇到 'np.random.choice' 报错提示列表为空（empty list）怎么办？","这是一个已知问题，通常发生在某些节点的邻居列表为空时。维护者已在版本 0.1.2 中修复了此问题。请运行 `pip install --upgrade node2vec` 将库更新到最新版本即可解决。","https:\u002F\u002Fgithub.com\u002Feliorc\u002Fnode2vec\u002Fissues\u002F1",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},9768,"在 Windows 或 Anaconda 环境下运行时出现 joblib\u002Fmultiprocessing 相关错误如何解决？","这通常是由于 Windows 上的多进程启动方式或 Anaconda 环境配置导致的。如果设置 `workers=1`（单核）能正常运行，说明是并行计算模块的问题。建议尝试：1. 暂时将 `workers` 参数设为 1；2. 确保代码在 `if __name__ == '__main__':` 块中运行；3. 检查 Anaconda 的 multiprocessing 配置。","https:\u002F\u002Fgithub.com\u002Feliorc\u002Fnode2vec\u002Fissues\u002F2",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},9769,"调用 fit() 方法时出现 'TypeError: __init__() got an unexpected keyword argument size' 错误？","这是因为安装的 `gensim` 版本过新（4.0+），其中 `size` 参数已被重命名为 `vector_size`，而旧版 node2vec 仍使用 `size`。解决方案有两种：1. 降级 gensim 到 3.x 版本（`pip install gensim==3.8.3`）；2. 升级 node2vec 到最新版本以兼容新版 gensim。","https:\u002F\u002Fgithub.com\u002Feliorc\u002Fnode2vec\u002Fissues\u002F60",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},9771,"使用 NetworkX 的子图（SubGraph）对象时报维度错误或类型错误怎么办？","node2vec 可能无法直接处理 NetworkX 的 `SubGraph` 视图对象。建议在传入 `Node2Vec` 之前，显式地将子图转换为标准的图对象。可以使用 `graph = nx.to_networkx_graph(subgraph)` 或者重新实例化：`graph = nx.Graph(subgraph)`，将其转换为 `networkx.classes.graph.Graph` 类型后再运行算法。","https:\u002F\u002Fgithub.com\u002Feliorc\u002Fnode2vec\u002Fissues\u002F23",{"id":135,"question_zh":136,"answer_zh":137,"source_url":113},9772,"NODE_EMBEDDING 和 EDGE_EMBEDDING 有什么区别？应该如何选择？","NODE_EMBEDDING 用于生成节点的特征向量，适用于节点分类、链接预测等任务；EDGE_EMBEDDING 用于生成边的特征向量，通常用于边分类任务。对于常见的社交网络数据集（如 facebook_combined.txt 或 karate.edgelist），如果目标是分析节点属性或社区发现，应使用 NODE_EMBEDDING。EdgeEmbedder 主要用于后续基于节点嵌入计算边的嵌入。",[139,144,149,154,159,164,169,174,179,184],{"id":140,"version":141,"summary_zh":142,"released_at":143},107060,"v0.5.0","Fixes issues with dependencies, keeps minimum python version at 3.8.\r\n\r\nThanks to @Crosswind ","2024-08-02T11:13:59",{"id":145,"version":146,"summary_zh":147,"released_at":148},107061,"v0.4.6","# Bug fixes\r\n\r\n- Fixes #91 , where weights would be `None`. Now default to 1","2022-08-01T11:34:27",{"id":150,"version":151,"summary_zh":152,"released_at":153},107062,"v0.4.5","# Bug Fixes\r\n\r\n- Bug fixed with weight initialization, #88 thanks to @ndrus-softserve","2022-04-30T05:55:45",{"id":155,"version":156,"summary_zh":157,"released_at":158},107063,"v0.4.4"," - Switch to Poetry for package management\r\n - Faster random walk generation by @Neronuser ","2021-10-09T06:10:48",{"id":160,"version":161,"summary_zh":162,"released_at":163},107064,"v0.4.3","Edge embedding support for gensim 4.0.0\r\n\r\nResolved #63 ","2021-04-16T07:45:36",{"id":165,"version":166,"summary_zh":167,"released_at":168},107065,"v0.4.2","Due to naming changes, gensim > 4.0.0 caused lib to fail.\r\nThis patch fixes that.\r\n\r\nThanks to @raminqaf and  @jinhangjiang ","2021-04-02T06:40:51",{"id":170,"version":171,"summary_zh":172,"released_at":173},107066,"v0.4.1","Minor change, default to use skip-gram in `gensim`","2021-01-09T08:40:34",{"id":175,"version":176,"summary_zh":177,"released_at":178},107067,"v0.4.0","# New Features\r\n\r\n - Enable controlling the random seed for reproducible results (#38 by @gerritjandebruin)\r\n - Autopick tqdm bar for better display on CLI\u002FNotebooks (#49 by @LucaCappelletti94)\r\n\r\n","2020-11-28T08:59:52",{"id":180,"version":181,"summary_zh":182,"released_at":183},107068,"v0.3.3","# Bug fix\r\n\r\n - Fix bug where nodes with no in-degree will get no neighbors resulting in walks starting from them being empty. #46 ","2020-10-03T07:49:16",{"id":185,"version":186,"summary_zh":78,"released_at":187},107069,"v0.3.2","2020-05-19T21:08:42"]