Skip to content

nlp-compromise/it-compromise

Repository files navigation

it-compromise
modesta elaborazione del linguaggio naturale
npm install it-compromise
work-in-progress! • lavori in corso!
see: frenchgermanspanishenglish

it-compromise è un port di compromise in italiano.

L'obiettivo di questo progetto è fornire un tagger POS piccolo, di base e basato su regole.

(this project is a small, basic, rules-based POS tagger!)

import nlp from 'it-compromise'

let doc = nlp(`con l'autoradio sempre nella mano destra`)
doc.match('#Noun').json()
// [{text:'autoradio'}, {text:'mano'}]

o lato cliente:

<script src="https://unpkg.com/it-compromise"></script>
<script>
  let txt = 'un canarino sopra la finestra'
  let doc = itCompromise(txt) // window.itCompromise
  console.log(doc.json())
  // { text:'un canarino...', terms:[ ... ] }
</script>

API

it-compromise includes all methods of compromise/one:

Clicca per vedere

Output
  • .text() - return the document as text
  • .json() - return the document as data
  • .debug() - pretty-print the interpreted document
  • .out() - a named or custom output
  • .html({}) - output custom html tags for matches
  • .wrap({}) - produce custom output for document matches
Utils
  • .found [getter] - is this document empty?
  • .docs [getter] get term objects as json
  • .length [getter] - count the # of characters in the document (string length)
  • .isView [getter] - identify a compromise object
  • .compute() - run a named analysis on the document
  • .clone() - deep-copy the document, so that no references remain
  • .termList() - return a flat list of all Term objects in match
  • .cache({}) - freeze the current state of the document, for speed-purposes
  • .uncache() - un-freezes the current state of the document, so it may be transformed
Accessors
Match

(match methods use the match-syntax.)

  • .match('') - return a new Doc, with this one as a parent
  • .not('') - return all results except for this
  • .matchOne('') - return only the first match
  • .if('') - return each current phrase, only if it contains this match ('only')
  • .ifNo('') - Filter-out any current phrases that have this match ('notIf')
  • .has('') - Return a boolean if this match exists
  • .before('') - return all terms before a match, in each phrase
  • .after('') - return all terms after a match, in each phrase
  • .union() - return combined matches without duplicates
  • .intersection() - return only duplicate matches
  • .complement() - get everything not in another match
  • .settle() - remove overlaps from matches
  • .growRight('') - add any matching terms immediately after each match
  • .growLeft('') - add any matching terms immediately before each match
  • .grow('') - add any matching terms before or after each match
  • .sweep(net) - apply a series of match objects to the document
  • .splitOn('') - return a Document with three parts for every match ('splitOn')
  • .splitBefore('') - partition a phrase before each matching segment
  • .splitAfter('') - partition a phrase after each matching segment
  • .lookup([]) - quick find for an array of string matches
  • .autoFill() - create type-ahead assumptions on the document
Tag
  • .tag('') - Give all terms the given tag
  • .tagSafe('') - Only apply tag to terms if it is consistent with current tags
  • .unTag('') - Remove this term from the given terms
  • .canBe('') - return only the terms that can be this tag
Case
Whitespace
  • .pre('') - add this punctuation or whitespace before each match
  • .post('') - add this punctuation or whitespace after each match
  • .trim() - remove start and end whitespace
  • .hyphenate() - connect words with hyphen, and remove whitespace
  • .dehyphenate() - remove hyphens between words, and set whitespace
  • .toQuotations() - add quotation marks around these matches
  • .toParentheses() - add brackets around these matches
Loops
  • .map(fn) - run each phrase through a function, and create a new document
  • .forEach(fn) - run a function on each phrase, as an individual document
  • .filter(fn) - return only the phrases that return true
  • .find(fn) - return a document with only the first phrase that matches
  • .some(fn) - return true or false if there is one matching phrase
  • .random(fn) - sample a subset of the results
Insert
Transform
Lib

(these methods are on the main nlp object)

Numeri

può analizzare e generare numeri scritti

let doc = nlp('ne ho milleduecentosessantasette euro')
doc.numbers().minus(15)
doc.text()
// 'ne ho milleduecentocinquantadue euro'

Lemmatizzazione

può coniugare parole radice

let doc = nlp('Ho guidato al negozio')
doc.compute('root')
doc.has('{guidare} al #Noun')
//true

Contribuire

per favore unisciti per aiutare! - please join to help! help with first PR1

git clone https://github.com/nlp-compromise/it-compromise.git
cd it-compromise
npm install
npm test
npm watch

Fonti

Guarda anche:

MIT