İçeriğe geç
getnextpdf.com

Pro sürüm

Classifier

NextPDF\Pro\Classifier, belge metni ve yapısı üzerinde belirlenimci sezgisel kurallar kullanarak bir belge türü (fatura, sözleşme, rapor vb.) ile algılanan bir dil atar. Kural tabanlıdır, bir makine öğrenmesi modeli değildir.

Bu yetenek NextPDF Pro (nextpdf/pro) içinde sunulur ve Pro katmanı bir lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.

Bu modülü hiçbir çalışma zamanı yetenek bayrağı kapılamaz. Classifier sınıfları, nextpdf/pro yüklü olduğunda her zaman kullanılabilir.

Terminal window
composer require nextpdf/pro:^3

DocumentClassifier, üç iş ortağını düzenler:

  • StructureAnalyzer, PDF’i sayfa sayısı, görüntü ve yazı tipi sayıları ile form/imza alanları açısından inceler ve bir StructureAnalysis üretir.
  • HeuristicClassifier (varsayılan ClassifierInterface), metni tür başına anahtar sözcük sözlüklerine göre puanlar ve yapısal sezgisel kuralları uygular (örneğin, kısa belgeler “rapor”dan uzaklaşacak şekilde yanlanır) ve bir DocumentType ile bir güven değeri verir.
  • LanguageDetector, dili on dile ait karakter üçlü harf frekans profillerinden tanımlar ve bir güven eşiğinin altında İngilizce’ye geri döner.

classifyFromText(), daha önce çıkarılmış metni (yapı için isteğe bağlı ham PDF baytlarıyla birlikte) kabul eder; classifyFromFile(), ham PDF baytlarını kabul eder ve §9.4 metin gösterme operatörlerini doğrudan ayrıştırarak metni çıkarır.

Yük taşıyan karar, bir makine öğrenmesi modeliyle değil, belirlenimci sezgisel kurallarla sınıflandırmaktır. Kural tabanlı bir işlem hattı, girdisinin saf bir fonksiyonudur: özdeş baytlar her zaman özdeş bir tür, güven değeri ve dil verir; model kayması yok, ağ çağrısı yok. Bu belirlenimcilik, sonucun açık bir güven değerini, bir isConfident() kapısını ve tür başına bir scores eşlemesini açığa çıkarmasını sağlar; böylece modül, seçimi bir modelin ardına gizlemek yerine nasıl karar verdiğini gösterir. Bu nedenle çağıranlar, düşük güvenli belgeleri sözleşme gereği elle incelemeye yönlendirir ve puanlanamayacak kadar kısa metin aynı sabit kural altında en diline geri döner. Bu bir bilinçli takastır: doğruluk, sabit anahtar sözcük ve üçlü harf profilleriyle sınırlanır; karşılığında yeniden üretilebilirlik, incelenebilirlik ve tamamen süreç içinde çalışan bir sınıflandırıcı elde edilir.

Tasarım arka planı: Tahmin etmeyi reddeden bir API.

  • Girdi. Çıkarılmış metin (classifyFromText) veya ham PDF baytları (classifyFromFile). Boş girdi geçerlidir ve düşük güvenli bir sonuç verir; genellikle DocumentType::Other.
  • Çıktı. DocumentType, [0.0, 1.0] aralığında bir güven değeri, algılanan yapısal özellikler, bir ISO 639-1 dil kodu ve meta veri içeren bir ClassificationResult. isConfident(0.7), belgelenmiş eşik yardımcısıdır.
  • Belirlenimcilik. Sınıflandırma ve dil algılama, girdinin saf fonksiyonlarıdır — aynı girdi, aynı sonuç, rastlantısallık yok, ağ yok.
  • Kapsam. On iki belge türü ve on dil profili; her ikisi de bu sürümde sabittir. Özel stratejiler ClassifierInterface aracılığıyla sağlanabilir.
TürÇeşitTemel üyeler
NextPDF\Pro\Classifier\DocumentClassifierfinal classstatic create(): self, classifyFromText(string $text, string $pdfData = ''): ClassificationResult, classifyFromFile(string $pdfData): ClassificationResult
NextPDF\Pro\Classifier\ClassifierInterfaceinterfaceclassify(string $text, StructureAnalysis $structure): ClassificationResult, supports(string $contentType): bool
NextPDF\Pro\Classifier\HeuristicClassifierfinal classClassifierInterface arabirimini uygular
NextPDF\Pro\Classifier\StructureAnalyzerfinal classanalyze(string $pdfData): StructureAnalysis
NextPDF\Pro\Classifier\LanguageDetectorfinal classdetect(string $text): string
NextPDF\Pro\Classifier\ClassificationResultfinal readonly classDocumentType $type, float $confidence, array $features, string $language, isConfident(float $threshold = 0.7): bool
NextPDF\Pro\Classifier\DocumentTypeenum12 durum (Invoice, Contract, Form, Report, Letter, Receipt, Legal, Medical, Financial, Technical, Academic, Other); label(): string
<?php
declare(strict_types=1);
use NextPDF\Pro\Classifier\DocumentClassifier;
$result = DocumentClassifier::create()
->classifyFromText('Invoice #4471 — Amount due: $1,200.00');
printf(
"%s (%.0f%% confidence), lang=%s\n",
$result->type->label(),
$result->confidence * 100,
$result->language,
);
<?php
declare(strict_types=1);
use NextPDF\Pro\Classifier\DocumentClassifier;
use NextPDF\Pro\Classifier\DocumentType;
function routeDocument(string $pdfBytes): string
{
$result = DocumentClassifier::create()->classifyFromFile($pdfBytes);
if (! $result->isConfident(0.7)) {
return 'manual-review';
}
return match ($result->type) {
DocumentType::Invoice, DocumentType::Receipt => 'accounts-payable',
DocumentType::Contract, DocumentType::Legal => 'legal-intake',
default => 'general-inbox',
};
}
  • Güven sezgiseldir. Eşiğin altındaki sonuçları “belirsiz” olarak değerlendirin ve üretim örneğinin yaptığı gibi elle incelemeye yönlendirin.
  • Dil algılama yeterli metne ihtiyaç duyar; çok kısa dizeler tasarım gereği İngilizce’ye geri döner.
  • classifyFromFile(), sınırlı bayt düzeyinde metin çıkarımı kullanır; yoğun sıkıştırılmış veya yalnızca görüntü içeren PDF’ler puanlanacak mevcut metni azaltır.
  • Belge türü ve dil kümeleri bu sürümde sabittir; sınıflandırmayı yerleşik sözlükleri değiştirerek değil, ClassifierInterface arabirimini uygulayarak genişletin.

Sınıflandırma, hiçbir ağ çağrısı ve girdinin hiçbir biçimde saklanması olmadan süreç içinde çalışır. Sonuç, kaynak metni değil, bir DocumentType ve dil kodu içerir. Çağıranlar metadata değerini kalıcı hâle getiriyorsa, saklamadan önce arızi PII açısından inceleyin.

Modül hiçbir telemetri yaymaz ve hiçbir girdiyi günlüğe kaydetmez. Günlük ekleyen çağıranlar yalnızca sonuçtaki DocumentType ve dil kodunu kaydetmelidir; sınıflandırılan metni asla kaydetmemelidir.

Anahtar sözcük puanlaması ve üçlü harf sayımı, metin uzunluğunda doğrusaldır. Yapı analizi, sınırlı bir açma üst sınırıyla PDF bayt uzunluğunda doğrusaldır. Bkz. performance_budget.

classifyFromFile(), güvenilmeyen PDF baytlarını sınırlı tarama ve bir açma boyutu üst sınırıyla ayrıştırarak açma bombası girdisine karşı direnir. Hiçbir gömülü betik yürütülmez.

İddiaStandart maddesiDurum
Dosya sınıflandırması için metin Tj ile kurtarıldıISO 32000-2:2020 §9.4Doğrulandı (birim paketi)
Dosya sınıflandırması için metin TJ ile kurtarıldıISO 32000-2:2020 §9.4Doğrulandı (birim paketi)
Makine öğrenmesi / model tabanlı sınıflandırmaDesteklenmiyor (yalnızca sezgisel)

Belge sınıflandırması veya dil algılaması için hiçbir Core eşdeğeri yoktur.

Bu sınıflandırıcı kural tabanlı ve belirlenimcidir. Hiçbir gömme, vektör benzerliği, model çıkarımı veya anlamsal anlama gerçekleştirmez. Bu yetenekler bu modülün parçası değildir ve onun tarafından ima edilmez.

Bu sayfa yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini açıklar. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, çalışma kılavuzu dosya adları ve talep önekleri kapsam dışıdır.