GithubHelp home page GithubHelp logo

dtan3847 / ve Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kimtaro/ve

0.0 0.0 0.0 316 KB

A linguistic framework that's easy to use.

Home Page: http://kimtaro.github.com/ve

License: MIT License

Ruby 79.08% HTML 0.88% JavaScript 1.41% Java 18.64%

ve's Introduction

Ve

A linguistic framework for anyone. No degree required.

Read all about it on kimtaro.github.com/ve.

Build Status

Getting Started

Ve relies on the FreeLing and MeCab language parsers. You must install FreeLing for English or MeCab for Japanese or both.

Installation instructions for FreeLing can be found here.

Installation instruction for MeCab can be found here.

Installing with HomeBrew

If you are using OSX, you can easily install FreeLing and MeCab with HomeBrew.

$ brew install freeling
$ brew install mecab-ipadic

Building the Gem

You can build the Ve gem with the following:

$ gem build ve.gemspec

To install the newly built gem:

$ gem install ve-<version>.gem

Be sure to substitute <version> with the version of the newly built gem, for example ve-0.0.3.gem.

Ruby

require 've'
words = Ve.in(:en).words('I like melons.')
# => [#<Ve::Word:0x8ee00cc @word="I", @lemma="i", @part_of_speech=Ve::PartOfSpeech::Pronoun, @tokens=[{:raw=>"I i PRP 1", :type=>:parsed, :literal=>"I", :lemma=>"i", :pos=>"PRP", :accuracy=>"1", :characters=>0..0}], @extra={:grammar=>:personal}, @info={}>, #<Ve::Word:0x8edff28 @word="like", @lemma="like", @part_of_speech=Ve::PartOfSpeech::Preposition, @tokens=[{:raw=>"like like IN 0.815649", :type=>:parsed, :literal=>"like", :lemma=>"like", :pos=>"IN", :accuracy=>"0.815649", :characters=>2..5}], @extra={:grammar=>nil}, @info={}>, #<Ve::Word:0x8edfe24 @word="melons", @lemma="melon", @part_of_speech=Ve::PartOfSpeech::Noun, @tokens=[{:raw=>"melons melon NNS 1", :type=>:parsed, :literal=>"melons", :lemma=>"melon", :pos=>"NNS", :accuracy=>"1", :characters=>7..12}], @extra={:grammar=>:plural}, @info={}>, #<Ve::Word:0x8edfcbc @word=".", @lemma=".", @part_of_speech=Ve::PartOfSpeech::Symbol, @tokens=[{:raw=>". . Fp 1", :type=>:parsed, :literal=>".", :lemma=>".", :pos=>"Fp", :accuracy=>"1", :characters=>13..13}], @extra={:grammar=>nil}, @info={}>]

words.collect(&:lemma) # => ["i", "like", "melon", "."]
words.collect(&:part_of_speec) # => [Ve::PartOfSpeech::Pronoun, Ve::PartOfSpeech::Preposition, Ve::PartOfSpeech::Noun, Ve::PartOfSpeech::Symbol]

Javascript

<script type="text/javascript" charset="utf-8" src="ve.js"></script>
<script type="text/javascript" charset="utf-8">
  new Ve('ja').words('ビールがおいしかった', function(words) {
    // [{"_class":"Word","word":"ビール","lemma":"ビール","part_of_speech":"noun","tokens":[{"raw":"ビール\t名詞,一般,*,*,*,*,ビール,ビール,ビール","type":"parsed","literal":"ビール","pos":"名詞","pos2":"一般","pos3":"*","pos4":"*","inflection_type":"*","inflection_form":"*","lemma":"ビール","reading":"ビール","hatsuon":"ビール","characters":"0..2"}],"extra":{"reading":"ビール","transcription":"ビール","grammar":null},"info":{"reading_script":"kata","transcription_script":"kata"}},{"_class":"Word","word":"が","lemma":"が","part_of_speech":"postposition","tokens":[{"raw":"が\t助詞,格助詞,一般,*,*,*,が,ガ,ガ","type":"parsed","literal":"が","pos":"助詞","pos2":"格助詞","pos3":"一般","pos4":"*","inflection_type":"*","inflection_form":"*","lemma":"が","reading":"ガ","hatsuon":"ガ","characters":"3..3"}],"extra":{"reading":"ガ","transcription":"ガ","grammar":null},"info":{"reading_script":"kata","transcription_script":"kata"}},{"_class":"Word","word":"おいしい","lemma":"おいしい","part_of_speech":"adjective","tokens":[{"raw":"おいしい\t形容詞,自立,*,*,形容詞・イ段,基本形,おいしい,オイシイ,オイシイ","type":"parsed","literal":"おいしい","pos":"形容詞","pos2":"自立","pos3":"*","pos4":"*","inflection_type":"形容詞・イ段","inflection_form":"基本形","lemma":"おいしい","reading":"オイシイ","hatsuon":"オイシイ","characters":"4..7"}],"extra":{"reading":"オイシイ","transcription":"オイシイ","grammar":null},"info":{"reading_script":"kata","transcription_script":"kata"}}]

    for ( i in words ) {
      var word = words[i];
      console.log(word.lemma + "/" + word.part_of_speech)
    }

    // ビール/noun
    // が/postposition
    // おいしい/adjective
  });
</script>
dotnet add package luojunyuan.Ve.DotNet --version 5.0.0
Install-Package luojunyuan.Ve.DotNet -Version 5.0.0

var tagger = MeCabTagger.Create();

foreach (var word in tagger.ParseToNodes("ビールがおいしかった").ParseVeWords())
{
    Console.WriteLine($"{word.PartOfSpeech} {word.Lemma}");
}
// 名詞 ビール
// 助詞 が
// 形容詞 おいしい

Structure

  • Ve::LocalInterface - Main interface that gives access to functionality in providers that exist locally
  • Ve::XInterface - Allows for different ways of accessing Ve providers. Locally, through an HTTP API, binary protocol or whatever
  • Ve::Manager - Keeps track of providers and what they can do
  • Ve::Provider::X - Talks to the underlying parser
  • Ve::Parse::X - Takes the output from the Provider and turns it into functions the end user can use

Todo

  • Expose more through the sinatra server
  • Alias lemma to base, so people don't need to know what lemmas are
  • Break out into separate projects for each component. Ve-ruby, Ve-js.
  • Better UTF-8 handling for Freeling
  • See all the TODO's in the code

License

(c) Kim Ahlström 2011-2020

This is under the MIT license.

ve's People

Contributors

kimtaro avatar shirakaba avatar colstrom avatar birkirb avatar dependabot[bot] avatar luojunyuan avatar fasiha avatar josefalcon avatar reline avatar swesterveld avatar vietqhoang 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.