Mining e-post er et middel for å trekke ut informasjon , som for eksempel antall ord , setninger , eller rikdom av abonnentens ordforråd , fra teksten i e-posten . Skrive en e gruvearbeider med Python krever mange " bevegelige deler " i form av Python- utvidelser , kalt pakker, som laster ned e-postmeldinger av av servere. Meldinger blir konvertert til strenger slik at andre Python- pakker kan analysere dem og vise hva de finner. Dette er en svært komplisert oppgave som krever mer enn et forbigående uformell kunnskap om Python programmering. Derfor fortsette med forsiktighet og tålmodighet . Du trenger
Internett-tilkobling
Python 2.6 eller høyere
NLTK Python Package
Vis flere instruksjoner
en
Åpne en terminal sesjon og skriv python - v ved ledeteksten for å sjekke at du har Python 2.6 eller høyere, men ikke 3.0 eller høyere. Versjoner 2.6 eller 2.7 er ideelle fordi de er kompatible med NLTK og PyYAML . Besøk Python pakker indeksen siden , finne og laste ned PyYAML og NLTK pakker. Pakk /pakk dem . Endre katalogen til PyYAML katalogen. På kommandolinjen skriver : sudo python setup.py install . Det skal se slik ut : en
My- Datamaskin: PyYAML - 3.2.0 Me $ sudo python setup.py installere
Du vil bli bedt om å oppgi et passord . Skriver den og trykker retur -knappen. Følg denne fremgangsmåten for hver Python pakken du installerer
2
ned postmeldinger for analysering med følgende linjer med kode : . !
# /Usr /local /bin /python
import poplib , getpass , sys , mailconfig
mailserver = mailconfig.popservername
MailUser = mailconfig.popusername
mailpasswd = getpass.getpass (' Passord for% s? ' % mailserver )
server = msgBytes = server.stat ( )
print (' Det finnes ' , msgCount , ' postmeldinger i ' , msgBytes , ' bytes ' )
print ( server.list ( ) )
print (' - ' * 80 )
input (' [ Press Enter ] ')
for i in range ( msgCount ) : en
hdr , melding, octets = server.retr (i +1)
for linje i meldingen : print ( line.decode ( ) )
read (' - ' * 80 )
< p > hvis jeg < msgCount - 1 : en p Dette skriptet vil koble til pop3 e-postserver, be deg om brukernavn og passord , telle antall meldinger på serveren, og lese dem inn i minnet
3
Mine dine e-postmeldinger ved å konvertere hver melding til en streng , en innfødt datatype i Python , som kan søkes med Python streng metoder, regulære uttrykk motor, og Natural Language Toolkit :
m = msgCount [ 1 ]
s = str (m )
fra email.parser import parser
import nltk
import re
4
Mine første meldingen for noen opplysninger av interesse. Oppdag hvor mange ord er i den meldingen ved å skrive inn følgende kommando : en
>>>> len (e )
p Det vil returnere et heltall for antall ord . Å finne hver setning med ordet boliglån, skriver du inn følgende NLTK kommando:
>>>> s.concordance ( "boliglån" )
Dette vil returnere hver setning med ordet boliglån i det, veldig nyttig for detektiver undersøke boliglån svindel
.