Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2017
556
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.39 KB | None | 0 0
  1. import praw
  2. import time
  3.  
  4. from xml.etree.ElementTree import Element, SubElement, ElementTree
  5.  
  6.  
  7. #Creo una instancia de Reddit
  8. reddit = praw.Reddit(client_id='kgNcJc52YxrqhQ', client_secret="GGV2z1gXvScnRsC5slcPMpxmFKY",
  9.                      password='Correplatano!23', user_agent='script:testsscript:v0.1 by /u/cuakcuak8',
  10.                      username='cuakcuak8')
  11.  
  12. subreddit = reddit.subreddit('history')
  13.  
  14. """
  15. Recogida de datos y creacion del XML
  16. """
  17. top = Element('top')
  18. numDocs=0
  19. for submission in subreddit.top(limit=50):#Recorriendo los post de "top"(populares)
  20.     documento = SubElement(top,"documento")
  21.     numDocs+=1
  22.     print("Numero de documentos = "+str(numDocs))
  23.     #Recogida de datos del post
  24.     titulo = SubElement(documento,"titulo")
  25.     titulo.text=submission.title
  26.     contenido = SubElement(documento,"contenido")
  27.     contenido.text = submission.selftext
  28.     fecha = SubElement(documento,"fecha")
  29.     fecha.text = time.strftime('%Y-%m-%d %H:%M:%S GMT', time.localtime(submission.created_utc))
  30.     tipoDeEntrada = SubElement(documento,"tipo_entrada")
  31.     tipoDeEntrada.text = "post"
  32.    
  33.     submission.comments.replace_more(limit=0)#Cargando todos los comentarios del post
  34.     for comment in submission.comments.list():#Iteracion sobre los comentarios
  35.         if (comment.body != '[removed]' and comment.body != '[deleted]'):
  36.             documento = SubElement(top,"documento")
  37.             numDocs+=1
  38.             #Recogida de datos del comentario
  39.             titulo = SubElement(documento,"titulo")
  40.             titulo.text=""
  41.             contenido = SubElement(documento,"contenido")
  42.             contenido.text = comment.body
  43.             fecha = SubElement(documento,"fecha")
  44.             fecha.text = time.strftime('%Y-%m-%d %H:%M:%S GMT', time.localtime(comment.created_utc))
  45.             tipoDeEntrada = SubElement(documento,"tipo_entrada")
  46.             tipoDeEntrada.text = "comentario"    
  47.            
  48. #Volcado de datos a un XML
  49. path='/home/masterbigdata/TGINE-P1/historyTOP.xml'            
  50. tree = ElementTree(top)
  51. tree.write(path)  
  52. print("Se han obtenido "+str(numDocs)+" documentos y se han volcado en "+path)
  53.  
  54. """
  55. Obtencion de los documentos del XML
  56. """
  57. import xml.etree.ElementTree as ET
  58. tree = ET.parse(path)
  59. root = tree.getroot()
  60.  
  61. corpus=[]
  62. i=0
  63. for documento in root:
  64.     i+=1
  65.     if documento[3].text=="post":
  66.         corpus.append(documento[0].text)
  67.     else:
  68.         corpus.append(documento[1].text)
  69.  
  70. """  
  71. Obtencion de los 10 termnos centrales
  72. """
  73. from sklearn.feature_extraction.text  import  CountVectorizer,TfidfVectorizer
  74.  
  75. vectorizerTfIdf = TfidfVectorizer(analyzer = 'word', min_df=10, max_features=10, stop_words = 'english')
  76. X = vectorizerTfIdf.fit_transform(corpus)
  77.  
  78. palabras=""
  79. for palabra in vectorizerTfIdf.get_feature_names():
  80.     palabra.replace("u'","")
  81.     palabra.strip()
  82.     palabras=palabras+"  "+palabra
  83. print 25*"-"
  84. print "Los 10 terminos centrales de la coleccion son:"
  85. print palabras    
  86.  
  87. """
  88. Obtencion de los 10 terminos mas frecuentes
  89. """
  90. vectorizerCount=CountVectorizer(analyzer = 'word', min_df=10, max_features=100, stop_words = 'english')
  91. Y = vectorizerCount.fit_transform(corpus)
  92.  
  93. palabras=""
  94. for palabra in vectorizerCount.get_feature_names():
  95.     palabra.replace("u'","")
  96.     palabra.strip()
  97.     palabras=palabras+"  "+palabra
  98. print 25*"-"
  99. print "Los 100 terminos mas repetidos son: "
  100. print palabras
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement