Guest User

Untitled

a guest
Jan 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Library;
  4.  
  5. use NlpTools\Analysis\FreqDist;
  6.  
  7.  
  8. class TermFrequency extends FreqDist
  9. {
  10.  
  11. const FREQUENCY_MODE = 1;
  12. const BOOLEAN_MODE = 2;
  13. const LOGARITHMIC_MODE = 3;
  14. const AUGMENTED_MODE = 4;
  15. const COUNT_MODE = 5;
  16.  
  17. public function __construct(array $tokens, $mode=self::FREQUENCY_MODE)
  18. {
  19. parent::__construct($tokens);
  20. $this->mode = $mode;
  21. }
  22.  
  23.  
  24. public function getTf($term)
  25. {
  26. $count = $this->getTotalByToken($term);
  27. if(!$count) {
  28. return 0;
  29. } else {
  30. switch($this->mode) {
  31. case self::BOOLEAN_MODE:
  32. return 1;
  33. case self::LOGARITHMIC_MODE:
  34. return (1 + log($count));
  35. case self::AUGMENTED_MODE:
  36. return 0.5 + (0.5 * ($count / current($this->getKeyValues())));
  37. case self::COUNT_MODE:
  38. return $this->getTotalByToken($term);
  39. case self::FREQUENCY_MODE:
  40. default:
  41. return $count/$this->getTotalTokens();
  42. }
  43. }
  44.  
  45. }
  46.  
  47.  
  48. }
Add Comment
Please, Sign In to add comment