KART-RERANK大模型实战:Python爬虫数据智能排序与相关性分析

news2026/3/29 19:37:41
KART-RERANK大模型实战Python爬虫数据智能排序与相关性分析你是不是也遇到过这种情况用Python爬虫吭哧吭哧抓了一大堆数据结果发现里面什么都有有用的、没用的、相关的、跑题的、高质量的、纯广告的……看着满屏的文本头都大了。手动筛选眼睛看花了也未必能挑出真正有价值的信息。我之前做市场调研项目时就吃过这个亏。爬了几万条用户评论想分析产品口碑结果光是清理无关信息和垃圾内容就花了两天时间效率低得让人抓狂。后来我发现其实这个问题完全可以用更聪明的方法解决——让AI来帮我们做数据的“智能管家”。今天要聊的KART-RERANK模型就是这样一个专门给爬虫数据做“质检”和“排序”的智能工具。它能理解你真正想要什么然后自动把最相关、质量最高的内容排到前面把那些乱七八糟的东西过滤掉。听起来是不是很实用咱们一起来看看怎么把它用在实际的爬虫项目里。1. 爬虫数据的“老大难”问题从信息海洋到信息垃圾场做爬虫的朋友都知道数据抓取只是第一步真正的挑战在后面。你可能会遇到这些问题信息过载与噪音干扰爬下来的数据里经常混着一大堆你根本不想要的东西。比如你爬新闻网站结果抓到了侧边栏的推荐文章、底部的相关链接、甚至是广告文案。这些内容跟你的目标主题可能只有一丁点关系或者完全没关系但它们就是混在正文里一起被抓下来了。更头疼的是有些网站为了SEO会在页面里堆砌关键词或者插入大量无关的内部链接。你本来想抓某个产品的评测结果抓回来的内容里一半都在推荐其他产品或者讲不相干的故事。相关性判断的模糊地带什么叫做“相关”这个标准其实很模糊。比如你搜索“智能手机电池续航”一篇讲“如何延长手机电池寿命”的文章肯定相关但一篇讲“锂电池技术发展史”的文章呢它也有关系但不是直接回答你的问题。一篇讲“某品牌手机充电器爆炸”的新闻呢它提到了电池但重点完全不一样。人工判断这些相关性非常耗时而且不同的人可能有不同的标准。A觉得相关的文章B可能觉得不相关。这种主观性会导致数据分析结果的不一致。质量参差不齐的困扰就算内容相关质量也有高低之分。有些文章是专业媒体写的数据详实、逻辑清晰有些是个人博客可能观点片面、信息过时还有些根本就是营销软文通篇都在吹嘘某个产品。在舆情监控或者市场调研中低质量的信息会严重干扰判断。如果你根据几篇不靠谱的网文就得出某个结论那这个结论很可能也是不靠谱的。传统解决方案的局限性以前我们怎么解决这些问题无非是几种方法关键词过滤设定黑白名单包含某些词的就保留包含另一些词的就删除。这个方法简单粗暴但效果很有限。“苹果”这个词可能指水果也可能指手机公司你怎么区分规则引擎写一堆复杂的if-else规则比如“标题包含关键词且正文长度大于500字且发布时间在一年内”。规则越多系统越复杂维护起来越头疼。简单排序算法比如TF-IDF根据词频来判断相关性。但这种方法只考虑词语出现的次数不考虑语义。“手机电池”和“智能手机续航”意思差不多但用词完全不同TF-IDF可能就认为它们不相关。这些传统方法就像是用筛子筛沙子能筛掉大石头但细小的杂质还是混在里面。我们需要一个更智能的“滤网”。2. KART-RERANK给爬虫数据装上“智能大脑”KART-RERANK不是什么神秘的黑科技它的核心思想其实很直观像人一样理解内容然后判断哪些内容是你真正需要的。它到底是个什么东西简单说KART-RERANK是一个专门做“重排序”的模型。什么叫重排序举个例子你用爬虫抓了1000篇文章先用一个简单的方法比如关键词匹配粗筛一遍选出了200篇可能相关的。但这200篇里哪些是最相关的哪些是次相关的哪些其实不太相关KART-RERANK就是干这个的——对这200篇文章进行精细排序把最好的排到最前面。它的工作原理有点像考试阅卷。你用户的问题是“考题”每篇文章是“答卷”。KART-RERANK这个“阅卷老师”会仔细阅读每份答卷然后根据它理解的标准相关性、质量等给出分数最后按分数高低排序。为什么它比传统方法聪明传统方法主要看“表面特征”这个词出现了几次这个网页有多少外链发布时间是什么时候KART-RERANK看的是“深层含义”这篇文章到底在讲什么它跟用户的问题在语义上有多接近它的观点是否可靠论述是否完整这种基于语义的理解能力让它在处理复杂情况时表现好得多同义不同词用户搜索“笔记本电脑推荐”一篇文章讲“手提电脑选购指南”另一篇讲“便携式计算机怎么选”。虽然用词不同但KART-RERANK能识别出它们都在说同一件事。相关但非直接用户想了解“电动汽车充电桩安装”一篇直接讲安装流程的文章当然相关但一篇讲“家用充电桩电费计算”的文章也有价值因为它涉及后续使用成本。KART-RERANK能理解这种间接相关性。质量判断一篇结构混乱、数据来源不明的文章和一篇引用权威报告、逻辑清晰的文章即使内容相关KART-RERANK也会给后者更高的分数。在实际爬虫项目里有什么用想象一下这些场景你正在做一个竞品分析爬取了所有主要竞争对手的产品介绍、用户评价、媒体报道。面对几千条数据你只需要最核心的信息他们产品的核心卖点是什么用户最大的抱怨是什么最近的升级改进了什么或者你在做舆情监控爬取了社交媒体上关于某个事件的所有讨论。你需要快速找到主流观点是什么关键意见领袖说了什么有没有出现新的争议点在这些场景下KART-RERANK就像一个不知疲倦的助手帮你从海量数据中精准捞出那些真正值得关注的内容大大节省你的时间和精力。3. 动手搭建Python爬虫KART-RERANK实战指南理论说再多不如实际做一遍。下面我带你一步步搭建一个完整的系统用实际的代码展示怎么把KART-RERANK集成到爬虫项目里。3.1 环境准备与模型部署首先你需要准备好基础环境。我建议用Python 3.8或以上版本这个版本比较稳定各种库的支持也比较好。# 创建虚拟环境可选但推荐 python -m venv rerank_env source rerank_env/bin/activate # Linux/Mac # 或者 rerank_env\Scripts\activate # Windows # 安装核心依赖 pip install requests beautifulsoup4 # 爬虫基础 pip install transformers torch # 深度学习框架和模型 pip install sentence-transformers # 文本向量化 pip install pandas numpy # 数据处理 pip install scikit-learn # 评估指标可选KART-RERANK模型可以通过Hugging Face直接加载非常方便from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch # 加载KART-RERANK模型和分词器 model_name your-kart-rerank-model # 替换为实际的模型名称 tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForSequenceClassification.from_pretrained(model_name) # 将模型设置为评估模式 model.eval() print(模型加载完成准备就绪)这里有个小提示不同的KART-RERANK模型可能在具体实现上有差异有的可能是基于BERT的有的可能是基于其他架构。你需要根据实际使用的模型调整代码。不过基本思路都是一样的——输入查询和文档输出相关性分数。3.2 数据爬取与预处理我们先写一个简单的爬虫抓取一些示例数据。以爬取技术博客文章为例import requests from bs4 import BeautifulSoup import time import pandas as pd def crawl_tech_articles(keyword, max_pages3): 爬取技术博客文章 :param keyword: 搜索关键词 :param max_pages: 最大爬取页数 :return: 文章数据列表 articles [] # 这里以某个技术博客站点的搜索为例 base_url fhttps://example-tech-blog.com/search?q{keyword} for page in range(1, max_pages 1): try: url f{base_url}page{page} headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 } response requests.get(url, headersheaders, timeout10) response.raise_for_status() soup BeautifulSoup(response.text, html.parser) # 假设文章在class为article-item的div中 article_items soup.find_all(div, class_article-item) for item in article_items: try: title item.find(h2).text.strip() if item.find(h2) else link item.find(a)[href] if item.find(a) else summary item.find(p, class_summary).text.strip() if item.find(p, class_summary) else date item.find(span, class_date).text.strip() if item.find(span, class_date) else # 如果需要可以进一步爬取文章详情 if link: article_detail crawl_article_detail(link) content article_detail.get(content, ) full_text f{title}\n\n{summary}\n\n{content} else: full_text f{title}\n\n{summary} articles.append({ title: title, url: link, summary: summary, date: date, full_text: full_text[:1000] # 只取前1000字符避免太长 }) except Exception as e: print(f解析文章项时出错: {e}) continue print(f第{page}页爬取完成共获取{len(article_items)}篇文章) time.sleep(2) # 礼貌性延迟 except Exception as e: print(f爬取第{page}页时出错: {e}) break return articles def crawl_article_detail(url): 爬取文章详情页 try: response requests.get(url, timeout10) soup BeautifulSoup(response.text, html.parser) # 假设正文在class为article-content的div中 content_div soup.find(div, class_article-content) content content_div.text.strip() if content_div else return {content: content} except: return {content: } # 示例爬取关于机器学习的文章 articles crawl_tech_articles(机器学习, max_pages2) print(f总共爬取到{len(articles)}篇文章) # 保存为DataFrame方便处理 df_articles pd.DataFrame(articles) df_articles.head()爬下来的数据通常需要清洗一下def preprocess_text(text): 简单的文本预处理 if not isinstance(text, str): return # 移除多余空白字符 text .join(text.split()) # 这里可以添加更多预处理步骤 # 比如移除HTML标签、特殊字符等 return text # 应用预处理 df_articles[processed_text] df_articles[full_text].apply(preprocess_text) # 移除空文本 df_articles df_articles[df_articles[processed_text].str.len() 50] print(f预处理后剩余{len(df_articles)}篇文章)3.3 实现智能排序让模型理解你的需求现在到了核心部分——用KART-RERANK给这些文章排序。假设你想找关于“机器学习模型部署”的内容def rerank_documents(query, documents, top_k10): 使用KART-RERANK对文档进行重排序 :param query: 查询文本 :param documents: 文档列表每个文档是字典包含text和id :param top_k: 返回前K个结果 :return: 排序后的文档列表 ranked_docs [] for doc in documents: # 准备模型输入 # 格式通常是: [CLS] query [SEP] document [SEP] inputs tokenizer(query, doc[text], truncationTrue, paddingTrue, max_length512, return_tensorspt) # 前向传播 with torch.no_grad(): outputs model(**inputs) scores outputs.logits # 获取相关性分数假设是二分类相关/不相关 # 具体取哪个维度取决于模型训练时的设置 relevance_score torch.softmax(scores, dim1)[0][1].item() ranked_docs.append({ id: doc[id], text: doc[text], score: relevance_score, title: doc.get(title, ), url: doc.get(url, ) }) # 按分数降序排序 ranked_docs.sort(keylambda x: x[score], reverseTrue) # 返回前top_k个结果 return ranked_docs[:top_k] # 准备查询和文档 query 如何部署机器学习模型到生产环境 documents [] for idx, row in df_articles.iterrows(): documents.append({ id: idx, text: row[processed_text], title: row[title], url: row[url] }) # 执行重排序 print(f开始对{len(documents)}篇文档进行智能排序...) ranked_results rerank_documents(query, documents, top_k5) print(\n 智能排序结果 ) for i, result in enumerate(ranked_results, 1): print(f\n第{i}名 (得分: {result[score]:.4f})) print(f标题: {result[title]}) print(f摘要: {result[text][:200]}...) # 只显示前200字符 print(f链接: {result[url]})这段代码做了几件事把用户的问题查询和每篇文章文档组合起来送给模型模型输出一个分数表示这篇文章跟问题有多相关按分数从高到低排序选出最相关的几篇你可能会发现有些文章虽然标题里没有“部署”这个词但内容确实讲了相关的内容比如“机器学习模型服务化实践”、“AI模型上线流程”等等。这就是语义理解的优势——它不看表面词汇看实际含义。3.4 效果优化让排序更精准的实用技巧直接用基础模型可能还不够完美这里分享几个我实践中总结的优化技巧技巧一查询扩展有时候用户的问题太简短模型可能理解不充分。比如“模型部署”这个词可以扩展为“机器学习模型部署到生产环境的步骤、工具、最佳实践”。def expand_query(original_query): 简单的查询扩展 query_variations [ original_query, f{original_query} 步骤, f{original_query} 方法, f{original_query} 实践, f{original_query} 教程 ] return query_variations # 对每个扩展查询都做排序然后合并结果 expanded_queries expand_query(模型部署) all_results [] for q in expanded_queries: results rerank_documents(q, documents, top_k3) all_results.extend(results) # 去重并重新排序 unique_results {} for result in all_results: doc_id result[id] if doc_id not in unique_results or result[score] unique_results[doc_id][score]: unique_results[doc_id] result final_results sorted(unique_results.values(), keylambda x: x[score], reverseTrue)[:5]技巧二多维度评分除了相关性还可以考虑其他因素def comprehensive_ranking(query, documents, top_k10): 综合考虑相关性、新鲜度、权威性等多个维度 ranked_docs [] for doc in documents: # 1. 相关性分数主要 relevance_score get_relevance_score(query, doc[text]) # 2. 新鲜度分数如果文档有时间信息 freshness_score get_freshness_score(doc.get(date)) # 3. 权威性分数可以根据来源网站等判断 authority_score get_authority_score(doc.get(url)) # 4. 内容质量分数文本长度、结构等 quality_score get_quality_score(doc[text]) # 综合分数加权平均 total_score ( 0.6 * relevance_score 0.2 * freshness_score 0.1 * authority_score 0.1 * quality_score ) ranked_docs.append({ id: doc[id], text: doc[text], relevance: relevance_score, freshness: freshness_score, authority: authority_score, quality: quality_score, total_score: total_score, title: doc.get(title, ), url: doc.get(url, ) }) ranked_docs.sort(keylambda x: x[total_score], reverseTrue) return ranked_docs[:top_k]技巧三阈值过滤不是所有分数高的都真的有用可以设置一个阈值def filter_by_threshold(results, threshold0.7): 过滤掉分数太低的结果 filtered [r for r in results if r[score] threshold] if not filtered: # 如果没有达到阈值的返回前3个 print(警告没有文档达到阈值返回分数最高的3个) return results[:3] return filtered # 使用示例 high_quality_results filter_by_threshold(ranked_results, threshold0.8) print(f阈值过滤后剩余{len(high_quality_results)}篇高质量文档)4. 真实场景应用从理论到落地光说不练假把式咱们看看KART-RERANK在实际项目中能发挥什么作用。场景一竞品情报监控我去年帮一家电商公司做竞品监控。他们需要跟踪主要竞争对手的产品更新、价格变化、营销活动。传统做法是人工每天浏览几十个网站眼睛都看花了。我们用爬虫KART-RERANK改造了这个流程爬虫每天自动抓取竞品网站的产品页面、博客文章、新闻稿KART-RERANK根据预设的关注点比如“新品发布”、“价格调整”、“功能升级”对内容排序系统每天生成一份简报只包含最相关的5-10条信息结果呢原来需要2个人全职监控的工作现在只需要0.5个人每周花几小时复核一下。而且因为AI不会累、不会走神覆盖的网站更多发现的重要信息反而增加了。场景二用户反馈分析一家SaaS公司收集了上万条用户反馈来自邮件、客服聊天、应用商店评论等各种渠道。他们想知道用户最关心什么问题、最大的抱怨是什么。我们用爬虫收集了所有反馈当然是在合规的前提下然后用KART-RERANK做了几件事按主题聚类把关于“登录问题”的反馈都找出来不管用户说的是“登不上去”、“密码错误”还是“无法验证”按紧急程度排序把包含“崩溃”、“用不了”、“退款”等紧急词汇的反馈优先排出来按情感倾向分类正面评价、负面评价、建议性反馈分开处理产品经理原来每周要花一整天看用户反馈现在每天早上一杯咖啡的时间就能掌握核心问题。场景三内容聚合平台我认识的一个技术社区每天从几百个技术博客抓取文章。问题来了怎么决定首页推荐哪些文章最早是按发布时间排序结果质量参差不齐。后来让编辑人工筛选但工作量太大。最后他们用上了KART-RERANK模型根据社区的历史点击、点赞、评论数据学习什么样的文章受欢迎对新抓取的文章预测其“受欢迎程度”结合相关性是否与技术相关、新鲜度、预测分数综合排序编辑的工作从“海选”变成了“精选”只需要从AI推荐的50篇文章里挑出10篇最好的效率提升了文章质量也更稳定了。5. 避坑指南实践中可能遇到的问题用了这么久我也踩过不少坑。这里分享几个常见问题帮你少走弯路。问题一模型“误解”查询有时候模型会把相关性判断错。比如查询“Python循环优化”结果把讲“Python循环语句基础”的文章排得很高。这是因为模型可能认为“基础教程”和“优化”有某种关联。解决方案调整查询表述。把“Python循环优化”改成“提高Python循环性能的方法、技巧、优化方案”明确性更强。或者用多个相关查询取结果的交集。问题二处理长文档效果差KART-RERANK通常有输入长度限制比如512个token。如果文档很长只能截取一部分可能漏掉关键信息。解决方案先提取文档的关键段落或摘要如果文档有明显结构如章节分别对每个章节评分取最高分使用能处理长文档的模型变体def process_long_document(query, long_text, chunk_size400): 处理长文档分块评分 # 简单按段落分块 paragraphs long_text.split(\n\n) chunks [] current_chunk for para in paragraphs: if len(current_chunk) len(para) chunk_size: current_chunk para \n\n else: if current_chunk: chunks.append(current_chunk.strip()) current_chunk para \n\n if current_chunk: chunks.append(current_chunk.strip()) # 对每个块评分 chunk_scores [] for i, chunk in enumerate(chunks): score get_relevance_score(query, chunk) chunk_scores.append((i, score, chunk)) # 取最高分的块代表整个文档 best_chunk max(chunk_scores, keylambda x: x[1]) return best_chunk[2], best_chunk[1]问题三领域适应性不足通用模型在特定领域比如医疗、法律可能表现不佳因为它不理解专业术语。解决方案使用领域内数据对模型进行微调如果有足够标注数据构建领域词典在预处理时替换或标注专业术语使用领域专用的预训练模型问题四计算资源消耗大如果文档数量很多比如几十万篇对每篇都做精细排序会很慢。解决方案两阶段排序第一阶段用快速但粗糙的方法如BM25、词向量相似度筛选出前1000篇第二阶段用KART-RERANK对1000篇进行精细排序def two_stage_reranking(query, all_documents, top_k10): 两阶段排序先粗筛再精排 # 第一阶段快速筛选比如用TF-IDF或BM25 print(第一阶段快速筛选...) candidate_docs fast_retrieval(query, all_documents, top_n1000) print(f从{len(all_documents)}篇中筛选出{len(candidate_docs)}篇候选文档) # 第二阶段精细排序 print(第二阶段精细排序...) final_results rerank_documents(query, candidate_docs, top_ktop_k) return final_results问题五结果可解释性差模型给了分数但为什么这篇分数高、那篇分数低如果不清楚原因很难信任这个结果。解决方案添加解释功能。虽然KART-RERANK本身是黑盒但我们可以高亮查询和文档中相似的部分提供简短的“匹配原因”说明让用户对结果进行反馈持续优化6. 总结回过头来看KART-RERANK给Python爬虫带来的最大价值是让数据处理从“体力活”变成了“技术活”。以前我们需要人工一条条看、一个个筛现在大部分工作可以交给AI我们只需要做最后的把关和决策。实际用下来我觉得这套方案最适合的是那些数据量大、需求明确、但对精度要求不是极端高的场景。比如市场调研、舆情监控、内容聚合这些领域KART-RERANK能帮你节省大量时间而且效果比传统方法好得多。当然它也不是万能的。对于特别专业的领域或者对准确性要求极高的场景比如法律文档、医疗报告可能还需要结合更多人工审核。但作为第一道筛选它已经足够出色了。如果你正在做爬虫相关的工作而且苦于数据处理效率太低真的建议试试这个方法。从简单的实验开始先处理几百条数据看看效果再逐步扩大规模。过程中可能会遇到一些问题但解决问题的过程本身也是学习。技术总是在进步的。今天的KART-RERANK已经很好用明天的模型肯定会更强大。重要的是保持学习和尝试的心态把合适的工具用在合适的地方。爬虫抓取数据AI处理数据人做决策分析——这样的分工效率最高。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2462468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…