我构建了一个免费 Hemingway Editor 替代品,可在浏览器中运行

发布: (2026年3月7日 GMT+8 12:33)
11 分钟阅读
原文: Dev.to

Source: Dev.to

抱歉,我目前无法直接访问外部链接获取文章内容。请您把需要翻译的文本粘贴在这里,我会按照要求保留源链接并将内容翻译成简体中文。

Source:

可读性评分存在问题

大多数写作工具只使用单一公式——通常是 Flesch‑Kincaid——来检查你的文本,并给出一个分数。这个分数只是一个猜测。不同的公式衡量的因素不同(音节数、词汇熟悉度、句子长度),它们对同一篇文本的评估常常相差 2–4 个年级

我想要一个使用多种公式、在浏览器中运行且不需要将文本上传到服务器、并提供多个指标的工具。找不到合适的,于是我自己做了一个。完整披露: 我是 ProseScore 和为其提供动力的 textlens npm 包的创建者。

单一公式的问题

Hemingway Editor 是作家中最流行的可读性工具。它会高亮复杂句子并给出年级水平。实际上,它只使用 一种 可读性公式。

为什么一种公式不够

考虑下面这句话:

“The oncologist discussed the prognosis with the patient.”

  • Flesch‑Kincaid 给出低年级水平,因为句子很短(8 个词,一个从句)。
  • Dale‑Chall —— 通过与 3,000 个常用英语单词的列表比对来检查词汇 —— 将 oncologistprognosis 标记为不熟悉的词汇。

这句话在结构上很清晰,但理解它需要专业领域知识。单一公式无法同时捕捉结构复杂性 词汇难度。

八大主要可读性公式各自使用不同的输入:

公式测量内容
Flesch‑Kincaid每词音节数、每句词数
Gunning Fog3 音节以上词汇的比例
SMOG多音节词计数(预测 100 % 理解度)
Coleman‑Liau每词字符数(不计音节)
ARI每词字符数、每句词数
Dale‑Chall与 3,000 词列表的词汇熟悉度
Linsear Write简单词与困难词的比例
Flesch Reading Ease与 FK 相同的输入,但使用不同的尺度(0–100)

当你运行全部 8 种公式并对输出年级水平的 7 种公式取平均时,就得到一个 共识年级。共识可以平滑各公式的个别偏差。如果六个公式给出 8 年级,而一个给出 13 年级,异常值很可能在测量某些非典型因素,平均值则能更好地反映整体情况。

当前工具还缺少什么

  • 隐私。 大多数可读性工具会将你的文本发送到服务器进行处理。这对于草稿博客文章来说没问题,但对法律合同、内部备忘录或患者健康记录就会有问题。文本应保留在本机上。
  • 不仅仅是可读性。 年级水平告诉你文本阅读难度,但它并不能说明语气是否恰当、哪些关键词占主导,或文本是否对搜索引擎友好。作者和编辑需要将这些信号一起获取,而不是分散在不同工具中。
  • 定价。 Hemingway Editor 根据套餐收取 $8–$170 / 月。Grammarly 起价为 $12 / 月。这些工具将语法检查与可读性分析捆绑在一起,对某些用户来说是合理的。但如果你只想要可读性分析,就会付出过高费用。

Source:

ProseScore 工作原理

ProseScore 是一个网页应用。你粘贴文本(或上传文件),它会返回:

  • 8 项可读性评分 并给出统一的年级水平
  • 情感分析(正面/负面/中性及置信度)
  • 关键词提取(按频率和相关性排序的热门词)
  • SEO 评分(关键词密度、标题结构、元信息评估)
  • 基础统计(字数、句子数、段落数、阅读时间)

定价

等级价格功能
免费$0Flesch‑Kincaid、字/句/段统计、阅读时间
专业版$3.99 / 月 或 $19.99 一次性购买所有 8 种公式、统一年级、情感分析、关键词、SEO 以及更多功能

