Problem with generating a word cloud with a large amount of data

Hello, I’m trying to use your API to generate a word cloud from the text of an article on a site, as well as the PDF (in php).
I manage to generate with the text of the article, but by adding the PDF, the image does not manage to turn over: I wonder if there is a size limit of the text to send to the API? For information my article text is composed of 2 paragraphs and my pdf of 10 pages of text filled.

I don’t know if my code can help to better understand the problem:

 public function getText()
        {
            $texte = "";

            //Récupération de la page HTML à traiter
            $html = file_get_contents($this->pathPage); //On récupére le contenu de la page HTML
            $page = new DOMDocument();
            libxml_use_internal_errors(true);
            $page->loadHTML($html);

            //Récupération du contenu des articles
            $articles = $page->getElementsByTagName("article");
            foreach($articles as $article)
            {
                $pElements = $article->getElementsByTagName("p");
                foreach($pElements as $p)
                {
                    $texte .= $p->textContent;
                }
            }
            
            $xpath = new DOMXPath($page); 
            //Récupération du contenu des PDF 
            $as = $xpath->query('//a[@class="pdf"]');
            
            foreach($as as $a)
            {
                //Récupération du lien menant au pdf
                $linkPDF = $a->getAttribute("href");

                $parser = new \Smalot\PdfParser\Parser();
                $pdf = $parser->parseFile($linkPDF);
                $textPDF = $pdf->getText();
                $texte .= $textPDF;

            }
            return $texte;

        } 
 public function getWordCloud($texte)
        {
            //Faire un appel API 
            $url = "https://quickchart.io/wordcloud"; // Définir l'URL de l'API
            // Définir les paramètres de la requête
            $params = array(
                "format"=> "png",
                "width"=> 1000,
                "height"=> 1000,
                "fontFamily"=> "sans-serif",
                "fontScale"=> 20,
                "colors"=>array("#6ec1e4","#005ec4"),
                "scale"=> "linear",               
                "text"=> $texte,
                "removeStopwords"=>true,
                "language"=> "fr",
                "minWordLength" => "2", //Ne pas inclure ? . , et !
                "maxNumWords" => 200
            );
           // Convertir les paramètres en JSON
            $data = json_encode($params);

            // Initialiser la session cURL
            $ch = curl_init();

            // Définir les options de la session cURL
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER,array("Content-Type: application/json","Content-Length: " . strlen($data)));
            curl_setopt($ch, CURLOPT_ENCODING, ''); 

            // Exécuter la requête et récupérer la réponse
            $response = curl_exec($ch);

            // Fermer la session cURL
            curl_close($ch);

            $base64Data = base64_encode($response);

            // On retourne l'image dans le HTML 
            echo '<img src="data:image/png;base64,' . $base64Data . '" alt="Word cloud from text">';
            var_dump($response);
            // Si on veut enregistrer l'image
            file_put_contents("wordcloud.png", $response);
    }

Hi @Youen, would you be able to provide the JSON data created by this line:

$data = json_encode($params);

That will allow me to reproduce the problem on my side, and we can look into it more in-depth.

Yes for sure, my JSON is the following :

