我对PHP有点新,我还在学习名称空间。现在我正试图从github中汲取“PHP-ML”机器学习项目 http://php-ml.readthedocs.io/en/v0.1.0/ 它有一个示例包含在索引文件本身,但由于某种原因,我无法让它返回任何东西。 它没有错误,但它没有返回任何东西。
没有意识到出了什么问题,我继续进行公开教程, https://www.sitepoint.com/how-to-analyze-tweet-sentiments-with-php-machine-learning/ 并按照步骤重新创建给定的程序,但它返回错误: 来自classifyTweets.php。
行Undefined variable: classifier
的{{1}}
经过大量的实验后,我似乎很清楚,命名空间并没有被识别出来。我可以使用$predictedLabels = $classifier->predict($testSamples);
调用这些文件,但是当我尝试使用include __DIR__ . '/src/classification/SentimentAnalysis.php';
时(这是教程所要求的)没有任何反应
当我尝试从命名空间调用它时,它甚至没有错误,它只是没有做任何事情。直到你尝试使用SentimentAnalysis.php中的公共函数“预测”,然后它会抛出一个错误,说它不存在。
我想,我完全遵循了所有步骤。我不明白出了什么问题。
- 编辑:添加了一些基本的代码结构 SentimentAnalysis.php
use PhpmlExercise\Classification\SentimentAnalysis;
最后一行是我得到一个错误,说分类器是一个未定义的变量。哪个没错。但我认为SentimentAnalysis.php应该处理这个问题。至少,我按照教程指示的方式设置了所有内容。 $ testSamples在步骤4中创建。“predict”是SentimentAnalysis的公共函数,如下所示
<?php
namespace PhpmlExercise;
use PhpmlExercise\Classification\SentimentAnalysis;
require __DIR__ . '/vendor/autoload.php';
// steps 1-4 have not given me any trouble, so I'll leave them out
//STEP 5 : Test the classifier accuracy
$predictedLabels = $classifier->predict($testSamples);
是的,我的根文件夹中的composer.json确实包含
<?php
namespace PhpmlExercise\Classification;
use Phpml\Classification\NaiveBayes;
/**
* Class SentimentAnalysis
* @package PhpmlExercise\Classification
*/
class SentimentAnalysis
{
protected $classifier;
public function __construct()
{
$this->classifier = new NaiveBayes();
}
public function predict($samples)
{
return $this->classifier->predict($samples);
}
}
如果您需要更多代码,请与我们联系。
- OLD--
这是我正在使用的代码的副本。
https://www.dropbox.com/s/l4hb29g4o01ge88/phpml%20sample.zip?dl=0
其中一些有点凌乱。但它的当前状态与教程完全相同。你将不得不接受我的话。
如果您需要我发布任何其他内容,请告诉我。