SimpleNetNlp

.NET NLP library

MIT License

Stars
46

SimpleNetNlp NuGet Made in Ukraine

SimpleNetNlp is a simple, C#-way wrapper for Stanford CoreNLP that based on Stanford.NLP.NET.

Quick Start

Just install the main SimpleNetNlp package and the model packages you need...

    Install-Package SimpleNetNlp
    Install-Package SimpleNetNlp.Models.PosTagger

...and use it.

using SimpleNetNlp;
...
var sentence = new Sentence("Your sentence should go here.");
var words = sentence.Words;
var lemmas = sentence.Lemmas();
var pos = sentence.PosTags();

Features

  1. Simple. SimpleNetNlp is based on Simple CoreNLP API that provides a simple API for users who do not need a lot of customization. If you want to start working with NLP as fast and easily as possible, and do not care about the details of the behaviors of the algorithms, this package is perfect for you.
  2. C#-way. SimpleNetNlp provides a 100% C# API without Java classes. Use the Force of LINQ and other C# magic, Luke!
  3. Clean Namespaces.. IKVM.NET and Stanford.NLP.NET are delivered as content, so available namespaces in your project aren't littered with Java namespaces.
  4. Model Packages. The large 'Stanford CoreNLP Models' Java package is split into small Nuget packages, one per feature. Just install individual models for your task.

Versioning

The first three digits of the version of any package match the version of Stanford CoreNLP in use. The last fourth digit is used for numbering the own package releases. With the transition to the new version of Stanford CoreNLP, this digit is reset to 0. E.g., v.3.8.0.7 is the 8th release with Stanford CoreNLP v.3.8.0 used.

Since only one digit is used for the library's own releases, its change can mean major changes as well. When updating the used library version, please always refer to the release notes.

The first three digits of the installed main SimpleNetNlp package and model packages must match (ie, use the same version of Stanford CoreNLP). The fourth digits may not match because each package can be released and updated separately, but for model packages among releases with the same three digits, it is recommended to use the versions with the highest fourth digits.

NLP Methods <-> Model Packages

Different NLP features require different model packages to be installed, in addition to the main SimpleNetNlp package.

All properties and methods of standard C# interfaces (like Equals() or ToString()) don't require additional model packages - you can start using them immediately without any worries.

When you call a method without installing the required model packages, the SimpleNetNlp.Exceptions.MissingModelException exception will be thrown. The model-dependent APIs are listed below. In addition, each method has a description of the required model packages in XML-doc.

Document class

Method Packages
Coref() NugetNugetNugetNugetNugetNuget

Sentence class

Method Packages
Lemmas() Nuget
NerTags() NugetNuget
PosTags() Nuget
OpenIe() NugetNugetNuget
Governors() NugetNuget
IncomingDependencyLabels() NugetNuget
Sentiment() NugetNuget
Mentions() NugetNuget
Kbp() NugetNugetNugetNugetNugetNuget
Coref() NugetNugetNugetNugetNugetNuget
Operators() NugetNuget
NaturalLogicPolarities() NugetNuget

SentenceAlgorithms class

Method Packages
HeadOfSpan() NugetNuget
KeyphraseSpans() Nuget
Keyphrases() Nuget
DependencyPathBetween() NugetNuget
Badges
Extracted from project README
NuGet Made in Ukraine Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget Nuget