2017-10-20 16 views
1

Je travaille API "Sentiment Analysis": http://text-processing.com/demo/sentiment/ Lorsque vous entrez un texte, cliquez sur Entrée, et le résultat sera le texte est positif ou négatif.Comment utiliser une API qui nécessite une entrée de l'utilisateur (Analyse de Sentiment)

J'ai été en mesure de demander le code source. J'ai divisé le code source et maintenant j'imprime seulement le texte par défaut (où l'utilisateur doit entrer son texte). Mais je ne suis pas sûr de savoir comment lancer l'API maintenant après avoir entré un texte. Je veux dire que je veux vérifier si le texte que j'ai entré est positif ou négatif.

import requests 
url = "http://text-processing.com/demo/sentiment/" 
r = requests.get(url) 
text = r.text.split('name="text">')[1] 
text = text.split('<')[0] 
print(text) 

J'ai lu l'API docs, il dit que vous pouvez faire quelque chose comme ceci:

curl -d "text=great" http://text-processing.com/api/sentiment/ 

En boucle IDE Python n'est pas défini. Comment puis-je faire quelque chose comme ça en Python?

Répondre

1

Ce code utilisera python pour obtenir le sentiment pour tout texte que vous entrez:

import os 
import json 
result = json.loads(os.popen('curl -d "text=great" http://text-processing.com/api/sentiment/').read()) 
print result['label'] 

Cependant, étant donné que « curl n'est pas défini », vous devez vous assurer que vous avez installé boucle. Si vous êtes sur un système d'exploitation, vous pouvez l'installer au https://curl.haxx.se/download.html: simplement choisir votre système d'exploitation et système et installer curl. Une fois que vous avez installé curl, le code ci-dessus fonctionnera. Vous pouvez simplement changer le

"text = great" 

partie du code à n'importe quel texte que vous voulez. Dans mon exemple, ce code affichera "pos"; si le texte était négatif, il afficherait "neg". J'espère que cela aide!

+0

Merci beaucoup. Ça m'a aidé. Juste une petite question. Pourquoi l'avez-vous lu comme json? Je pense que c'est en format HTML. Aussi est-il un moyen de faire la même chose sans boucle? Merci encore – codeDojo

+0

Lorsque j'ai imprimé le résultat, j'ai obtenu le résultat {u'probability ': {u'neg': 0.3013501976169055, u'neutral ': 0.27119050546800266, u'pos': 0.6986498023830945}, u'label ': u'pos' }, qui est au format json. Puisque l'API montre la commande curl dans la documentation, je ne pense pas qu'il existe une alternative. J'ai essayé d'ajouter un paramètre "text = great" à la requête url mais il a jeté une erreur. – jaguar

+0

Merci beaucoup !!!!! – codeDojo