Repolode
spencermountain

spencermountain/compromise

一个 JavaScript 自然语言处理库,可做词性标注、文本模式匹配,并转换动词时态、数字等内容。

Star
12,165
Fork
668
未关闭 Issue
93
最近提交
22小时前

这是什么?

compromise 是一个面向 JavaScript 的轻量级自然语言处理库,可在浏览器和 Node.js 中运行。它将原始文本转换为结构化文档,便于识别名词、动词、数字、日期、人名和地名,并对这些内容进行读取或改写。

库提供简洁的模式匹配语法(如 '#Adjective of times')用于选取句子片段,同时支持动词转过去时、名词转复数、展开缩写、数字加减等变换操作。结果可导出为纯文本或 JSON。核心版本包含分词与词性标注,另有仅做分词的轻量入口;可选插件(如 compromise-speech 用于音节切分)可扩展功能。

该项目以英语为主,另有法语、德语、意大利语和西班牙语的配套包。

核心功能

  • 01基于 83 种标签的词性标注
  • 02简洁的匹配语法,用于选取词组
  • 03动词变位、名词复数化与时态转换
  • 04数字、金额、分数和百分比的解析与运算
  • 05缩写展开与文本规范化
  • 06插件机制,并提供仅分词的轻量版本

适用场景

  • 从文章或聊天文本中提取人名、地名和日期
  • 生成或修正英文句子,确保动词形式正确
  • 解析表单或搜索框中的数字与金额
  • 在浏览器中直接运行轻量文本分析

快速上手

  1. 1

    从 npm 安装该库

    npm install compromise
  2. 2

    导入库并对一个句子运行示例

使用前须知

  • 它并不像名字听起来那么智能,依赖有限的基于规则的判断。
  • 完整库压缩后约 250kb,对于体积敏感的项目来说较大。
  • 其他语言仅以独立项目形式提供,如 fr-compromise、de-compromise、it-compromise 和 es-compromise。

标签

常见问题

compromise 是什么?
一个 JavaScript 自然语言处理库,可做词性标注、文本模式匹配,并转换动词时态、数字等内容。 compromise 是一个面向 JavaScript 的轻量级自然语言处理库,可在浏览器和 Node.js 中运行。它将原始文本转换为结构化文档,便于识别名词、动词、数字、日期、人名和地名,并对这些内容进行读取或改写。
compromise 可以免费使用吗?用的什么许可证?
compromise 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
compromise 还在维护吗?
活跃维护中。compromise 最近一次提交是在 2026年10月19日。
compromise 适合用来做什么?
从文章或聊天文本中提取人名、地名和日期 生成或修正英文句子,确保动词形式正确 解析表单或搜索框中的数字与金额 在浏览器中直接运行轻量文本分析
compromise 怎么安装和运行?
从 npm 安装该库: npm install compromise 导入库并对一个句子运行示例
在哪里获取 compromise?
源代码和安装说明在 GitHub 上:https://github.com/spencermountain/compromise

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目