def detectEvents(limit=300,similarityType=MED_SIM,minimalTermPerTweet=MIN_TERM_OCCURENCE,remove_noise_with_poisson_Law=REMOVE_NOISE_WITH_POISSON_LAW,printEvents=True) :
    mongoDBHandler=MongoDBHandler()
    tweets=mongoDBHandler.getAllTweets(limit=limit)

    if similarityType==LED_SIM :
        s=LEDSimilarityMatrixBuilder(timeThreshold=TIME_RESOLUTION,distanceThreshold=DISTANCE_RESOLUTION)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    elif similarityType==MED_SIM :
        s=MEDSimilarityMatrixBuilder(timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    else :
        eventDetector=OptimisedEventDetectorMEDBased(tweets,timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
        
    print ""
    print "-"*40
    print "{0} Event detected : ".format(len(events))
    print "-"*40

    if printEvents :
        eventDetector.showTopEvents(top=10)

    return events
Пример #2
0
def detectEvents(limit=300,
                 similarityType=MED_SIM,
                 minimalTermPerTweet=MIN_TERM_OCCURENCE,
                 remove_noise_with_poisson_Law=REMOVE_NOISE_WITH_POISSON_LAW,
                 printEvents=True):
    mongoDBHandler = MongoDBHandler()
    tweets = mongoDBHandler.getAllTweets(limit=limit)

    if similarityType == LED_SIM:
        s = LEDSimilarityMatrixBuilder(timeThreshold=TIME_RESOLUTION,
                                       distanceThreshold=DISTANCE_RESOLUTION)
        eventDetector = EventDetector(tweets, s)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    elif similarityType == MED_SIM:
        s = MEDSimilarityMatrixBuilder(timeResolution=TIME_RESOLUTION,
                                       distanceResolution=DISTANCE_RESOLUTION,
                                       scaleNumber=SCALE_NUMBER,
                                       minSimilarity=MIN_SIMILARITY)
        eventDetector = EventDetector(tweets, s)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    else:
        eventDetector = OptimisedEventDetectorMEDBased(
            tweets,
            timeResolution=TIME_RESOLUTION,
            distanceResolution=DISTANCE_RESOLUTION,
            scaleNumber=SCALE_NUMBER,
            minSimilarity=MIN_SIMILARITY)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)

    print ""
    print "-" * 40
    print "{0} Event detected : ".format(len(events))
    print "-" * 40

    if printEvents:
        eventDetector.showTopEvents(top=10)

    return events
def detectEvents(limit=300,similarityType=MED_SIM,minimalTermPerTweet=MIN_TERM_OCCURENCE,remove_noise_with_poisson_Law=REMOVE_NOISE_WITH_POISSON_LAW,printEvents=True,printInFile="events.txt",useOnlyHashtags=False,mongoDBName='Twitter',mongoCollectionName="tweets") :
    staringTime=time.time()
    mongoDBHandler=MongoDBHandler(database_name=mongoDBName,collection_name=mongoCollectionName)
    tweets=mongoDBHandler.getAllTweets(limit=limit)

    if similarityType==LED_SIM :
        s=LEDSimilarityMatrixBuilder(timeThreshold=TIME_RESOLUTION,distanceThreshold=DISTANCE_RESOLUTION,useOnlyHashtags=useOnlyHashtags)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    elif similarityType==MED_SIM :
        s=MEDSimilarityMatrixBuilder(timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY,useOnlyHashtags=useOnlyHashtags)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    else :
        eventDetector=OptimisedEventDetectorMEDBased(tweets,timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY,useOnlyHashtags=useOnlyHashtags)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
        
    print ""
    print "-"*40
    print "{0} Event detected : ".format(len(events))
    print "-"*40

    if printEvents :
        eventDetector.showTopEvents(top=len(events))

    if printInFile :
        txtFile=open(printInFile, 'w')
        elapsed_time=(time.time()-staringTime)
        txtFile.write("Total elapsed time : {0}s\n".format(elapsed_time))
        txtFile.write("-"*40+"\n")
        SEPARATOR="\t|"
        HEADER="|"+SEPARATOR.join(["Median time","estimated duration (s)","mean latitude","mean longitude","radius (m)","user number","tweets number","top hashtags"])+SEPARATOR+"\n"
        txtFile.write(HEADER)
        txtFile.write("-"*40+"\n")
        for event in events :
            line=eventDetector.getStringOfEvent(event)
            txtFile.write(line+"\n")
            txtFile.write("-"*40+"\n")
        txtFile.close();
        
    return events
def detectEvents(limit=300,similarityType=MED_SIM,minimalTermPerTweet=MIN_TERM_OCCURENCE,remove_noise_with_poisson_Law=REMOVE_NOISE_WITH_POISSON_LAW,printEvents=True,fileName="inputTweets.txt",printInFile="events.txt",useOnlyHashtags=False) :
    staringTime=time.time()
    #mongoDBHandler=MongoDBHandler(database_name=mongoDBName,collection_name=mongoCollectionName)
    #tweets=mongoDBHandler.getAllTweets(limit=limit)
    tweets=getTweetsFromFile(fileName);
    if similarityType==LED_SIM :
        s=LEDSimilarityMatrixBuilder(timeThreshold=TIME_RESOLUTION,distanceThreshold=DISTANCE_RESOLUTION,useOnlyHashtags=useOnlyHashtags)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    elif similarityType==MED_SIM :
        s=MEDSimilarityMatrixBuilder(timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY,useOnlyHashtags=useOnlyHashtags)
        eventDetector=EventDetector(tweets,s)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    else :
        eventDetector=OptimisedEventDetectorMEDBased(tweets,timeResolution=TIME_RESOLUTION,distanceResolution=DISTANCE_RESOLUTION,scaleNumber=SCALE_NUMBER,minSimilarity=MIN_SIMILARITY,useOnlyHashtags=useOnlyHashtags)
        events=eventDetector.getEvents(minimalTermPerTweet=minimalTermPerTweet,remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
        
    print ""
    print "-"*40
    print "{0} Event detected : ".format(len(events))
    print "-"*40

    if printEvents :
        eventDetector.showTopEvents(top=len(events))

    if printInFile :
        txtFile=open(printInFile, 'w')
        elapsed_time=(time.time()-staringTime)
        #txtFile.write("Total elapsed time : {0}s\n".format(elapsed_time))
        #txtFile.write("-"*40+"\n")
        SEPARATOR=","
        HEADER=SEPARATOR.join(["key","event.type","eventDetector.endEpoch","event.strength","event.periodicity","event.period","mean_time","stddev_time","expression","dispersion","count","medoid","community_ID","nb_events_covered","dispersion","count","number_of_hashtags","covered_events"])+"\n"
        txtFile.write(HEADER)
        #txtFile.write("-"*40+"\n")
        for event in events :
            line=eventDetector.getStringOfEvent(event)
            txtFile.write(line+"\n")
            #txtFile.write("-"*40+"\n")
        txtFile.close();
        
    return events
Пример #5
0
def detectEvents(limit=300,
                 similarityType=MED_SIM,
                 minimalTermPerTweet=MIN_TERM_OCCURENCE,
                 remove_noise_with_poisson_Law=REMOVE_NOISE_WITH_POISSON_LAW,
                 printEvents=True,
                 printInFile="events.txt",
                 useOnlyHashtags=False,
                 mongoDBName='Twitter',
                 mongoCollectionName="tweets"):
    staringTime = time.time()
    mongoDBHandler = MongoDBHandler(database_name=mongoDBName,
                                    collection_name=mongoCollectionName)
    tweets = mongoDBHandler.getAllTweets(limit=limit)

    if similarityType == LED_SIM:
        s = LEDSimilarityMatrixBuilder(timeThreshold=TIME_RESOLUTION,
                                       distanceThreshold=DISTANCE_RESOLUTION,
                                       useOnlyHashtags=useOnlyHashtags)
        eventDetector = EventDetector(tweets, s)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    elif similarityType == MED_SIM:
        s = MEDSimilarityMatrixBuilder(timeResolution=TIME_RESOLUTION,
                                       distanceResolution=DISTANCE_RESOLUTION,
                                       scaleNumber=SCALE_NUMBER,
                                       minSimilarity=MIN_SIMILARITY,
                                       useOnlyHashtags=useOnlyHashtags)
        eventDetector = EventDetector(tweets, s)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)
    else:
        eventDetector = OptimisedEventDetectorMEDBased(
            tweets,
            timeResolution=TIME_RESOLUTION,
            distanceResolution=DISTANCE_RESOLUTION,
            scaleNumber=SCALE_NUMBER,
            minSimilarity=MIN_SIMILARITY,
            useOnlyHashtags=useOnlyHashtags)
        events = eventDetector.getEvents(
            minimalTermPerTweet=minimalTermPerTweet,
            remove_noise_with_poisson_Law=remove_noise_with_poisson_Law)

    print ""
    print "-" * 40
    print "{0} Event detected : ".format(len(events))
    print "-" * 40

    if printEvents:
        eventDetector.showTopEvents(top=len(events))

    if printInFile:
        txtFile = open(printInFile, 'w')
        elapsed_time = (time.time() - staringTime)
        txtFile.write("Total elapsed time : {0}s\n".format(elapsed_time))
        txtFile.write("-" * 40 + "\n")
        SEPARATOR = "\t|"
        HEADER = "|" + SEPARATOR.join([
            "Median time", "estimated duration (s)", "mean latitude",
            "mean longitude", "radius (m)", "user number", "tweets number",
            "top hashtags"
        ]) + SEPARATOR + "\n"
        txtFile.write(HEADER)
        txtFile.write("-" * 40 + "\n")
        for event in events:
            line = eventDetector.getStringOfEvent(event)
            txtFile.write(line + "\n")
            txtFile.write("-" * 40 + "\n")
        txtFile.close()

    return events