{
"format":"png",
"width":500,
"height":500,
"fontFamily":"sans-serif",
"fontScale":20,
"colors":["#6ec1e4","#005ec4"],
"scale":"linear",
"text":"On dit que les biblioth\u00e8ques vont mal, qu\u2019elles font partie du monde d\u2019avant. On a tort. C\u2019est certain que si on reste les bras \r\n crois\u00e9s en attendant que les lecteurs rappliquent, il ne risque pas de se passer grand-chose. Dans le monde nouveau, seuls ceux \r\n qui innovent survivent. Les biblioth\u00e8ques ont de l\u2019avenir, \u00e9videmment que oui, mais \u00e0 condition de se r\u00e9inventer. On doit les \r\n rendre plus attractives. R\u00e9nover les espaces, c\u2019est une bonne chose, mais il faut aller plus loin. On a souvent envie de dire \r\n aux biblioth\u00e9caires : n\u2019ayez pas peur de la nouveaut\u00e9 ! Un public \u00e7a se cr\u00e9e. Il n\u2019y a pas de fatalit\u00e9. Franchement, qui aurait \r\n pari\u00e9 sur la BPA ?\r\n Apr\u00e8s une ann\u00e9e d\u2019existence seulement la BPA est devenue une institution reconnue dans le domaine de la lecture publique. \r\n Une enqu\u00eate r\u00e9cente a montr\u00e9 que, niveau notori\u00e9t\u00e9, elle n\u2019avait pas grand-chose \u00e0 envier \u00e0 la Nouvelle BNF. \r\n En un an, elle s\u2019est attir\u00e9e les faveurs d\u2019un public, nombreux, avide, fid\u00e8le. Un public oubli\u00e9 des pr\u00e9c\u00e9dents politiques \r\n de d\u00e9veloppement de la lecture.\r\n Genevi\u00e8ve Li\u00e8vre, l\u2019actuelle directrice, et Patrick Martinez, le fondateur, \r\n ont accept\u00e9 de nous ouvrir les portes de leur \u00e9tablissement. Rencontre.MANGER LA BIBLIOTH\u00c8QU\tE\tOn dit que les biblioth\u00e8ques vont mal, qu\u2019elles font partie du monde d\u2019avant. On a tort. C\u2019est certain que si on reste les bras crois\u00e9s en attendant que les lecteurs rappliquent, il ne risque pas de se passer grand-chose. Dans le monde nouveau, seuls ceux qui innovent survivent. Les biblioth\u00e8ques ont de l\u2019avenir, \u00e9videmment que oui, mais \u00e0 condition de se r\u00e9inventer. On doit les rendre plus attractives. R\u00e9nover les espaces, c\u2019est une bonne chose, mais il faut aller plus loin. On a souvent envie de dire aux biblioth\u00e9caires\u00a0: n\u2019ayez pas peur de la nouveaut\u00e9\u00a0! Un public \u00e7a se cr\u00e9e. Il n\u2019y a pas de fatalit\u00e9. Franchement, qui aurait pari\u00e9 sur la BPA ?\t \tApr\u00e8s une ann\u00e9e d\u2019existence seulement la BPA est devenue une institution reconnue dans le domaine de la lecture publique. Une enqu\u00eate r\u00e9cente a montr\u00e9 que, niveau notori\u00e9t\u00e9, elle n\u2019avait pas grand-chose \u00e0 envier \u00e0 la Nouvelle BNF. En un an, elle s\u2019est attir\u00e9e les faveurs d\u2019un public, nombreux, avide, \t\ufb01d\u00e8le. Un public oubli\u00e9 des pr\u00e9c\u00e9dents politiques de \td\u00e9veloppement de la lecture\t.\tGenevi\u00e8ve Li\u00e8vre, l\u2019actuelle directrice, et Patrick Martinez, le fondateur, ont accept\u00e9 de nous ouvrir les portes de leur \u00e9tablissement. Rencontre\t.\tCommunaut\u00e9 f\u00e9cond\te\tGenevi\u00e8ve Li\u00e8vre n\u2019en revient toujours pas\u00a0: \u00ab\u00a0Tr\u00e8s honn\u00eatement, on ne s\u2019attendait pas un tel succ\u00e8s. On attire entre 250 et 300 lecteurs\/jour, qui engloutissent entre 10.000 et 15.000 livres par semaine. C\u2019\u00e9tait inimaginable\u00a0\u00e0 nos d\u00e9buts !\u00a0\u00bb\t\u00a0\tPatrick Marinez\u00a0: \u00ab\u00a0Un rapport d\u2019\u00e9valuation du Minist\u00e8re parle de l\u2019\u00e9tablissement comme, je cite, \u00ab\u00a0\tune\u00a0communaut\u00e9 f\u00e9conde travaillant en \tsynergie, qui a \u00e9rig\u00e9 l'innovation permanente en principe moteur, seul capable d'apporter une distinction et une valeur ajout\u00e9e au travail\t.\u00a0\u00bb Aujourd\u2019hui la BPA \tb\u00e9n\u00e9\t\ufb01cie du soutien de l\u2019autorit\u00e9 publique et re\u00e7oit des aides du m\u00e9c\u00e9nat \tpriv\u00e9. Tout le\u00a0monde veut travailler avec nous\u00a0! Et pourtant, au d\u00e9but, je vous garantis que le pari \u00e9tait loin d\u2019\u00eatre gagn\u00e9.\t \t 1\n\nPr\u00e9occupation victorienne\u00a0\t \tPatrick Martinez reconnait volontiers que la BPA a \u00e9t\u00e9 cr\u00e9\u00e9e \u00ab\u00a0un peu par hasard. Pour le coup c\u2019est l\u2019offre qui a cr\u00e9\u00e9 la demande.\u00a0\t\u00bb\tIl explique\u00a0: \u00ab\u00a0A l\u2019\u00e9poque je travaillais \u00e0 l\u2019HyperSorbonne. Nous croulions sous les livres dont nous ne savions que faire. Toutes les semaines, on nous proposait des biblioth\u00e8ques priv\u00e9es en don. En g\u00e9n\u00e9ral, il s\u2019agissait de journalistes qui croulaient sous les services de presse. Ou bien des enfants d\u2019\u00e9crivains ou de chercheurs qui ne savaient pas que faire de la biblioth\u00e8que familiale \u2013 une \u0153uvre en soi, entre parenth\u00e8ses. Ils auraient eu des remords \u00e0 jeter les livres de maman et papa, ils n\u2019osaient pas s\u2019en d\u00e9barrasser comme des encombrants, mais ils ne voulaient pas non plus les garder. On nous adressait de v\u00e9ritables appels au secours\u00a0: on a entre 5.000 et 10.000 bouquins entrepos\u00e9s dans un appartement qu\u2019on aimerait vendre rapidement, on ne sait pas comment faire, s\u2019il vous plait, venez-nous en aide\u00a0! J\u2019ai fait le calcul, environ 15.000 livres nous \u00e9taient propos\u00e9s chaque semaine. Le probl\u00e8me c\u2019est que nous non plus on ne savait pas quoi en faire, vu que nos collections \u00e9taient immat\u00e9rielles. Je r\u00e9pondais que nous \u00e9tions d\u00e9sol\u00e9s, mais nous ne prenons plus de livres physiques. Les gens ne comprenaient pas, \u00e7a leur paraissait aberrant. On nous r\u00e9pondait\u00a0: mais en\t\ufb01n, une biblioth\u00e8que sans \tpapier, ce n\u2019est plus une biblioth\u00e8que. Je ne pouvais pas leur dire tout de go\u00a0: h\u00e9 ho, on n\u2019est plus au XX\u00e8me si\u00e8cle, on se r\u00e9veille, les choses ont chang\u00e9. Comme disent les anglais\u00a0: croire qu\u2019une biblioth\u00e8que se r\u00e9sume \u00e0 conserver des livres et les pr\u00eater, c\u2019est une \u00ab\u00a0pr\u00e9occupation victorienne\u00a0\u00bb. Je prenais des gants pour expliquer les avantages d\u2019avoir des ressources immat\u00e9rielles. J\u2019expliquais le b\u00e9n\u00e9\t\ufb01ce concernant le stockage. J\u2019avan\u00e7ais l\u2019argument un peu \td\u00e9mago de l\u2019\u00e9conomie de papier, des ressources qui se perdent etc\u2026 Mais bon, dans l\u2019ensemble \u00e7a ne convainquait personne. Quand on me demandait quels \u00e9tablissements seraient int\u00e9ress\u00e9s par des biblioth\u00e8ques physiques, je ne savais pas trop quoi r\u00e9pondre. Je n\u2019allais quand m\u00eame pas dire\u00a0: aucun. \t\u00bb\tSe faire les dents sur des livre\ts\t\u00ab\u00a0Personnellement, j\u2019ai toujours raffol\u00e9 des livres\u00a0\u00bb rench\u00e9rit Genevi\u00e8ve Li\u00e8vre. \u00ab\u00a0Patrick m\u2019en donnait souvent pour que je me fasse les dents, quand je vivais dans son jardin. Il savait que j\u2019avais plaisir \u00e0 les grignoter.\u00a0\t\u00bb\t 2\n\nPour Patrick Martinez, \u00ab\u00a0Genevi\u00e8ve a toujours eu un go\u00fbt af\t\ufb01rm\u00e9 pour \tles livres. Elle pouvait en manger jusqu\u2019\u00e0 cinq par jours\u00a0! Et pas n\u2019importe quoi, il lui en fallait des bons. En l\u2019observant, je me suis dit\u00a0: et si on donnait des biblioth\u00e8ques aux rongeurs\u00a0? Et si on cr\u00e9ait la Biblioth\u00e8que pour Animaux\u00a0? \t\u00bb\tUne bio-biblioth\u00e8que\t \tAu moment de nous faire p\u00e9n\u00e9trer dans la salle de lecture de la BPA, Genevi\u00e8ve Li\u00e8vre raconte\u00a0: \u00ab Au d\u00e9but, les humains nous sollicitaient rarement, on aurait dit que \u00e7a les effrayait de venir chez nous.\u00a0Il faut bien reconna\u00eetre qu\u2019une salle de lecture en forme de liti\u00e8re c\u2019est pas commun. Voyez, pour le confort de nos lecteurs, on a dispos\u00e9 des pailles et des copeaux de bois sur le sol, et des bols sur des tables rondes.\u00a0C\u2019est vrai que l\u2019odeur est un peu particuli\u00e8re. Mieux vaut ne pas \u00eatre allergique aux poils d\u2019animaux. \t\u00bb\tPatrick Martinez ne cache pas son enthousiasme\u00a0: \u00ab\u00a0Admirez cette diversit\u00e9 des publics. Souris\u00a0! Rats\u00a0! Gerbilles\u00a0! Lapins\u00a0! Ecureuils\u00a0! Ragondins\u00a0! Chinchillas\u00a0! Castors\u00a0! Gerboises\u00a0! Ici \u00e7a clapit, \u00e7a glapit, \u00e7a chicote et \u00e7a couine tout en grignotant des livres.\u00a0\u00c7a change de l\u2019injonction au silence des salles de lectures pour humains. \u00bb\t \tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0Pour nous ce n\u2019est pas vraiment une biblioth\u00e8que, plut\u00f4t une bio-biblioth\u00e8que\t.\tPolitique z\u00e9ro gaspillag\te\tPatrick Martinez\u00a0: \u00ab\u00a0Maintenant les biblioth\u00e8ques des particuliers arrivent directement ici. Plus besoin d\u2019espace de stockage temporaire. Cent fois plus pratique\u00a0! Nous collectons plus de 20.000 livres par semaine. Et tout est consomm\u00e9, il ne reste pas un livre. Z\u00e9ro gaspillage. Bonus \u00e9cologique. A la limite, on est victime de notre succ\u00e8s. Nous avons un nombre croissant d\u2019usagers. Et je peux vous dire qu\u2019ils sont affam\u00e9s.\u00a0\t\u00bb\tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0Tenez, il y a deux semaines nous avons re\u00e7u la biblioth\u00e8que d\u2019un historien. Une chose \u00e9norme, pensez, 30.000 ouvrages, et attention, uniquement des ouvrages historiques de haut niveau, du costaud, pas le moindre essai grand public, des livres de recherches, s\u00e9rieux, exigeants. Eh bien \t\ufb01gurez-vous qu\u2019\u00e0 part quelques usagers qui ont trouv\u00e9 \u00e7a \t 3\n\nlourd, la grande majorit\u00e9 a ador\u00e9. Cette biblioth\u00e8que, ils l\u2019ont d\u00e9vor\u00e9e. C\u2019\u00e9tait fascinant d\u2019observer un tel app\u00e9tit pour les ouvrages savants. Entre parenth\u00e8ses, j\u2019ai not\u00e9 un go\u00fbt tr\u00e8s prononc\u00e9 pour le Moyen Age. Je ne sais pas pourquoi. Plus savoureux\u00a0? Peut-\u00eatre. Bref. La semaine prochaine, ils s\u2019attaqueront \u00e0 un fonds exceptionnel de litt\u00e9rature \u00e9lisab\u00e9thaine. Legs d\u2019un ponte r\u00e9cemment disparu.\u00a0On en salive d\u2019avance. \t\u00bb\tEdgar Alan Poe en moins de quatre heure\ts\tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0A l\u2019origine, la BPA avait pour objectif de d\u00e9velopper le grignotage de livres chez les populations animales. Et puis on s\u2019est rendu compte que certains animaux ne se contentaient pas de se faire les dents sur les livres, ils les d\u00e9chiffraient. C\u2019est \u00e0 ce moment-l\u00e0 que le Rat Research Institute of Kyoto a mis en ligne sa fameuse vid\u00e9o o\u00f9 on voit un rat lire les \u0153uvres compl\u00e8tes d\u2019Edgar Alan Poe en moins de quatre heures.\u00a0\t\u00bb\tPatrick Martinez\u00a0: \u00ab\u00a0Cette vid\u00e9o a beaucoup modi\t\ufb01\u00e9 notre conception \tde la biblioth\u00e8que. On a compris qu\u2019il y avait encore beaucoup \u00e0 faire. J\u2019ai pris contact avec Rat Research Institute of Kyoto pour mettre en place des enseignements \u00e0 destination des rongeurs qui ont pu apprendre \u00e0 lire et \u00e0 \u00e9crire gr\u00e2ce \u00e0 la m\u00e9thode syllabique.\u00a0\u00bb\t \tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0Et les plus avanc\u00e9s ont pass\u00e9 avec succ\u00e8s des examens de lecture niveau 3.\u00a0\t\u00bb\tPatrick Martinez\u00a0: \u00ab\u00a0On \u00e9tait \u00e9poustou\t\ufb02\u00e9s.\u00a0\t\u00bb\tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0Mais on n\u2019avait encore rien vu. \t\u00bb\tFranchir le pas de la cr\u00e9atio\tn\tPatrick Martinez\u00a0: \u00ab\u00a0En fait, l\u2019apprentissage de la lecture et de l\u2019\u00e9criture n\u2019\u00e9tait qu\u2019une \u00e9tape. Apr\u00e8s avoir appris \u00e0 lire et \u00e0 \u00e9crire, les rats et les souris les plus \u00e9volu\u00e9s ont voulu franchir le pas de la cr\u00e9ation. \u00bb\t \tGenevi\u00e8ve Li\u00e8vre\u00a0: \u00ab\u00a0A un moment ils ont manifest\u00e9 un app\u00e9tit pour la nouveaut\u00e9. Ils appr\u00e9ciaient l\u2019ancien mais voulaient du nouveau. Ils trouvaient qu\u2019il y avait encore quelques romans pas d\u00e9sagr\u00e9ables \u00e0 se mettre sous la dent, mais l\u2019ensemble de la production leur semblait un peu fade.\u00a0\u00bb\t \tPatrick Martinez\u00a0: \u00ab\u00a0On a d\u00fb leur expliquer qu\u2019apr\u00e8s la controverse sur la litt\u00e9rature comme insupportable mensonge et instrument de domination, et l\u2019automatisation de l\u2019\u00e9criture de roman, la plupart des \u00e9crivains, \u00e9coeur\u00e9s, 4\n\navaient arr\u00eat\u00e9 de produire. On leur a dit qu\u2019on \u00e9tait dans cette p\u00e9riode d\u2019extinction de la litt\u00e9rature appel\u00e9e le Silence. Il ne restait plus grand monde pour \u00e9crire des livres.\u00a0\t\u00bb\t Genevi\u00e8ve Li\u00e8vre\u00a0: \u00ab Je peux vous dire que \u00e7a r\u00e2lait. On en a marre de manger 100 fois le m\u00eame roman\u00a0! Donnez-nous de la vari\u00e9t\u00e9\u00a0!\u00a0\t\u00bb\tPatrick Martinez\u00a0: \u00ab\u00a0La BPA a donc \u00e9volu\u00e9 de sorte \u00e0 r\u00e9pondre au mieux aux besoins des usagers, conform\u00e9ment \u00e0 nos missions. On leur a donn\u00e9 les moyens d\u2019\u00e9crire. \t\u00bb\tFormer les grands noms de demai\tn\tGenevi\u00e8ve Li\u00e8vre\t\u00a0: \u00ab\u00a0Aujourd\u2019hui la BPA n\u2019est plus seulement un lieu \tde ressources documentaires, c\u2019est un lieu d\u2019expression de la litt\u00e9rature vivante. Et, accessoirement, un lieu de r\u00e9sidence.\u00a0\t\u00bb\tPatrick Martinez\u00a0: \u00ab\u00a0Nous accueillons d\u00e9sormais une cinquantaine de rongeurs-artistes-r\u00e9sidents chaque ann\u00e9e, avec l\u2019intention de former les grands noms de la litt\u00e9rature animali\u00e8re de demain.\u00a0\u00bb \t \tGenevi\u00e8ve Li\u00e8vre\t\u00a0: \u00ab\u00a0En m\u00eame temps \u00e7a parait logique qu\u2019apr\u00e8s avoir \tmang\u00e9 des biblioth\u00e8ques enti\u00e8res, ils se soient mis \u00e0 \u00e9crire.\u00a0\t\u00bb\tPatrick Martinez\u00a0\t: \t\u00ab Lisez ce qu\u2019\u00e9crivent les rats. Vous serez \tstup\u00e9faits.\u00a0\t\u00bb\tGenevi\u00e8ve Li\u00e8vre\t\u00a0: \u00ab\u00a0A ce propos, nous avons depuis peu constat\u00e9 un \trenouvellement de notre lectorat. Des humains fr\u00e9quentent la BPA pour lire les textes \u00e9crits par les rats.\u00a0\t\u00bb\tPatrick Martinez\u00a0: \u00ab On s\u2019est rendu compte que de nombreux humains avaient \u00e0 nouveau envie de lire de la litt\u00e9rature vivante. Apr\u00e8s le Silence, on pourrait dire que la parole litt\u00e9raire revient en gr\u00e2ce, mais sous une forme inattendue.\u00a0\t\u00bb\tGenevi\u00e8ve Li\u00e8vre\t\u00a0:\u00a0\u00ab\u00a0Si les humains viennent chez nous, c\u2019est parce \tque la po\u00e9sie sauvage des rongeurs leur a redonn\u00e9 le go\u00fbt de la litt\u00e9rature. Les humains ont en grande majorit\u00e9 arr\u00eat\u00e9 d\u2019\u00e9crire, tant pis pour eux, c\u2019est trop tard, maintenant la litt\u00e9rature appartient aux rats.\u00a0\t\u00bb\t 5\n\n6",
"removeStopwords":true,
"language":"fr",
"minWordLength":"2",
"maxNumWords":500
}

Another question, we can config “removeStopWords” parameter ? For example we can choose what is a stop word in a array (array(“the”,“a”…)

Hi @Youen,

Thanks, this example is very helpful.

  1. We’ve just deployed a fix to address the rendering failure with certain unicode characters that are included in your text. This text should work now.

  2. We’ve enabled a stopwords parameter that you can specify as a string array in your request. This will override the default stopword list.

Please let me know if you have any other issues!

Ian