所有操作都在浏览器中完成。文本不会离开页面。没有后端服务器处理你的内容。分析引擎是页面打开时加载的 JavaScript 包。

技术栈

ProseScore 基于 textlens,这是我为文本分析编写的开源 npm 包。textlens 没有任何依赖,使用 TypeScript 实现了全部 8 种可读性公式、情感分析、关键词提取以及 SEO 评分。

在网页应用中,textlens 被打包为 IIFE(立即调用函数表达式),并挂载到 window.textlens

  • 页面大小:约 46 KB
  • textlens 引擎包大小:约 145 KB
  • **总重量:**不足 200 KB —— 没有框架,也没有运行时构建步骤。

架构图

User pastes text

JavaScript calls textlens.readability(text)

textlens.sentiment(text)

textlens.keywords(text)

textlens.seo(text, { keyword })

Results rendered to DOM

Nothing leaves the browser

所有分析都在主线程同步完成。对于典型的博客文章和稿件(不足 10 000 字),分析耗时 50 毫秒以内。不需要使用 Web Workers。

为什么使用 IIFE 而不是 ESM

textlens 为 Node.js 和打包工具用户发布 ESM 和 CommonJS 构建。对于 无构建步骤 的独立网页应用,IIFE 是务实的选择:只需一个 <script> 标签,一个全局变量,且没有模块解析开销。浏览器在首次加载后会缓存它。

共识评分实现

共识等级是对 7 种公式输出(不包括 Flesch Reading Ease,它使用 0–100 的尺度而非年级水平)的平均值。每个公式都会返回一个年级;共识就是它们的算术平均值,四舍五入保留一位小数。

import { readability } from 'textlens';

const result = readability(sampleText);
console.log(result.consensusGrade);
// e.g., 8.3 (average of FK, Fog, SMOG, CLI, ARI, DC, LW)

这与学术可读性研究中使用的方法相同。没有单一公式是“正确”的。共识在不同文本类型之间比任何单独的分数都更稳定。

隐私

所有处理均在 client‑side 进行。首次页面加载后不再发起网络请求,因此您的文本永远不会离开您的设备。这使得 ProseScore 适用于法律合同、内部备忘录或患者健康记录等敏感文档。

架构

ProseScore 不收集任何用户数据。没有分析脚本、跟踪像素,也没有 cookie(除存储在 localStorage 中的 Pro‑license 令牌外)。您粘贴的文本从未发送网络请求。

Pro 许可证验证通过签名的 JWT 完成。用户通过 Stripe 购买后会收到许可证密钥。应用在本地验证密钥结构,然后一次性调用 Cloudflare Worker 进行验证,以确认密钥有效。随后,令牌存储在 localStorage 中,应用即可完全离线运行。

这不是隐私政策的声明,而是架构上的约束。应用没有接受文本输入的端点,因此您的文本无处可去。

暗色模式

Hemingway Editor 没有暗色模式。虽然这看似微不足道,但自 2019 年起,夜间工作或偏好暗色界面的作者一直在请求此功能。

ProseScore 支持明暗两种主题,可通过按钮切换。该偏好会保存在 localStorage 中。

适用人群

ProseScore 适用于所有写作并希望在不订阅语法工具的情况下了解文本可读性的人。

  • 技术写作者 – 检查文档是否符合目标年级水平
  • 内容营销人员 – 优化博客文章的可读性和 SEO
  • 医疗传播者 – 核实患者材料是否符合识字指南(此处以 SMOG 为标准)
  • 开发者 – 想要获取原始数据而不需要语法建议

如果你需要语法检查,ProseScore 并不是合适的工具。它只做一件事——文本分析——并且比其他替代方案更深入。

试一试

ProseScore 已上线于 . 免费层提供以下功能:

  • Flesch‑Kincaid 评分
  • 单词计数
  • 阅读时间

底层引擎的源代码托管在 GitHub: .

如果您想在自己的项目中集成可读性评分,textlens 包可在 npm 上获取,且没有任何依赖: .

0 浏览
Back to Blog

相关文章

阅读更多 »