[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-clips--pattern":3,"tool-clips--pattern":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",158594,2,"2026-04-16T23:34:05",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":99,"env_deps":100,"category_tags":106,"github_topics":107,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":115,"updated_at":116,"faqs":117,"releases":143},8365,"clips\u002Fpattern","pattern","Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.","Pattern 是一款专为 Python 设计的网络挖掘模块，旨在帮助开发者轻松获取并分析互联网数据。它一站式解决了从数据采集到智能分析的全流程需求：既能通过内置的爬虫和解析器抓取谷歌、推特、维基百科等平台的公开信息，又能利用自然语言处理技术进行词性标注、情感分析和语义搜索。此外，Pattern 还集成了 KNN、SVM 等机器学习算法以及网络可视化工具，让用户能快速构建分类模型或绘制关系图谱。\n\n这款工具特别适合 Python 开发者、数据科学家及研究人员使用。无论是需要快速原型验证的工程师，还是希望深入挖掘文本数据的学者，都能从中受益。其独特亮点在于将复杂的语言学规则（如 Brill 标注器）与机器学习模型无缝整合，并提供了超过 50 个开箱即用的示例代码和详尽的文档支持。只需几行代码，用户即可完成从“抓取推文”到“训练情感分类器”的完整工作流，极大地降低了网络数据挖掘的技术门槛。","Pattern\n=======\n\n[![Build Status](http:\u002F\u002Fimg.shields.io\u002Ftravis\u002Fclips\u002Fpattern\u002Fmaster.svg?style=flat)](https:\u002F\u002Ftravis-ci.org\u002Fclips\u002Fpattern\u002Fbranches)\n[![Coverage](https:\u002F\u002Fimg.shields.io\u002Fcoveralls\u002Fclips\u002Fpattern\u002Fmaster.svg?style=flat)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fclips\u002Fpattern?branch=master)\n[![PyPi version](http:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpattern.svg?style=flat)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpattern)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%203--Clause-green.svg?style=flat)](https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fblob\u002Fmaster\u002FLICENSE.txt)\n\nPattern is a web mining module for Python. It has tools for:\n\n * Data Mining: web services (Google, Twitter, Wikipedia), web crawler, HTML DOM parser\n * Natural Language Processing: part-of-speech taggers, n-gram search, sentiment analysis, WordNet\n * Machine Learning: vector space model, clustering, classification (KNN, SVM, Perceptron)\n * Network Analysis: graph centrality and visualization.\n\nIt is well documented, thoroughly tested with 350+ unit tests and comes bundled with 50+ examples. The source code is licensed under BSD.\n\n![Example workflow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fclips_pattern_readme_4c703a44af85.gif)\n\nExample\n-------\n\nThis example trains a classifier on adjectives mined from Twitter using Python 3. First, tweets that contain hashtag #win or #fail are collected. For example: *\"$20 tip off a sweet little old lady today #win\"*. The word part-of-speech tags are then parsed, keeping only adjectives. Each tweet is transformed to a vector, a dictionary of adjective → count items, labeled `WIN` or `FAIL`. The classifier uses the vectors to learn which other tweets look more like `WIN` or more like `FAIL`.\n\n```python\nfrom pattern.web import Twitter\nfrom pattern.en import tag\nfrom pattern.vector import KNN, count\n\ntwitter, knn = Twitter(), KNN()\n\nfor i in range(1, 3):\n    for tweet in twitter.search('#win OR #fail', start=i, count=100):\n        s = tweet.text.lower()\n        p = '#win' in s and 'WIN' or 'FAIL'\n        v = tag(s)\n        v = [word for word, pos in v if pos == 'JJ'] # JJ = adjective\n        v = count(v) # {'sweet': 1}\n        if v:\n            knn.train(v, type=p)\n\nprint(knn.classify('sweet potato burger'))\nprint(knn.classify('stupid autocorrect'))\n```\n\nInstallation\n------------\n\nPattern supports Python 2.7 and Python 3.6. To install Pattern so that it is available in all your scripts, unzip the download and from the command line do:\n```bash\ncd pattern-3.6\npython setup.py install\n```\n\nIf you have pip, you can automatically download and install from the [PyPI repository](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpattern):\n```bash\npip install pattern\n```\n\nIf none of the above works, you can make Python aware of the module in three ways:\n- Put the pattern folder in the same folder as your script.\n- Put the pattern folder in the standard location for modules so it is available to all scripts:\n  * `c:\\python36\\Lib\\site-packages\\` (Windows),\n  * `\u002FLibrary\u002FPython\u002F3.6\u002Fsite-packages\u002F` (Mac OS X),\n  * `\u002Fusr\u002Flib\u002Fpython3.6\u002Fsite-packages\u002F` (Unix).\n- Add the location of the module to `sys.path` in your script, before importing it:\n\n```python\nMODULE = '\u002Fusers\u002Ftom\u002Fdesktop\u002Fpattern'\nimport sys; if MODULE not in sys.path: sys.path.append(MODULE)\nfrom pattern.en import parsetree\n```\n\nDocumentation\n-------------\n\nFor documentation and examples see the [user documentation](https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fwiki).\n\nVersion\n-------\n\n3.6\n\nLicense\n-------\n\n**BSD**, see `LICENSE.txt` for further details.\n\nReference\n---------\n\nDe Smedt, T., Daelemans, W. (2012). Pattern for Python. *Journal of Machine Learning Research, 13*, 2031–2035.\n\nContribute\n----------\n\nThe source code is hosted on GitHub and contributions or donations are welcomed.\n\nBundled dependencies\n--------------------\n\nPattern is bundled with the following data sets, algorithms and Python packages:\n\n- **Brill tagger**, Eric Brill\n- **Brill tagger for Dutch**, Jeroen Geertzen\n- **Brill tagger for German**, Gerold Schneider & Martin Volk\n- **Brill tagger for Spanish**, trained on Wikicorpus (Samuel Reese & Gemma Boleda et al.)\n- **Brill tagger for French**, trained on Lefff (Benoît Sagot & Lionel Clément et al.)\n- **Brill tagger for Italian**, mined from Wiktionary\n- **English pluralization**, Damian Conway\n- **Spanish verb inflection**, Fred Jehle\n- **French verb inflection**, Bob Salita\n- **Graph JavaScript framework**, Aslak Hellesoy & Dave Hoover\n- **LIBSVM**, Chih-Chung Chang & Chih-Jen Lin\n- **LIBLINEAR**, Rong-En Fan et al.\n- **NetworkX centrality**, Aric Hagberg, Dan Schult & Pieter Swart\n- **spelling corrector**, Peter Norvig\n\nAcknowledgements\n----------------\n\n**Authors:**\n\n- Tom De Smedt (tom@organisms.be)\n- Walter Daelemans (walter.daelemans@ua.ac.be)\n\n**Contributors (chronological):**\n\n- Frederik De Bleser\n- Jason Wiener\n- Daniel Friesen\n- Jeroen Geertzen\n- Thomas Crombez\n- Ken Williams\n- Peteris Erins\n- Rajesh Nair\n- F. De Smedt\n- Radim Řehůřek\n- Tom Loredo\n- John DeBovis\n- Thomas Sileo\n- Gerold Schneider\n- Martin Volk\n- Samuel Joseph\n- Shubhanshu Mishra\n- Robert Elwell\n- Fred Jehle\n- Antoine Mazières + fabelier.org\n- Rémi de Zoeten + closealert.nl\n- Kenneth Koch\n- Jens Grivolla\n- Fabio Marfia\n- Steven Loria\n- Colin Molter + tevizz.com\n- Peter Bull\n- Maurizio Sambati\n- Dan Fu\n- Salvatore Di Dio\n- Vincent Van Asch\n- Frederik Elwert\n","模式\n=======\n\n[![构建状态](http:\u002F\u002Fimg.shields.io\u002Ftravis\u002Fclips\u002Fpattern\u002Fmaster.svg?style=flat)](https:\u002F\u002Ftravis-ci.org\u002Fclips\u002Fpattern\u002Fbranches)\n[![覆盖率](https:\u002F\u002Fimg.shields.io\u002Fcoveralls\u002Fclips\u002Fpattern\u002Fmaster.svg?style=flat)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fclips\u002Fpattern?branch=master)\n[![PyPi版本](http:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpattern.svg?style=flat)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpattern)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%203--Clause-green.svg?style=flat)](https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fblob\u002Fmaster\u002FLICENSE.txt)\n\nPattern 是一个用于 Python 的网络挖掘模块。它包含以下工具：\n\n * 数据挖掘：网络服务（Google、Twitter、维基百科）、网页爬虫、HTML DOM 解析器\n * 自然语言处理：词性标注器、n-gram 搜索、情感分析、WordNet\n * 机器学习：向量空间模型、聚类、分类（KNN、SVM、感知机）\n * 网络分析：图中心性及可视化。\n\n该模块文档齐全，经过了 350 多个单元测试的全面测试，并附带 50 多个示例。源代码采用 BSD 许可证授权。\n\n![示例工作流程](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fclips_pattern_readme_4c703a44af85.gif)\n\n示例\n-------\n\n此示例使用 Python 3 对从 Twitter 中挖掘出的形容词训练分类器。首先收集包含标签 #win 或 #fail 的推文。例如：“今天给一位可爱的老太太小费 $20 #win”。然后解析每个单词的词性标签，仅保留形容词。每条推文被转换为一个向量，即形容词 → 数量的字典，并标记为 `WIN` 或 `FAIL`。分类器利用这些向量来学习哪些推文更像 `WIN`，哪些更像 `FAIL`。\n\n```python\nfrom pattern.web import Twitter\nfrom pattern.en import tag\nfrom pattern.vector import KNN, count\n\ntwitter, knn = Twitter(), KNN()\n\nfor i in range(1, 3):\n    for tweet in twitter.search('#win OR #fail', start=i, count=100):\n        s = tweet.text.lower()\n        p = '#win' in s and 'WIN' or 'FAIL'\n        v = tag(s)\n        v = [word for word, pos in v if pos == 'JJ'] # JJ = 形容词\n        v = count(v) # {'sweet': 1}\n        if v:\n            knn.train(v, type=p)\n\nprint(knn.classify('sweet potato burger'))\nprint(knn.classify('stupid autocorrect'))\n```\n\n安装\n----\n\nPattern 支持 Python 2.7 和 Python 3.6。要将 Pattern 安装到所有脚本中可用，请解压下载文件，并在命令行中执行：\n```bash\ncd pattern-3.6\npython setup.py install\n```\n\n如果您有 pip，也可以从 [PyPI 仓库](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpattern) 自动下载并安装：\n```bash\npip install pattern\n```\n\n如果以上方法均无效，您可以通过三种方式让 Python 识别该模块：\n- 将 pattern 文件夹与您的脚本放在同一目录下。\n- 将 pattern 文件夹放置在标准模块位置，以便所有脚本都能访问：\n  * `c:\\python36\\Lib\\site-packages\\` (Windows),\n  * `\u002FLibrary\u002FPython\u002F3.6\u002Fsite-packages\u002F` (Mac OS X),\n  * `\u002Fusr\u002Flib\u002Fpython3.6\u002Fsite-packages\u002F` (Unix)。\n- 在导入模块之前，将模块路径添加到脚本中的 `sys.path`：\n\n```python\nMODULE = '\u002Fusers\u002Ftom\u002Fdesktop\u002Fpattern'\nimport sys; if MODULE not in sys.path: sys.path.append(MODULE)\nfrom pattern.en import parsetree\n```\n\n文档\n----\n\n有关文档和示例，请参阅 [用户文档](https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fwiki)。\n\n版本\n----\n\n3.6\n\n许可证\n----\n\n**BSD**，详情请参阅 `LICENSE.txt`。\n\n参考文献\n----\n\nDe Smedt, T., Daelemans, W. (2012). Pattern for Python. *Journal of Machine Learning Research, 13*, 2031–2035.\n\n贡献\n----\n\n源代码托管在 GitHub 上，欢迎贡献或捐赠。\n\n捆绑依赖项\n----------\n\nPattern 捆绑了以下数据集、算法和 Python 包：\n\n- **Brill 标注器**, Eric Brill\n- **荷兰语 Brill 标注器**, Jeroen Geertzen\n- **德语 Brill 标注器**, Gerold Schneider & Martin Volk\n- **西班牙语 Brill 标注器**, 基于 Wikicorpus 训练 (Samuel Reese & Gemma Boleda 等)\n- **法语 Brill 标注器**, 基于 Lefff 训练 (Benoît Sagot & Lionel Clément 等)\n- **意大利语 Brill 标注器**, 从 Wiktionary 中提取\n- **英语复数形式生成**, Damian Conway\n- **西班牙语动词变位**, Fred Jehle\n- **法语动词变位**, Bob Salita\n- **Graph JavaScript 框架**, Aslak Hellesoy & Dave Hoover\n- **LIBSVM**, Chih-Chung Chang & Chih-Jen Lin\n- **LIBLINEAR**, Rong-En Fan 等\n- **NetworkX 中心性计算**, Aric Hagberg, Dan Schult & Pieter Swart\n- **拼写纠正器**, Peter Norvig\n\n致谢\n----\n\n**作者：**\n\n- Tom De Smedt (tom@organisms.be)\n- Walter Daelemans (walter.daelemans@ua.ac.be)\n\n**贡献者（按时间顺序）：**\n\n- Frederik De Bleser\n- Jason Wiener\n- Daniel Friesen\n- Jeroen Geertzen\n- Thomas Crombez\n- Ken Williams\n- Peteris Erins\n- Rajesh Nair\n- F. De Smedt\n- Radim Řehůřek\n- Tom Loredo\n- John DeBovis\n- Thomas Sileo\n- Gerold Schneider\n- Martin Volk\n- Samuel Joseph\n- Shubhanshu Mishra\n- Robert Elwell\n- Fred Jehle\n- Antoine Mazières + fabelier.org\n- Rémi de Zoeten + closealert.nl\n- Kenneth Koch\n- Jens Grivolla\n- Fabio Marfia\n- Steven Loria\n- Colin Molter + tevizz.com\n- Peter Bull\n- Maurizio Sambati\n- Dan Fu\n- Salvatore Di Dio\n- Vincent Van Asch\n- Frederik Elwert","# Pattern 快速上手指南\n\nPattern 是一个功能强大的 Python 网络挖掘模块，集成了数据挖掘、自然语言处理（NLP）、机器学习和网络分析工具。它支持英语、德语、法语、西班牙语等多种语言的词性标注、情感分析和文本分类。\n\n## 环境准备\n\n*   **操作系统**：Windows, macOS, Linux\n*   **Python 版本**：支持 Python 2.7 和 Python 3.6+\n*   **前置依赖**：无特殊系统级依赖，标准 Python 环境即可。\n\n## 安装步骤\n\n推荐使用 `pip` 进行安装。国内开发者建议使用清华或阿里镜像源以加速下载。\n\n### 方法一：使用 pip 安装（推荐）\n\n```bash\n# 使用默认源\npip install pattern\n\n# 或使用国内镜像源（推荐）\npip install pattern -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方法二：源码安装\n\n如果需要通过源码安装，请解压后执行：\n\n```bash\ncd pattern-3.6\npython setup.py install\n```\n\n## 基本使用\n\n以下示例演示了如何使用 Pattern 进行简单的文本处理：抓取推特数据（模拟）、提取形容词并进行情感分类训练。\n\n```python\nfrom pattern.web import Twitter\nfrom pattern.en import tag\nfrom pattern.vector import KNN, count\n\n# 初始化 Twitter 接口和 KNN 分类器\ntwitter, knn = Twitter(), KNN()\n\n# 模拟收集包含 #win 或 #fail 的推文并训练模型\n# 注意：实际运行需确保网络通畅及 API 可用性，此处为逻辑演示\nfor i in range(1, 3):\n    # 搜索推文\n    for tweet in twitter.search('#win OR #fail', start=i, count=100):\n        s = tweet.text.lower()\n        # 根据标签确定分类类型\n        p = '#win' in s and 'WIN' or 'FAIL'\n        \n        # 词性标注\n        v = tag(s)\n        # 仅保留形容词 (JJ = adjective)\n        v = [word for word, pos in v if pos == 'JJ']\n        \n        # 转换为词频向量\n        v = count(v) \n        \n        if v:\n            knn.train(v, type=p)\n\n# 使用训练好的模型进行分类预测\nprint(knn.classify('sweet potato burger'))\nprint(knn.classify('stupid autocorrect'))\n```\n\n**代码说明：**\n1.  **`tag(s)`**: 对句子进行词性标注。\n2.  **列表推导式**: 筛选出词性为 `JJ` (形容词) 的单词。\n3.  **`count(v)`**: 将单词列表转换为词频字典（向量空间模型）。\n4.  **`knn.train()`**: 使用提取的特征向量训练 KNN 分类器。\n5.  **`knn.classify()`**: 输入新文本，模型判断其倾向于 \"WIN\" 还是 \"FAIL\"。\n\n更多详细文档和高级用法请参考官方 Wiki：https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fwiki","某电商数据分析师需要实时监控社交媒体上用户对新品的反馈，并自动识别评论中的情感倾向以辅助营销决策。\n\n### 没有 pattern 时\n- 需分别调用多个独立库来处理网页抓取、文本分词和机器学习，环境配置复杂且兼容性差。\n- 手动编写正则表达式提取形容词效率低下，难以准确区分\"good\"（好）与\"bad\"（坏）等关键情感词。\n- 缺乏内置的情感分析模型，从零训练分类器需要大量标注数据和复杂的特征工程。\n- 数据清洗与向量化过程代码冗长，难以快速将非结构化推文转化为可计算的数学向量。\n- 无法直观展示关键词之间的关联网络，导致难以发现潜在的舆情传播路径。\n\n### 使用 pattern 后\n- 直接调用 pattern 集成的 Twitter 搜索和 HTML 解析模块，一行代码即可完成数据采集与清洗。\n- 利用内置的 POS 词性标注器精准筛选形容词（JJ），自动过滤无关词汇，大幅提升特征提取精度。\n- 复用预训练的感知机或 KNN 算法，仅需少量样本即可快速构建\"WIN\u002FFAIL\"情感分类模型。\n- 通过 `count` 函数一键将文本转换为词频向量，无缝衔接后续的分类与聚类任务。\n- 借助网络分析工具自动生成词共现图谱，直观呈现用户讨论热点及情感演化趋势。\n\npattern 将分散的网络挖掘、自然语言处理与机器学习流程整合为统一接口，让开发者能专注于业务逻辑而非底层算法实现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fclips_pattern_debdff0d.png","clips","Computational Linguistics Research Group","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fclips_440d1778.png","Computational Linguistics and Psycholinguistics Research Center, University of Antwerp",null,"clipsua","www.uantwerpen.be\u002Fclips","https:\u002F\u002Fgithub.com\u002Fclips",[81,85,89],{"name":82,"color":83,"percentage":84},"Python","#3572A5",87.2,{"name":86,"color":87,"percentage":88},"JavaScript","#f1e05a",12.8,{"name":90,"color":91,"percentage":92},"HTML","#e34c26",0,8860,1565,"2026-04-16T14:19:42","BSD-3-Clause",1,"Windows, macOS, Linux","未说明",{"notes":101,"python":102,"dependencies":105},"该工具是一个传统的网络挖掘和自然语言处理模块，内置了多种语言（英、荷、德、西、法、意）的 Brill 词性标注器、动词变形规则以及 LIBSVM、LIBLINEAR 等机器学习算法。安装时可直接通过 pip 安装或手动运行 setup.py。无需 GPU 支持，主要依赖内置的数据集和算法包。",[103,104],"2.7","3.6",[],[35,14],[108,109,110,111,112,113,114],"python","machine-learning","natural-language-processing","web-mining","wordnet","sentiment-analysis","network-analysis","2026-03-27T02:49:30.150509","2026-04-17T10:21:07.257025",[118,123,128,133,138],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},37441,"使用 WordNetClassifier 进行 taxonomy 搜索时出现 'IndexError: list index out of range' 错误怎么办？","这是一个已知问题，通常发生在处理未知单词时。维护者已在主分支修复，修复方法是将 WordNetClassifier 中的 `except KeyError:` 替换为 `except:`，因为对于未知单词它不会抛出 KeyError。请确保您使用的是最新版本的 Pattern，并检查 Python 是否引用了旧的安装版本。如果问题依旧，尝试从 GitHub 拉取最新代码重新安装。","https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fissues\u002F60",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},37442,"如何获取名词的单数形式或动词的原形（lemma）？以 's' 结尾的词处理有问题吗？","Pattern 库中不同函数用于不同目的：使用 `lemma` 函数获取动词的原形，使用 `singularize` 函数获取名词的单数形式（例如处理以 's' 结尾的复数名词）。如果您需要获取任意单词的词干（stem），可以对所有单词应用 Porter 词干提取器，使用 `stem` 函数。不要混用这些函数，因为它们针对不同的语言学任务。","https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fissues\u002F221",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},37443,"为什么调用 Result 对象的 download() 方法第二次时会报错 'TypeError: get() takes no keyword arguments'？","该问题在 Pattern 2.4 版本中存在，但在最新的 2.5 版本中已修复。如果您遇到此错误，请通过 `pip install --upgrade pattern` 升级到最新版本。如果升级后问题仍然存在，请检查您的缓存对象类型，确认是否正确导入了 `pattern.web.cache` 模块。该错误通常是由于旧版本缓存实现与新版不兼容导致的。","https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fissues\u002F26",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},37444,"Bing 搜索 API 返回 'Invalid header value' 错误或认证失败怎么办？","Bing 搜索 API 现已改为付费订阅服务，且 API 接口发生了变更，导致 Pattern 库中原有的认证方式失效。这不仅是 Bing 的问题，许多其他 API 也因类似的认证问题或接口变更而无法在 Pattern 中正常工作。目前需要重构相关代码以适应新的 API 要求。建议暂时使用其他可用的搜索引擎模块，或关注官方 Issue #181 以获取后续修复进展。","https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fissues\u002F155",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},37445,"如何在 Pattern 的 search 语法中使用类似正则表达式的匹配组（match groups）？","Pattern 的搜索语法支持类似正则表达式的分组功能。您可以使用大括号 `{}` 来定义可选或重复的约束，例如 `{JJ? NN}` 表示可选的形容词后跟名词。虽然早期版本对括号 `()` 的支持有限，但在新版本（如 2.4 及以上）中已经增强了分组功能。您可以直接从 GitHub 克隆最新修订版来体验新功能，或者等待官方发布新版本。注意：具体的分组提取方法可能需通过 `match.group(index)` 访问。","https:\u002F\u002Fgithub.com\u002Fclips\u002Fpattern\u002Fissues\u002F14",[144],{"id":145,"version":146,"summary_zh":147,"released_at":148},298017,"3.7-beta","3.7 版本的 Beta 发布，新增对 Python 3.6 至 3.10 版本的支持。\n\n包含多项代码修复，以减少单元测试中的噪声，并相应地更新了相关测试用例。","2022-08-30T12:13:51"]