Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. import os
  2. import numpy
  3.  
  4. from pandas import DataFrame
  5. from sklearn.feature_extraction.text import CountVectorizer
  6. from sklearn.naive_bayes import MultinomialNB
  7. from sklearn.pipeline import Pipeline
  8.  
  9. # classes
  10. DRUG = 'drug'
  11. OTHER = 'other'
  12.  
  13. # classificar arquivos manualmente em 1 pasta de
  14. # pagina de medicamento e 1 pasta de nao-medicamento
  15.  
  16. #TODO: colocar as pastas
  17. DIRS = []
  18.  
  19. #TODO: leitura de arquivos de uma pasta
  20. def read_files(path):
  21. pass
  22.  
  23. # gerando dataframe para uma pasta
  24. def generate_dataframe(path, label):
  25. rows = []
  26. index = []
  27. for file_name, text in read_files(path):
  28. rows.append({'text': text, 'class': label})
  29. index.append(file_name)
  30. df = DataFrame(rows, index=index)
  31. return df
  32.  
  33. # leitura de todos os arquivos
  34. data = DataFrame({'text': [], 'class': []})
  35. for path, label in DIRS:
  36. data = data.append(generate_dataframe(path, label))
  37.  
  38. # embaralhando os documentos
  39. data = data.reindex(numpy.random.permutation(data.index))
  40.  
  41. # extraindo features e classificando com naive bayes
  42. pipeline = Pipeline([ ('vectorizer', CountVectorizer()) , ('classifier', MultinomialNB()) ])
  43. pipeline.fit(data['text'].values, data['class'].values)
  44.  
  45. #TODO: validacao
  46.  
  47. #TODO: salvar o classificador
  48.  
  49. # melhorias = usar outros classif;
  50. # eliminar stopwords em pt-BR;
  51. # ajustar parametros dos classif...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement