Overview

Namespaces

  • PHP
  • Sastrawi
    • Dictionary
    • Morphology
      • Disambiguator
    • Specification
    • Stemmer
      • Cache
      • ConfixStripping
      • Context
        • Visitor
      • Filter
    • StopWordRemover

Classes

  • AbstractDisambiguatePrefixRule
  • DontStemShortWord
  • PrefixDisambiguator
  • RemoveDerivationalSuffix
  • RemoveInflectionalParticle
  • RemoveInflectionalPossessivePronoun
  • RemovePlainPrefix
  • VisitorProvider

Interfaces

  • VisitableInterface
  • VisitorInterface
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Sastrawi (https://github.com/sastrawi/sastrawi)
 4:  *
 5:  * @link      http://github.com/sastrawi/sastrawi for the canonical source repository
 6:  * @license   https://github.com/sastrawi/sastrawi/blob/master/LICENSE The MIT License (MIT)
 7:  */
 8: 
 9: namespace Sastrawi\Stemmer\Context\Visitor;
10: 
11: use Sastrawi\Stemmer\Context\ContextInterface;
12: use Sastrawi\Stemmer\Context\Removal;
13: 
14: /**
15:  * Remove Derivational Suffix.
16:  *
17:  * Asian J. (2007) “Effective Techniques for Indonesian Text Retrieval”. page 61
18:  * @link http://researchbank.rmit.edu.au/eserv/rmit:6312/Asian.pdf
19:  */
20: class RemoveDerivationalSuffix implements VisitorInterface
21: {
22:     public function visit(ContextInterface $context)
23:     {
24:         $result = $this->removeSuffix($context->getCurrentWord());
25: 
26:         if ($result != $context->getCurrentWord()) {
27:             $removedPart = preg_replace("/$result/", '', $context->getCurrentWord(), 1);
28: 
29:             $removal = new Removal(
30:                 $this,
31:                 $context->getCurrentWord(),
32:                 $result,
33:                 $removedPart,
34:                 'DS'
35:             );
36: 
37:             $context->addRemoval($removal);
38:             $context->setCurrentWord($result);
39:         }
40:     }
41: 
42:     /**
43:      * Remove derivational suffix
44:      * Original rule : i|kan|an
45:      * Added the adopted foreign suffix rule : wan|wati|is|isme|isasi
46:      *
47:      * @param  string $word
48:      * @return string word after its derivational suffix removed
49:      */
50:     public function removeSuffix($word)
51:     {
52:         return preg_replace('/(wan|wati|is|isme|isasi|i|kan|an)$/', '', $word, 1);
53:     }
54: }
55: 
API documentation generated by ApiGen 2.8.0