Giter Club home page Giter Club logo

go-freeling's Introduction

go-freeling

Natural Language Processing in GO

This is a partial port of Freeling 3.1 (http://nlp.lsi.upc.edu/freeling/).

License is GPL to respect the License model of Freeling.

This is the list of features already implemented:

  • Text tokenization
  • Sentence splitting
  • Morphological analysis
  • Suffix treatment, retokenization of clitic pronouns
  • Flexible multiword recognition
  • Contraction splitting
  • Probabilistic prediction of unknown word categories
  • Named entity detection
  • PoS tagging
  • Chart-based shallow parsing
  • Named entity classification (With an external library MITIE - https://github.com/mit-nlp/MITIE)
  • Rule-based dependency parsing

How to use it:

go build gofreeling.go

./gofreeling

(http server listens on default port 9999 - port can be changed in conf/gofreeling.toml file)

To process a page:

HTTP GET: http://localhost:9999/analyzer?url=COPY HERE AN URL

or Use as API endpoint:

HTTP POST:

http://localhost:9999/analyzer-api

{
    content: 'Text you want to analyze'
}

Response is a self-explaining json

Usage as package: (example)

package main

import (
	. "./lib"
	. "./models"
	"fmt"
	"encoding/json"
)

func main() {
	document := new(DocumentEntity)
	analyzer := NewAnalyzer()
	document.Content = "Hello World"
	output := analyzer.AnalyzeText(document)
	
	js := output.ToJSON()
	b, err := json.Marshal(js)
	if err != nil {
		panic(err)
	}

	fmt.Println(string(b))
}

TODO:

  • clean code
  • add comments
  • add tests
  • implement WordNet-based sense annotation and disambiguation

Linguistic Data to run the server can be download here (English only):

https://www.dropbox.com/s/fwwvfxp2s7dydet/data.zip

WordNet Database to add annotation (place it inside ./data folder)

http://wordnetcode.princeton.edu/3.0/WNdb-3.0.tar.gz

go-freeling's People

Contributors

advancedlogic avatar drankou avatar dullgiulio avatar i0n avatar shugyousha avatar vitaliiborodii avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.