retext

retext

可扩展的自然语言转换框架

retext是一个基于插件的自然语言转换框架,可在服务器、客户端和Deno等多种环境中使用。它通过结构化数据处理自然语言,支持拼写检查、排版优化和可读性分析等功能。retext生态系统包含多个语言处理包,并允许开发自定义插件。作为unified项目的开源组件,retext使用nlcst语法树提供强大的自然语言支持,适用于文本分析、内容优化和自动校对等场景。其活跃的社区不断贡献新插件,使retext成为灵活可靠的文本处理解决方案。

retext自然语言处理插件系统语法树文本转换Github开源项目

retext

构建 覆盖率 下载量 大小 赞助商 支持者 聊天

retext 是一个通过插件转换自然语言的工具。这些插件可以检查和修改自然语言。你可以在服务器、客户端、Deno 等环境中使用 retext。

简介

retext 是一个生态系统,其中的插件将自然语言作为结构化数据处理,特别是 CST(具体语法树)。语法树使程序能够轻松处理散文。我们将这些程序称为插件。插件可以检查和修改树。你可以使用许多现有的插件,也可以创建自己的插件。一些使用案例包括检查拼写修复排版确保文本可读性

目录

这是什么?

通过这个项目和插件,你可以将简单的标点符号:

He said, "A 'simple' english sentence. . .

…转换为智能标点:

He said, "A 'simple' english sentence…"
<details><summary>显示示例代码</summary>
import retextLatin from 'retext-latin' import retextSmartyPants from 'retext-smartypants' import retextStringify from 'retext-stringify' import {unified} from 'unified' const file = await unified() .use(retextLatin) .use(retextSmartyPants) .use(retextStringify) .process("He said, \"A 'simple' english sentence. . .") console.log(String(file))
</details>

通过另一个插件,你可以检查自然语言:

输入

Where can I find an ATM machine?

输出

1:21-1:32 warning Unexpected redundant `ATM machine`, expected `ATM` atm retext-redundant-acronyms ⚠ 1 warning
<details><summary>显示示例代码</summary>
import retextEnglish from 'retext-english' import retextRedundantAcronyms from 'retext-redundant-acronyms' import retextStringify from 'retext-stringify' import {unified} from 'unified' import {reporter} from 'vfile-reporter' const file = await unified() .use(retextEnglish) .use(retextRedundantAcronyms) .use(retextStringify) .process('Where can I find an ATM machine?') console.log(reporter(file))
</details>

…你还可以创建自己的插件。

retext 可以用于许多不同的用途。unified 是使用 AST 转换内容的核心项目。retext 为 unified 添加了对自然语言的支持。nlcst 是 retext 使用的自然语言 AST。

这个 GitHub 仓库是一个 monorepo,包含以下包:

我什么时候应该使用它?

如果你的内容是英语(或荷兰语),建议使用 unifiedretext-english(或 retext-dutch)以及 retext-stringify。否则,如果你的内容是其他拉丁文字语言,请使用 retext

插件

retext 插件处理自然语言。你可以从众多现有插件中选择。以下是三种寻找插件的好方法:

一些插件由我们在 @retextjs 组织中维护,而其他插件则由其他人维护。任何人都可以制作 retext 插件,所以在选择是否在项目中包含依赖项时,请务必仔细评估 retext 插件的质量。

类型

retext 组织和整个 unified 集体完全使用 TypeScript 进行类型标注。nlcst 的类型定义可在 @types/nlcst 中找到。

为了使 TypeScript 正常工作,为插件添加类型定义很重要。例如:

