Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie die grundlegende Generierung natürlicher Sprache mit PHP durch

So führen Sie die grundlegende Generierung natürlicher Sprache mit PHP durch

WBOY
WBOYOriginal
2023-06-22 11:05:391310Durchsuche

Die Erzeugung natürlicher Sprache ist eine Technologie der künstlichen Intelligenz, die Daten in Text in natürlicher Sprache umwandelt. Im heutigen Big-Data-Zeitalter müssen immer mehr Unternehmen Daten visualisieren oder den Benutzern präsentieren, und die Generierung natürlicher Sprache ist eine sehr effektive Methode. PHP ist eine sehr beliebte serverseitige Skriptsprache, die zur Entwicklung von Webanwendungen verwendet werden kann. In diesem Artikel wird kurz vorgestellt, wie PHP für die grundlegende Generierung natürlicher Sprache verwendet wird.

  1. Einführung in die Bibliothek zur Generierung natürlicher Sprache

PHPs eigene Funktionsbibliothek enthält nicht die für die Generierung natürlicher Sprache erforderlichen Funktionen. Daher müssen wir einige PHP-Bibliotheken zur Generierung natürlicher Sprache einführen. Zu den am häufigsten verwendeten gehören:

  • SimpleNLG: Wird zum Generieren von englischem Text in natürlicher Sprache verwendet.
  • TextGen: Wird zum Generieren eines einfachen Textes in natürlicher Sprache verwendet.

Diese Bibliotheken werden normalerweise als PHP-Erweiterungen bereitgestellt, Sie müssen sie also installieren und in Ihren Code einbinden.

  1. Vorlagen erstellen

Bevor Sie die Generierung natürlicher Sprache durchführen, müssen Sie normalerweise einige Vorlagen definieren. Eine Vorlage ist ein Text, der Platzhalter enthält, die durch tatsächliche Daten im Code ersetzt werden. Hier ist zum Beispiel eine einfache Vorlage:

在{{地点}}出现了{{数量}}只{{动物}},它们挤满了{{人群}}。

Diese Vorlage enthält drei Platzhalter: Ort, Menge und Tier. Im Code ersetzen wir diese Platzhalter durch tatsächliche Daten.

  1. Text mithilfe der PHP-Bibliothek generieren

Um Text in natürlicher Sprache mithilfe der PHP-Bibliothek zu generieren, müssen wir die folgenden Schritte ausführen:

  • Erstellen Sie ein Generatorobjekt.
  • Verwenden Sie Objektmethoden, um einige Parameter festzulegen, z. B. Vorlagen, Daten usw.
  • Rufen Sie die Generierungsmethode auf, um den endgültigen Text in natürlicher Sprache zu erhalten.

Hier ist ein Beispielcode, der die SimpleNLG-Bibliothek verwendet:

use simplenlgrameworkSPhraseSpec;
use simplenlglexiconXMLLexicon;
use simplenlg
lxsentencesRealiser;

$lexicon = new XMLLexicon();
$realiser = new Realiser($lexicon);

$sentence = new SPhraseSpec();
$sentence->setSubject("你");
$sentence->setVerb("吃");
$sentence->setObject("苹果");

$text = $realiser->realiseSentence($sentence);

In diesem Beispiel haben wir die SimpleNLG-Bibliothek verwendet, um einen einfachen englischen Satz zu generieren: „You ate the apple“. Zuerst erstellen wir ein XML-Thesaurus-Objekt und ein Realiser-Objekt. Anschließend erstellen wir ein SPhraseSpec-Objekt, um den Satz darzustellen, den wir generieren möchten, und legen dessen Subjekt, Prädikat und Objekt fest. Abschließend rufen wir die Methode „realiseSentence“ des Realiser-Objekts auf, um den endgültigen englischen Satz zu erhalten.

  1. Platzhalter ersetzen

Sobald wir den Text in natürlicher Sprache haben, müssen wir die Platzhalter durch tatsächliche Daten ersetzen. Wenn wir beispielsweise die oben definierte Vorlage verwenden, können wir den Platzhalter wie folgt ersetzen:

$template = "在{{地点}}出现了{{数量}}只{{动物}},它们挤满了{{人群}}。";

$data = [
    "地点" => "动物园",
    "数量" => 10,
    "动物" => "大象",
    "人群" => "游客"
];

$text = str_replace(array_map(function($key) { return "{{{$key}}}"; }, array_keys($data)), array_values($data), $template);

In diesem Code definieren wir ein Datenarray mit den tatsächlichen Daten, durch die wir den Platzhalter ersetzen möchten. Anschließend verwenden wir die Funktion str_replace, um den Platzhalter durch Daten zu ersetzen. Beachten Sie, dass wir die Funktionen array_map und array_keys verwendet haben, um ein Array von Platzhaltern zu generieren, und die Funktion array_values, um die Werte aus dem Datenarray abzurufen.

  1. Text in natürlicher Sprache generieren

Schließlich können wir die oben genannten Schritte kombinieren, um die Generierung natürlicher Sprache zu erreichen. Beispielsweise können wir in der Vorlage auf Daten in der Datenbank verweisen:

$template = "{{城市}}长{{长度}}公里,共有{{人口}}人。";
$query = "SELECT * FROM cities WHERE name='上海'";
$data = $pdo->query($query)->fetch();

$text = str_replace(array_map(function($key) { return "{{{$key}}}"; }, array_keys($data)), array_values($data), $template);

echo $text;

In diesem Beispiel definieren wir eine Abfrageanweisung, um Informationen über die Stadt Shanghai aus der Datenbank zu erhalten. Anschließend kombinieren wir die erhaltenen Daten mit der Vorlage, ersetzen die Platzhalter mithilfe der Funktion str_replace durch tatsächliche Daten und generieren schließlich Text in natürlicher Sprache.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie PHP für die grundlegende Generierung natürlicher Sprache verwenden, einschließlich der Erstellung von Vorlagen, der Verwendung von PHP-Bibliotheken zum Generieren von Text, dem Ersetzen von Platzhaltern und dem Generieren von Text in natürlicher Sprache. Obwohl diese Techniken nur ein Teil der Erzeugung natürlicher Sprache sind, sind sie für die Bewältigung einiger grundlegender Textwiedergabeaufgaben in natürlicher Sprache sehr nützlich. Gleichzeitig sollte auch auf Datengenauigkeit und -sicherheit geachtet werden, um den Verlust sensibler Informationen zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo führen Sie die grundlegende Generierung natürlicher Sprache mit PHP durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn