szyku/php-nltk-client

szyku/nltk-api 的 PHP 客户端实现

v1.1.2 2017-05-21 16:23 UTC

This package is not auto-updated.

Last update: 2024-09-29 01:59:31 UTC


README

这是一个用于 szyku/nltk-api 的 PHP 客户端,它通过友好的 API 提供了 Python 的 NLTK 资源WordNet 数据库

此客户端的目的是提供一个舒适且直观的方式来与 NLTK API 交互。

安装

此包已在 PHP >= 5.6 上进行了测试。

Composer

composer require szyku/php-nltk-client

Git 克隆

git clone git@github.com:szyku/php-nltk-client.git

或下载 zip 文件

wget https://github.com/szyku/php-nltk-client/archive/master.zip 

或 tarball 文件

wget https://github.com/szyku/php-nltk-client/archive/master.tar.gz

如何使用它

易于设置

require __DIR__ . '/vendor/autoload.php';

use GuzzleHttp\Psr7\Uri;
use Szyku\NLTK\Client;
use GuzzleHttp\Client as Guzzle;

$uri = new Uri("https://:5000");
$guzzle = new Guzzle(['base_uri' => $uri]);
// or just $guzzle = new Guzzle(['base_uri' => 'https://:5000']);

$nltkClient = new Client($guzzle);

如何使用便捷的方法查询定义

use Szyku\NLTK\Request\Dictionary\DefinitionLookupRequest;
use Szyku\NLTK\Request\Dictionary\SimilarLookupRequest;
use Szyku\NLTK\Request\Lemma\LemmatizationRequestBuilder as Builder;
use Szyku\NLTK\Request\Tagger\TaggingRequestBuilder as TaggerBuilder;

$similarWordsToCastle = SimilarLookupRequest::noun('castle');
$definitionsForRA = DefinitionLookupRequest::noun('rheumatoid arthritis');

$sentenceTagging = TaggerBuilder::create()
    ->add('He is a cunning man.')
    ->addMany(['Before and after.', 'Ups and downs'])
    ->build();

$lemmatizeSentence = Builder::create()
    ->adjective('biggest')
    ->noun('dogs')
    ->verb('fought')
    ->adverb('loudly')
    ->findAllFor('at')
    ->build();

// results are hydrated to objects like WordLookupResponse or LemmatizationResponse
$castleResult = $nltkClient->dictionary($similarWordsToCastle);
$raResult = $nltkClient->dictionary($definitionsForRA);
$lemmatizationResult = $nltkClient->lemmatization($lemmatizeSentence);
$taggingResult = $nltkClient->tagging($sentenceTagging);

// easy to consume
echo "Time taken in seconds: " . $castleResult->lookupTime();
echo "Searched for: " . $castleResult->queriedPhrase();

foreach ($castleResult->results() as $result) {
    echo $result->phrase() . ": " . $result->definition();
}
// prints "palace: A large and stately mansion"