npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nlptoolkit-dictionary

v1.0.12

Published

Turkish Dictionary

Downloads

57

Readme

Turkish Dictionary

This resource is a dictionary of Modern Turkish, comprised of the definitions of over 50.000 individual entries. Each entry is matched with its corresponding synset (set of synonymous words and expressions) in the Turkish WordNet, KeNet.

The bare-forms in the lexicon consists of nouns, adjectives, verbs, adverbs, shortcuts, etc. Each bare-form appears the same in the lexicon except verbs. Since the bare-forms of the verbs in Turkish do not have the infinitive affix ‘mAk’, our lexicon includes all verbs without the infinitive affix. The bare-forms with diacritics are included in two forms, with and without diacritics. For example, noun ‘rüzgar’ appear both as ‘rüzgar’ and ‘rüzgâr’.

Special markers are included as bare-forms such as doc, s, etc.

Some compound words are included in their affixed form. For instance, ‘acemlalesi’ appears as it is, but not as ‘acemlale’.

Foreign words, especially proper noun foreign words, are included, so that the system can easily recognize them as proper nouns. For instance, the words ‘abbott’, ‘abbigail’ are example foreign proper nouns. Including foreign proper nouns, there are 19,000 proper nouns in our lexicon.

From derivational suffixes, we only include words which has taken -lI, -sIz, -CI, -lIk, and -CIlIk derivational affixes. For example, the bare-forms ‘abacı’, ‘abdallık’, ‘abdestli’ and ‘abdestlilik’, are included, since they have taken one or more derivational affixes listed above.

Each bare-form has a set of attributes. For instance, ‘abacı’ is a noun, therefore, it includes CL_ISIM attribute. Similarly, ‘abdestli’ is an adjective, which includes IS_ADJ attribute. If the bare-form has homonyms with different part of speech tags, all corresponding attributes are included.

|Name|Purpose| |---|---| |CL ISIM, CL FIIL, IS_OA|Part of speech tag(s)| |IS_DUP|Part of a duplicate form| |IS_KIS|Abbreviation, which does not obey vowel harmony while taking suffixes.| |IS_UU, IS_UUU|Does not obey vowel harmony while taking suffixes.| |IS_BILES|A portmanteau word in affixed form, such as ‘adamotu’| |IS_B_SI|A portmanteau word ending with ‘sı’, such as ‘acemlalesi’| |IS_CA|Already in a plural form, therefore can not take plural suffixes such as ‘ler’ or ‘lar’.| |IS_ST|The second consonant undergoes a resyllabification.| |IS_UD, IS_UDD, F_UD|Includes vowel epenthesis.| |IS_KG|Ends with a ‘k’, and when it is followed by a vowel-initial suffix, the final ‘k’ is replaced with a ‘g’.| |IS_SD, IS_SDD, F_SD|Final consonant gets devoiced during vowel-initial suffixation.| |F GUD, F_GUDO|The verb bare-form includes vowel reduction.| |F1P1, F1P1-NO-REF|A verb, and depending on this attribute, the verb can (or can not) take causative suffix, factitive suffix, passive suffix etc.|

Video Lectures

For Developers

You can also see Python, Cython, C++, C, Swift, Java, or C# repository.

Requirements

Node.js

To check if you have a compatible version of Node.js installed, use the following command:

node -v

You can find the latest version of Node.js here.

Git

Install the latest version of Git.

Npm Install

npm install nlptoolkit-dictionary

Download Code

In order to work on code, create a fork from GitHub page. Use Git for cloning the code to your local or below line for Ubuntu:

git clone <your-fork-git-link>

A directory called util will be created. Or you can use below link for exploring the code:

git clone https://github.com/starlangsoftware/dictionary-js.git

Open project with Webstorm IDE

Steps for opening the cloned project:

  • Start IDE
  • Select File | Open from main menu
  • Choose Dictionary-Js file
  • Select open as project option
  • Couple of seconds, dependencies will be downloaded.

Detailed Description

TxtDictionary

Dictionary is used in order to load Turkish dictionary or a domain specific dictionary. In addition, misspelled words and the true forms of the misspelled words can also be loaded.

To load the Turkish dictionary and the misspelled words dictionary,

a = TxtDictionary()

To load the domain specific dictionary and the misspelled words dictionary,

constructor(comparator: WordComparator = WordComparator.TURKISH,
            fileName: string = "turkish_dictionary.txt",
            misspelledFileName: string = "turkish_misspellings.txt")

And to see if the dictionary involves a specific word, Word getWord is used.

getWord(nameOrIndex: any): Word

TxtWord

The word features: To see whether the TxtWord class of the dictionary is a noun or not,

isNominal(): boolean

To see whether it is an adjective,

isAdjective(): boolean

To see whether it is a portmanteau word,

isPortmanteau(): boolean

To see whether it obeys vowel harmony,

notObeysVowelHarmonyDuringAgglutination(): boolean

And, to see whether it softens when it get affixes, the following is used.

rootSoftenDuringSuffixation(): boolean

SyllableList

To syllabify the word, SyllableList class is used.

constructor(word: string)

Cite

@inproceedings{yildiz-etal-2019-open,
	title = "An Open, Extendible, and Fast {T}urkish Morphological Analyzer",
	author = {Y{\i}ld{\i}z, Olcay Taner  and
  	Avar, Beg{\"u}m  and
  	Ercan, G{\"o}khan},
	booktitle = "Proceedings of the International Conference on Recent Advances in Natural Language Processing (RANLP 2019)",
	month = sep,
	year = "2019",
	address = "Varna, Bulgaria",
	publisher = "INCOMA Ltd.",
	url = "https://www.aclweb.org/anthology/R19-1156",
	doi = "10.26615/978-954-452-056-4_156",
	pages = "1364--1372",
}