2016-12-20 4 views
0

Ich benutze Googles Natural Language API und es funktioniert gut und gibt Daten zurück. Ich bin einfach nicht in der Lage, es richtig zu analysieren. Ich möchte ein JSON-Objekt bilden, das ich dann mit AJAX oder ähnlichem verwenden kann. Was ich brauche, sind hauptsächlich die Sätze und ihre Gefühle. Ich kämpfe mit diesem Objekt, das ich zurück:Parsing Objekt mit Arrays in PHP

object(Google\Cloud\NaturalLanguage\Annotation)#21 (1) { 
    ["info":"Google\Cloud\NaturalLanguage\Annotation":private]=> 
    array(3) { 
    ["documentSentiment"]=> 
    array(2) { 
     ["magnitude"]=> 
     float(1.4) 
     ["score"]=> 
     int(0) 
    } 
    ["language"]=> 
    string(2) "en" 
    ["sentences"]=> 
    array(2) { 
     [0]=> 
     array(2) { 
     ["text"]=> 
     array(2) { 
      ["content"]=> 
      string(19) "I love everything!\" 
      ["beginOffset"]=> 
      int(0) 
     } 
     ["sentiment"]=> 
     array(2) { 
      ["magnitude"]=> 
      float(0.8) 
      ["score"]=> 
      float(0.8) 
     } 
     } 
     [1]=> 
     array(2) { 
     ["text"]=> 
     array(2) { 
      ["content"]=> 
      string(18) "I hate everything!" 
      ["beginOffset"]=> 
      int(21) 
     } 
     ["sentiment"]=> 
     array(2) { 
      ["magnitude"]=> 
      float(0.6) 
      ["score"]=> 
      float(-0.6) 
     } 
     } 
    } 
    } 
} 

ZUSÄTZLICH:

Das letzte Stück meiner PHP-Code ist:

$annotation = $language->analyzeSentiment($text); 
$sentiment = $annotation->sentiment(); 
echo 'Text: ' . $text . ' 
Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude']; 
return $sentiment; 

Diese erfolgreich die Partitur und Größe gibt für das gesamte "Dokument" wie im Teil des Arrays unter "documentSentiment" gezeigt. Was ich (zusätzlich) brauche, sind die Daten unter sentences. Insbesondere content, magnitude und score.

+0

können Sie ein Beispiel zeigen, was Sie haben möchten, in der gewünschtes Format Es wäre dann einfacher zu sehen, wie man die Code-Struktur erstellt, um dorthin zu gelangen. – Sean

+0

@Sean Danke ... habe ein paar weitere Details hinzugefügt, von denen ich denke, dass sie helfen könnten. – jonmrich

+0

Mit 'json_encode()' und 'json_decode()' können Sie einen Json-Feed aus einem Array erstellen. Ich bin mir nicht sicher, ob Sie das hart wollen. – Nicolas

Antwort

2

Da $sentiment['sentences'] ist ein Array -

["sentences"]=> 
    array(2) { 
     ... 
    } 

Sie brauchen, um eine Schleife über den Werten, mit foreach() zum Beispiel -

.... 
echo 'Text: ' . $text . ' 
Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude']; 

foreach($sentiment['sentences'] as $sentence){ 
    echo 'Text: ' .$sentence["text"]["content"] . ' 
    Sentiment: ' . $sentence["sentiment"]["score"] . ', ' . $sentence["sentiment"]["magnitude"]; 
}