npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

singularity-tagger

v1.0.3

Published

Portuguese POS-Tagger writen in core Node.JS, specially designed to work with streams.

Downloads

30

Readme

Singularity-POS-Tagger

Portuguese POS-Tagger writen in core Node.JS, without any external modules.

I developed this library to use as base for another personal project. There are planing of room to improve accuracy with heuristics and twiks.

It's designed specially for Node.Js Streams, which can improve speed and memory use when working on servers or large corpus of data. Nonethless, one can still use a built in method to work with strings.

There is no need to pre-processing the corpus, there is a built in function that cleans everything before the POS classification.

Because the nature of JavaScript be single threaded and NLP jobs are usually very resource intense, almost everything in this package runs asynchronous.

Installation

In a Node.JS environment you can run on your terminal.

npm i singularity-tagger

What is a POS Tagger?

A POS Tagger or Part of Speach Tagger is a piece of software that analyzes a corpus and taggs the words with it's respective gramatical class.

Applications of POS Taggers

  • Sentiment analysis
  • Question answering
  • Word sense disambiguation

Basically every Natural Language Processing task uses a POS tagger as sub task.

Implementation

  • Model trained on Mac-Morpho's anotated corpus available on: http://nilc.icmc.usp.br/macmorpho/

  • Stochastic algorithm used:

    • Hidden Markov Model (HMM) with Viterbi Algorithm
  • Algorithm implemented based on Stanford's document available on: https://web.stanford.edu/~jurafsky/slp3/8.pdf

How to use

Singularity is designed to be used on async functions or as ECMS6 promise. There are two main methods available:

  • analyzeString
    • receive as parameter one string and returns an array with normalized words along side the tags of the string
  • analyzeStream
    • receive as parameter an input stream and output stream and returns to the output stream the normalized text along side the tags

Code example

  • Inside Asynchronous functions:
    • analyzeString:
      • const PosTagger = require("singularity-tagger")

        ...

        const tagger = await PosTagger()

        const taggedArray = await tagger.analyzeString(string)

        console.log(await taggedArray)

    • analyzeStream:
      • const PosTagger = require("singularity-tagger")

        ...

        const tagger = await PosTagger()

        await tagger.analyzeStream(process.stdin, process.stdout) // can be any stream interface

  • Inside Synchronous functions:
    • analyzeString:
      • const PosTagger = require("singularity-tagger")

        ...

        PosTagger().then((tagger)=> tagger.analyzeString(string)).then(resp=> console.log()).catch(err=>console.log(err))

    • analyzeStream:
      • const PosTagger = require("singularity-tagger")

        ...

        PosTagger().then((tagger)=> tagger.analyzeStream(inputStream, outputStream)).catch(err=>console.log(err))

Tags meaning table

image info