Download the PHP package olcaytaner/morphologicalanalysis without Composer
On this page you can find all versions of the php package olcaytaner/morphologicalanalysis. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download olcaytaner/morphologicalanalysis
More information about olcaytaner/morphologicalanalysis
Files in olcaytaner/morphologicalanalysis
Package morphologicalanalysis
Short Description Morphological analysis library
License GPL-3.0-or-later
Informations about the package morphologicalanalysis
Morphological Analysis
Morphology
In linguistics, the term morphology refers to the study of the internal structure of words. Each word is assumed to consist of one or more morphemes, which can be defined as the smallest linguistic unit having a particular meaning or grammatical function. One can come across morphologically simplex words, i.e. roots, as well as morphologically complex ones, such as compounds or affixed forms.
Batı-lı-laş-tır-ıl-ama-yan-lar-dan-mış-ız west-With-Make-Caus-Pass-Neg.Abil-Nom-Pl-Abl-Evid-A3Pl ‘It appears that we are among the ones that cannot be westernized.’
The morphemes that constitute a word combine in a (more or less) strict order. Most morphologically complex words are in the ”ROOT-SUFFIX1-SUFFIX2-...” structure. Affixes have two types: (i) derivational affixes, which change the meaning and sometimes also the grammatical category of the base they are attached to, and (ii) inflectional affixes serving particular grammatical functions. In general, derivational suffixes precede inflectional ones. The order of derivational suffixes is reflected on the meaning of the derived form. For instance, consider the combination of the noun göz ‘eye’ with two derivational suffixes -lIK and -CI: Even though the same three morphemes are used, the meaning of a word like gözcülük ‘scouting’ is clearly different from that of gözlükçü ‘optician’.
Dilbaz
Here we present a new morphological analyzer, which is (i) open: The latest version of source codes, the lexicon, and the morphotactic rule engine are all available here, (ii) extendible: One of the disadvantages of other morphological analyzers is that their lexicons are fixed or unmodifiable, which prevents to add new bare-forms to the morphological analyzer. In our morphological analyzer, the lexicon is in text form and is easily modifiable, (iii) fast: Morphological analysis is one of the core components of any NLP process. It must be very fast to handle huge corpora. Compared to other morphological analyzers, our analyzer is capable of analyzing hundreds of thousands words per second, which makes it one of the fastest Turkish morphological analyzers available.
The morphological analyzer consists of five main components, namely, a lexicon, a finite state transducer, a rule engine for suffixation, a trie data structure, and a least recently used (LRU) cache.
In this analyzer, we assume all idiosyncratic information to be encoded in the lexicon. While phonologically conditioned allomorphy will be dealt with by the transducer, other types of allomorphy, all exceptional forms to otherwise regular processes, as well as words formed through derivation (except for the few transparently compositional derivational suffixes are considered to be included in the lexicon.
In our morphological analyzer, finite state transducer is encoded in an xml file.
To overcome the irregularities and also to accelerate the search for the bareforms, we use a trie data structure in our morphological analyzer, and store all words in our lexicon in that data structure. For the regular words, we only store that word in our trie, whereas for irregular words we store both the original form and some prefix of that word.
Simple Web Interface
Video Lectures
For Developers
You can also see Python, Java, C++, C, Swift, Cython, Js, or C# repository.
Requirements
- Php 8.4 or higher
- Git
Php
To check if you have a compatible version of Php installed, use the following command:
php -V
You can find the latest version of Php here.
Git
Install the latest version of Git.
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 MorphologicalAnalysis will be created. Or you can use below link for exploring the code:
git clone https://github.com/starlangsoftware/TurkishMorphologicalAnalysis-Php.git
Open project with PhpStorm IDE
Steps for opening the cloned project:
- Start IDE
- Select File | Open from main menu
- Choose
MorphologicalAnalysis-Phpfile - Select open as project option
- Couple of seconds, dependencies will be downloaded.
For Contibutors
composer.json file
-
autoload is important when this package will be imported.
- Dependencies should be maximum (not only direct but also indirect references should also be given), everything directly in the code should be given here.
Data files
- Add data files to the project folder. Subprojects should include all data files of the parent projects.
Php files
-
Do not forget to comment each function.
-
Function names should follow caml case.
-
Write getter and setter methods.
-
Use standard javascript test style by extending the TestCase class. Use setup when necessary.
-
Enumerated types should be declared with enum.
-
If there are multiple constructors for a class, define them as constructor1, constructor2, ..., then from the original constructor call these methods.
-
Use __toString method if necessary to create strings from objects.
- Use xmlparser package for parsing xml files.
All versions of morphologicalanalysis with dependencies
ext-intl Version *



