Programando em Python

Posted by – April 20, 2007

Uma das primeiras coisas que eu começei a fazer nessa minha nova rodada de estudos foi criar uma classe em Python que processa documentos dentro do engine de buscas para que o mesmo seja posteriormente indexado, esse tipo de classe Python tem o nome de estágio, este estágio que criei tem por objetivo extrair do documento a tecnologia chave sobre o qual o documento fala. O código desse meu estágio ficou assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from docproc import Processor, ProcessorStatus

import os.path

class KeyTechnologiesExtractor(Processor.Processor):

   def __init__(self, name):
      Processor.Processor.__init__(self, name)

   def ConfigurationChanged(self, parameters):
      if self.GetParameter('technologies_file'):
         filename = os.path.join(os.environ['FASTSEARCH'] +
         os.path.normpath("/etc/config_data/DocumentProcessor/"),
         self.GetParameter('technologies_file'))
         technologies = open(filename, 'r').read().split(";")
         self.technologiesmap = {}
         for technology in technologies:
            if technology.find("=") > -1:
               technologypair = technology.split("=")
               self.technologiesmap[technologypair[0]] = technologypair[1]
            else:
               self.technologiesmap[technology] = technology
         log(log.FLOG_STATUS, 'KeyTechnologiesExtractor stage started')

   def Process(self, uri, document):
       teaser = document.GetValue("teaser", "")
       for technologyacronym, technologyname in
          self.technologiesmap.iteritems():
          log(log.FLOG_STATUS, "Technology entry: " + technologyacronym)
       if teaser.find(technologyacronym) > -1:
          log(log.FLOG_STATUS, "Found technology entry: " + technologyname)
          document.Set("keytechnologies", technologyname)
          return ProcessorStatus.OK

Esse estágio foi inserido em uma outra estrutura chamada pipeline, um pipepile contém vários estágios, cada estágio realiza algum processamento em cima do documento que está passando dentro do pipeline, após o documento ser completamente processado pelo pipeline o documento é disponibilidado para buscas.
Python é uma das inúmeras tecnologias utilizadas nesse vasto mundo que é o mundo das tecnologias de recuperação de informações.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>