/** * @typedef {import('nlcst').Root} Root */ /** * @typedef Options * 配置(可选)。 * @property {boolean | null | undefined} [someField] * 某个选项。 */ /** * 我的插件。 * * @param {Options | null | undefined} [options] * 配置(可选)。 * @returns * 转换函数。 */ export function myRetextPluginAcceptingOptions(options) { /** * @param {Root} tree * 树。 * @param {VFile} file * 文件。 * @returns {undefined} * 无返回值。 */ return function (tree, file) { // 执行操作。 } }

兼容性

unified 集体维护的项目与维护版本的 Node.js 兼容。

当我们发布新的主要版本时,我们会停止对不再维护的 Node.js 版本的支持。这意味着我们尽量保持当前发布线与 Node.js 16 兼容。

贡献

请查看 retextjs/.github 中的 contributing.md 以了解如何开始。查看 support.md 以获取帮助的方法。

本项目有行为准则。通过与此仓库、组织或社区互动,你同意遵守其条款。

有关如何提交安全报告的信息,请参阅我们的安全政策

赞助

通过在 OpenCollective 上赞助来支持这项工作并回馈社区!

<table> <tr valign="middle"> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://vercel.com">Vercel</a><br><br> <a href="https://vercel.com"><img src="https://avatars1.githubusercontent.com/u/14985020?s=256&v=4" width="128"></a> </td> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://motif.land">Motif</a><br><br> <a href="https://motif.land"><img src="https://avatars1.githubusercontent.com/u/74457950?s=256&v=4" width="128"></a> </td> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://www.hashicorp.com">HashiCorp</a><br><br> <a href="https://www.hashicorp.com"><img src="https://avatars1.githubusercontent.com/u/761456?s=256&v=4" width="128"></a> </td> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://www.gitbook.com">GitBook</a><br><br> <a href="https://www.gitbook.com"><img src="https://avatars1.githubusercontent.com/u/7111340?s=256&v=4" width="128"></a> </td> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://www.gatsbyjs.org">Gatsby</a><br><br> <a href="https://www.gatsbyjs.org"><img src="https://avatars1.githubusercontent.com/u/12551863?s=256&v=4" width="128"></a> </td> </tr> <tr valign="middle"> </tr> <tr valign="middle"> <td width="20%" align="center" rowspan="2" colspan="2"> <a href="https://www.netlify.com">Netlify</a><br><br> <!--OC有更清晰的图像--> <a href="https://www.netlify.com"><img src="https://yellow-cdn.veclightyear.com/835a84d5/7bdd4c1e-3731-4be0-9008-0c72a2967dec.png" width="128"></a> </td> <td width="10%" align="center"> <a href="https://www.coinbase.com">Coinbase</a><br><br> <a href="https://www.coinbase.com"><img src="https://avatars1.githubusercontent.com/u/1885080?s=256&v=4" width="64"></a> </td> <td width="10%" align="center"> <a href="https://themeisle.com">ThemeIsle</a><br><br> <a href="https://themeisle.com"><img src="https://avatars1.githubusercontent.com/u/58979018?s=128&v=4" width="64"></a> </td> <td width="10%" align="center"> <a href="https://expo.io">Expo</a><br><br> <a href="https://expo.io"><img src="https://avatars1.githubusercontent.com/u/12504344?s=128&v=4" width="64"></a> </td> <td width="10%" align="center"> <a href="https://boostnote.io">Boost Note</a><br><br> <a href="https://boostnote.io"><img src="https://yellow-cdn.veclightyear.com/835a84d5/24ad09be-b322-4d59-ac2b-895f0cbf5e41.png" width="64"></a> </td> <td width="10%" align="center"> <a href="https://markdown.space">Markdown Space</a><br><br> <a href="https://markdown.space"><img src="https://yellow-cdn.veclightyear.com/835a84d5/f6fec09a-b475-44bf-b06e-dcf7f6ce40ec.png" width="64"></a> </td> <td width="10%" align="center"> <a href="https://www.holloway.com">Holloway</a><br><br> <a href="https://www.holloway.com"><img src="https://avatars1.githubusercontent.com/u/35904294?s=128&v=4" width="64"></a> </td> <td width="10%"></td> <td width="10%"></td> </tr> <tr valign="middle"> <td width="100%" align="center" colspan="8"> <br> <a href="https://opencollective.com/unified"><strong>您?</strong></a> <br><br> </td> </tr> </table>

许可证

MIT © Titus Wormer

<!-- 定义 -->

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多