nuve 2.0.0

dotnet add package nuve --version 2.0.0
                    
NuGet\Install-Package nuve -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nuve" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="nuve" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="nuve" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add nuve --version 2.0.0
                    
#r "nuget: nuve, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package nuve@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=nuve&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=nuve&version=2.0.0
                    
Install as a Cake Tool

nuve

Nuve is a Natural Language Processing Library for Turkish. Currently it supports:

  • Morphologic analysis (35K word per second on a i5 2.8 GHz 64 bit machine)
  • Morphologic generation
  • Stemming
  • Sentence (segmentation) boundary detection
  • N-gram extraction

Morphologic Analysis is demonstrated here: http://nuvedemo.apphb.com

Morphologic Generation is demonstrated here: http://fiilcek.apphb.com

Use cases for the above tasks are as follows:

Morphologic Analysis and Stemming
Language tr = LanguageFactory.Create(LanguageType.Turkish);

IList<Word> solutions = tr.Analyze("yolsuzu");

foreach (var solution in solutions)
{
    Console.WriteLine("\t{0}", solution);
    Console.WriteLine("\toriginal:{0} stem:{1}\n",
    solution.GetSurface(),
    solution.GetStem().GetSurface()); //Stemming
}

Output:

	yol/ISIM IY_SIFAT_sUz IC_SAHIPLIK_O_(s)U
	original:yolsuzu stem:yolsuz root:yol/ISIM

	yol/ISIM IY_SIFAT_sUz IC_HAL_BELIRTME_(y)U
	original:yolsuzu stem:yolsuz root:yol/ISIM

####Morphologic Generation


//Method 1: Specify the ids of the morphemes that constitute the word
var word1 = tr.Generate("kitap/ISIM", "IC_COGUL_lAr", "IC_SAHIPLIK_BEN_(U)m",
"IC_HAL_BULUNMA_DA","IC_AITLIK_ki", "IC_COGUL_lAr", "IC_HAL_AYRILMA_DAn");

//Method 2: Specify the string representation of the analysis of the word.
string analysis = "kitap/ISIM IC_COGUL_lAr IC_SAHIPLIK_BEN_(U)m";
var word2 = tr.GetWord(analysis);

Console.WriteLine(word1.GetSurface());
Console.WriteLine(word2.GetSurface());

Output:

	kitaplarımdakilerden
	kitaplarım

Use the public bool AddSuffix(Suffix suffix, Language language) method in order to make sure that the word is still valid (for Turkish) after adding the suffix.

Root root = tr.GetRootsHavingSurface("gel").First(); //A Turkish verb root 

var word = new Word(root);

//In Turkish the plural suffix "IC_COGUL_lAr" can not be appended to verbs!
if(!word.AddSuffix(tr.GetSuffix("IC_COGUL_lAr"), tr))
{
    Console.WriteLine("Adding the suffix IC_COGUL_lAr after a verb is not valid!");
    Console.WriteLine(word.GetSurface()); //prints "gel"
}

####Sentence Segmentation:

var paragraph = "Prof. Dr. Ahmet Bey 1.6 oranında artış var dedi 2. kez. E-posta adresi ahmet.bilir@prof.dr imiş! Doğru mu?";
ITokenizer tokenizer = new ClassicTokenizer(true);
SentenceSegmenter segmenter = new TokenBasedSentenceSegmenter(tokenizer);
var sentences = segmenter.GetSentences(paragraph);
foreach (string sentence in sentences)
{
	Console.WriteLine(sentence);
}
N-gram Extraction:
string Text1 = "I am Sam";
string Text2 = "Sam I am";
string Text3 = "I do not like green eggs and ham";
int Unigram = 1;
int Bigram = 2;
int Trigram = 3;

var corpus = new NGramDictionary(new NGramExtractor(Unigram, Trigram));
corpus.AddSequence(Text1.Split(null).ToList());
corpus.AddSequence(Text2.Split(null).ToList());
corpus.AddSequence(Text3.Split(null).ToList());

int freq = corpus.GetFrequency("I", "am");

Add to your project

The easiest way to add Nuve in to your project is [NuGet] (http://www.nuget.org/packages/Nuve/)

In Visual Studio open [Package Manager Console] (http://docs.nuget.org/docs/start-here/using-the-package-manager-console) and run the following command:

PM> Install-Package Nuve
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 846 2/21/2023
1.5.2 9,901 7/7/2016
1.5.1 1,874 2/23/2016
1.5.0 1,845 1/4/2016
1.4.1 1,919 10/19/2015
1.4.0 1,818 10/19/2015
1.3.2 1,827 7/22/2015
1.3.1 1,959 5/8/2015
1.3.0 1,730 4/1/2015
1.2.2 2,343 12/12/2014
1.2.1 1,903 12/12/2014
1.2.0 1,903 12/12/2014
1.1.2 1,773 7/19/2014
1.1.1 1,701 7/19/2014
1.1.0 1,721 7/19/2014
1.0.4 1,785 3/16/2014
1.0.3 1,740 2/23/2014
1.0.2 1,792 2/22/2014
1.0.1 1,803 2/22/2014
1.0.0 2,099 2/22/2014