Detection of language with classification

From Artificial Neural Network for PHP
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

FAQ

For information about dat-files have a view to the FAQ page.

Training

require_once '../ANN/Loader.php';

use ANN\Network;
use ANN\Classification;
use ANN\StringValue;
use ANN\Values;

try
{
  $objNetwork = Network::loadFromFile('strings.dat');
}
catch(Exception $e)
{
  print 'Creating a new one...';

  $objClassification = new Classification(2); // As of ANN 2.1.2
	
  $objClassification->addClassifier('german');
	
  $objClassification->addClassifier('english');
	
  $objClassification->saveToFile('classifiers_strings.dat');

  $objNetwork = new Network(1, 8, 2);

  $objStringValues = new StringValue(15); // As of ANN 2.1.1
	
  $objStringValues->saveToFile('input_strings.dat');
	
  $objValues = new Values;
  
  $objValues->train()
    ->input($objStringValues->getInputValue('Hallo Welt'))
    ->output($objClassification->getOutputValue('german'))
    ->input($objStringValues->getInputValue('Hello World'))
    ->output($objClassification('english')); // As of PHP 5.3.0
  
  $objValues->saveToFile('values_strings.dat');
  
  unset($objValues);
}

try
{
  $objValues = Values::loadFromFile('values_strings.dat');
}
catch(Exception $e)
{
  die('Loading of values failed');
}

$objNetwork->setValues($objValues);

$objNetwork->train();

$objNetwork->saveToFile('strings.dat');

$objNetwork->printNetwork();

Using trained network

require_once '../ANN/Loader.php';

use ANN\Network;
use ANN\Classification;
use ANN\StringValue;
use ANN\Values;

try
{
  $objNetwork = Network::loadFromFile('strings.dat');
}
catch(Exception $e)
{
  print 'Network cannot be loaded';
}

try
{
  $objValues = Values::loadFromFile('values_strings.dat');
}
catch(Exception $e)
{
  die('Loading of values failed');
}

try
{
  $objStringValues = StringValue::loadFromFile('input_strings.dat');
}
catch(Exception $e)
{
  die('Loading of input values failed');
}

try
{
  $objClassification = Classification::loadFromFile('classifiers_strings.dat');
}
catch(Exception $e)
{
  die('Loading of classification failed');
}

$objValues->input($objStringValues->getInputValue('HAllo Welt'));
$objValues->input($objStringValues->getInputValue('Hello World'));
$objValues->input($objStringValues->getInputValue('Hálló Wélt'));
$objValues->input($objStringValues->getInputValue('Hélló Wórld'));
$objValues->input($objStringValues('Hßllo Welt'));   // As of PHP 5.3.0
$objValues->input($objStringValues('Hßlló Wórld'));  // As of PHP 5.3.0
$objValues->input($objStringValues('Hallo Welt!'));  // As of PHP 5.3.0
$objValues->input($objStringValues('Helló Wórld!')); // As of PHP 5.3.0

$objNetwork->setValues($objValues);

$objNetwork->printNetwork();

$arrOutputs = $objNetwork->getOutputs();

foreach($arrOutputs as $arrOutput)
  print_r($objClassification->getRealOutputValue($arrOutput));