Socket
Socket
Sign inDemoInstall

fasttext.wasm.js

Package Overview
Dependencies
1
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    fasttext.wasm.js

Node and Browser env supported WebAssembly version of fastText: Library for efficient text classification and representation learning.


Version published
Weekly downloads
6
increased by50%
Maintainers
1
Created
Weekly downloads
 

Changelog

Source

1.0.0

Major Changes

  • Fully features supported

Patch Changes

  • 066499b: ✨ feat: detect origin
  • 23c0257: fix: release with build
  • f619363: ✨ feat!: polish identify result
  • 431ff50: ✨ feat: init project
  • c7da426: ✨ feat: fallback scriptDirectory to root path
  • 9ff6c4b: 🐛 fix: fix lid model not found
  • f679a8a: 🐛 fix: exports in package.json
  • ae7302d: 📦 refactor: rename to identification
  • 1b9ced5: feat: polish usage
  • 9b6b99f: ✨ feat!: simplify usage
  • 30a8c33: ✨ feat: support normalizeIdentifyLang
  • b9df0f6: 🐛 fix: initial model href in constructor
  • 706521b: ✨ feat: support common usage
  • 25f8f21: 🐛 fix: dynamic import fastTextModularized
  • e03dc17: feat!: individual node and common entries

Readme

Source

fasttext.wasm.js

Node and Browser env supported WebAssembly version of fastText: Library for efficient text classification and representation learning.

NPM version Download monthly

WebAssembly version of fastText with compressed lid.176.ftz model (~900KB) and a typescript wrapper. This project focuses on cross-platform, zero-dependency and out-of-the-box.

Features

  • Written in TypeScript
  • Supported Node, Worker, Browser and Browser extension runtime
  • Integrated language identification and normalized default result, supported 176 languages
  • Significantly faster and accurate than languagedetect and franc, superior to eld and cld.

Usage

In Node.js, you should use this approach for binding js best performance.

import { getLIDModel } from 'fasttext.wasm.js'

const lidModel = await getLIDModel()
await lidModel.load()
const result = await lidModel.identify('Hello, world!')
console.log(result.alpha2) // 'en'

In others environments, use like below:

import { getLIDModel } from 'fasttext.wasm.js/common'

const lidModel = await getLIDModel()
// Default paths:
// {
//   wasmPath: '<globalThis.location.origin>/fastText/fasttext.common.wasm',
//   modelPath: '<globalThis.location.origin>/fastText/models/lid.176.ftz',
// }
await lidModel.load()
const result = await lidModel.identify('Hello, world!')
console.log(result.alpha2) // 'en'

Do not forget that download and place /fastText/fasttext.common.wasm and /fastText/models/lid.176.ftz in public root directory. You can override the default paths if necessary.

Benchmark

Dataset papluca/language-identification/test accuracy test result in Node.js runtime:

NameError RateAccuracyTotal
fastText0.020.9810000
cld0.040.9610000
eld0.060.9410000
languageDetect0.240.7610000
franc0.270.7310000

How to?

codesandbox/fasttext.wasm.js

  • Run Bench Test task for accuracy test
  • Run Bench task for benchmark test

or

  • Clone the repo
  • pnpm i
  • pnpm run build
  • cd bench
  • pnpm run test for accuracy test
  • pnpm run bench for benchmark test

Credits

References

Build & Publish

Requirements

Pay attention, add source ./emsdk_env.sh to shell profile to auto load emsdk env, and export EMSDK_QUIET=1 can be used to suppress these messages.

  • npm run build
  • npx changeset
  • npx changeset version
  • git commit
  • npx changeset publish
  • git push --follow-tags

changeset prerelease doc

License

MIT License © 2023 Yuns

Keywords

FAQs

Last updated on 05 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc