ApX 标志

趋近智

\"\"\" clean_content = extract_text_from_html(html_content) print(clean_content) # Main Title # This is important content.类似地,如果您正在使用Markdown,您可能希望去除格式以获取底层文本。strip_markdown函数可用于此目的,将**bold**文本转换为bold。移除不相关和敏感内容对于许多RAG程序,URL、电子邮件地址和电话号码等元素是可能扭曲文本块语义的噪音。移除它们有助于嵌入模型关注主要内容。更值得一提的是,移除或编辑个人身份信息(PII)是保护隐私和数据安全的常规做法。您可以单独移除这些元素,也可以将其作为大型清洗流程的一部分。对于处理敏感数据的程序,您可能选择编辑而非仅仅移除PII,用一个通用占位符替换敏感数据。from kerb.safety import redact_pii sensitive_text = \"Please contact support at [email protected] or call 555-123-4567 for help.\" redacted_text = redact_pii(sensitive_text) print(f\"原始: {sensitive_text}\") print(f\"编辑后: {redacted_text}\") # 原始: Please contact support at [email protected] or call 555-123-4567 for help. # 编辑后: Please contact support at [REDACTED_EMAIL] or call [REDACTED_PHONE] for help.这种方法在保护敏感内容的同时,保留了有关某段内容存在的上下文。构建预处理流程虽然您可以逐个应用这些函数,但定义一个可重用的预处理流程会更高效。normalize_text函数与NormalizationConfig结合使用,允许您以声明式方式协调多个清洗和标准化步骤。您可以为不同类型的内容或RAG流程的不同阶段定义不同的配置。让我们构建一个处理网络抓取文章的常规流程。目的是将文本转为小写,移除URL和电子邮件,并标准化所有空白字符和引号。from kerb.preprocessing import normalize_text, NormalizationConfig, NormalizationLevel # 为我们的流程定义一个配置 web_article_config = NormalizationConfig( level=NormalizationLevel.STANDARD, # 应用标准Unicode、引号和空白字符标准化 lowercase=True, remove_urls=True, remove_emails=True, remove_extra_spaces=True ) messy_article_snippet = \"\"\" Check out our new \"Report\" at https://example.com/report! Contact [email protected] for info. It's an in-depth analysis of AI’s impact. \"\"\" # 一次调用应用整个流程 processed_text = normalize_text(messy_article_snippet, config=web_article_config) print(\"### 预处理前 ###\") print(messy_article_snippet) print(\"\\n### 预处理后 ###\") print(processed_text)此“前后”对比呈现了我们流程的结果:预处理前Check out our new \"Report\" at https://example.com/report! Contact [email protected] for info. It's an in-depth analysis of AI’s impact.预处理后check out our new \"report\" at ! contact for info. it's an in-depth analysis of ai's impact.现在的输出是一段干净、标准化的文本块。这个清理过的版本更适合嵌入模型,因为噪音已被清除,只留下核心文本内容。预处理的程度需要权衡。过于激进的清洗可能会移除有用的上下文,因此测试您的流程对检索效果的影响总是一个明智的做法。在文档加载、分块并彻底清洗之后,我们拥有了一个高质量的文本片段数据集。每个片段都是一个语义连贯且标准化的信息单元,为下一步做好了准备:通过嵌入将文本转换为数值表示。","isAccessibleForFree":false,"hasPart":{"@type":"WebPageElement","isAccessibleForFree":false,"cssSelector":".login-required-content"}}