wink-nlp 项目介绍
项目概述
wink-nlp 是一个用 JavaScript 编写的自然语言处理(NLP)库。该项目的设计旨在让 NLP 应用的开发更加简单和快速。wink-nlp 在性能和准确性之间找到了理想的平衡,并引入了词向量支持,能够在浏览器中轻松进行深度文本分析。通过将词汇和文本表示为数值向量,wink-nlp 在语义相似性和文本分类等任务中表现出更高的准确性。
主要功能
- 丰富的 NLP 流水线:wink-nlp 提供了一整套 NLP 流水线功能,包括文本分词、句子边界检测、否定处理、情感分析、词性标注、命名实体识别和自定义实体识别等。
- 高速高效:wink-nlp 能够以超过每秒 650,000 个词元的速度处理大量原始文本,即使在低端智能手机的浏览器上也能顺畅运行。
- 多语言支持:wink-nlp 的分词器快速、无损且支持多语言。例如,可以将“¡Hola! नमस्कार! Hi! Bonjour chéri”这样的多语言文本字符串进行准确分词。
- 可视化和标记:用户可以程序化地使用 HTML 标签对标记、句子、实体等进行标记和可视化。
工具和实用程序
- BM25 向量化器:为信息检索提供强大的工具来处理文本数据。
- 相似度方法:包括余弦相似、Tversky、Sørensen-Dice 和 Otsuka-Ochiai 等方法。
- 辅助工具:提供词袋、词频表、词形还原、去停用词、否定处理等实用功能。
安装与配置
使用 npm 可以方便地安装 wink-nlp:
npm install wink-nlp --save
安装完成后,用户根据 Node.js 版本不同,需要安装相应的语言模型。例如,对于 Node.js 版本 16 或 18,推荐安装 wink-eng-lite-web-model
。
类型支持和浏览器兼容
wink-nlp 具有完整的 TypeScript 支持,并可以在 Node.js、Web 浏览器和 Deno 上运行。在 TypeScript 项目中,需要在 tsconfig.json
文件中启用 esModuleInterop
和 allowSyntheticDefaultImports
。
性能与内存需求
wink-nlp 在 M1 MacBook Pro 上进行了基准测试,能够以显著的速度和准确性处理 NLP 管道和原始文本。在文本处理任务中,具有较低的内存需求,处理如《印度的历史 卷一》这样的长文本峰值内存需求低于 80MB。
关于 winkJS
WinkJS 是一个开放源码的 NodeJS 软件包家族,专注于自然语言处理、机器学习和统计分析。其文档详尽,方便进行生产级解决方案的开发,并确保代码的高可靠性。