我正在尝试从文件中调用一个类。我使用下面的代码:
<?php
use Fieg\Bayes\Classifier;
use Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer;
$tokenizer = new WhitespaceAndPunctuationTokenizer();
$classifier = new Classifier($tokenizer);
$classifier->train('en', 'This is english');
$classifier->train('fr', 'Je suis Hollandais');
$result = $classifier->classify('This is a naive bayes classifier');
但它给出了错误:
Fatal error: Class 'Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer' not found in C:\xampp\htdocs\Nayve\test.php on line 5
我的文件夹位置是:
我在WhitespaceAndPunctuationTokenizer
课程中的代码是:
<?php
/*
* @author Jeroen Fiege <jeroen@webcreate.nl>
* @copyright Webcreate (http://webcreate.nl)
*/
namespace Fieg\Bayes\Tokenizer;
use Fieg\Bayes\TokenizerInterface;
class WhitespaceAndPunctuationTokenizer implements TokenizerInterface
{
protected $pattern = "/[ ,.?!-:;\\n\\r\\t…_]/u";
public function tokenize($string)
{
$retval = preg_split($this->pattern, mb_strtolower($string, 'utf8'));
$retval = array_filter($retval, 'trim');
$retval = array_values($retval);
return $retval;
}
}
答案 0 :(得分:0)
定义包含路径,以便php可以找到它..
set_include_path(get_include_path() . PATH_SEPARATOR . 'path/to/classes');
答案 1 :(得分:0)
尝试以下方法:
use Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer as WhitespaceTokenizer;
然后使用它来创建对象:
$tokenizer = new WhitespaceTokenizer();
答案 2 :(得分:0)
看起来您正在使用composer,因此,如果您直接加载文件,则需要包含composer autoloader引导程序文件。
<?php
require __DIR__ . '/vendor/autoload.php';
// All your code goes here
如果您没有供应商文件夹或尚未设置composer.json
配置,那么您需要确保composer.json
文件包含:
{
"autoload": {
"psr-4": {"Fieg\\Bayes\\": "Fieg/Bayes/"}
}
}
然后运行composer install来设置自动加载文件:
$ composer install
参考:https://getcomposer.org/doc/01-basic-usage.md#autoloading