Example #1
0
def main(_):
    parser = argparse.ArgumentParser(description='Conversation Analyzer')
    parser.add_argument('-p', metavar='conversationFilepath', dest='filepath', required=True)
    parser.add_argument('-n', metavar='numberOfMessages', type=int, dest='numMsgs', default=0,
                        help='number of conversation messages to be analyzed')
    baseFolderPath = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
    parser.add_argument('--conf', metavar='configFilepath', dest='configFilepath', default= baseFolderPath+'\\config.ini')

    args = parser.parse_args()
    filepath = args.filepath
    numMsgs = args.numMsgs
    CONFIG_FILEPATH = args.configFilepath

    STATS_SECTION = "Stats"
    config = configparser.ConfigParser()
    config.read(CONFIG_FILEPATH)

    P_BASIC_LENGTH_STATS = config.getboolean(STATS_SECTION, "P_BASIC_LENGTH_STATS")
    P_INTERVAL_STATS = config.getboolean(STATS_SECTION, "P_INTERVAL_STATS")
    P_WORDS_COUNT = config.getboolean(STATS_SECTION, "P_WORDS_COUNT")
    WORDS_COUNT_LIMIT = config.getint(STATS_SECTION, "WORDS_COUNT_LIMIT")
    P_WORDS_USEDJUSTBY = config.getboolean(STATS_SECTION, "P_WORDS_USEDJUSTBY")
    P_DELAY_STATS = config.getboolean(STATS_SECTION, "P_DELAY_STATS")
    P_EMOTICONS_STATS = config.getboolean(STATS_SECTION, "P_EMOTICONS_STATS")
    P_LEXICAL_STATS = config.getboolean(STATS_SECTION, "P_LEXICAL_STATS")

    #conv = Conversation(filepath)
    conv = ConversationDataframe(filepath)
    conv.loadMessages(numMsgs)

    if P_BASIC_LENGTH_STATS:
        stats = conv.stats.generateStats(IConvStats.STATS_NAME_BASICLENGTH)
        mio.printBasicLengthStats(stats)

    if P_INTERVAL_STATS:
        start, end, interval = conv.stats.getIntervalStats()
        days = conv.stats.getDaysWithoutMessages()
        mio.printIntervalStatsFor(start, end, interval, days)

    if P_LEXICAL_STATS:
        stats = conv.stats.generateStats(IConvStats.STATS_NAME_LEXICAL)
        mio.printLexicalStats(stats)

    if P_WORDS_COUNT:
        filepath = conv.statsFolder + '\\' + 'wordCount.txt'
        stats = conv.stats.generateStats(IConvStats.STATS_NAME_WORDCOUNT)
        mio.printDataFrameToFile(stats, filepath)

    #Works just with two senders
    if P_WORDS_USEDJUSTBY:
        mio.printWordsUsedJustByToFile(conv)

    if P_EMOTICONS_STATS:
        stats = conv.stats.generateStats(IConvStats.STATS_NAME_EMOTICONS)
        mio.printEmoticonsStats(stats)
def saveBunchOfStatsDf(conv):
    statsList = [IConvStats.STATS_NAME_BASICLENGTH, IConvStats.STATS_NAME_LEXICAL,
                 IConvStats.STATS_NAME_WORDCOUNT, IConvStats.STATS_NAME_EMOTICONS]
    for stat in statsList:
        filepath = conv.statsFolder + '\\' + stat + '.txt'
        df = conv.stats.generateStats(stat)
        mio.printDataFrameToFile(df, filepath)
        filepath = conv.statsFolder + '\\' + stat + 'byHour.txt'
        df = conv.stats.generateStatsByHour(stat)
        mio.printDataFrameToFile(df, filepath)
        filepath = conv.statsFolder + '\\' + stat + 'byYearAndHour.txt'
        df = conv.stats.generateStatsByYearAndHour(stat)
        mio.printDataFrameToFile(df, filepath)
Example #3
0
def saveBunchOfStatsDf(conv):
    statsList = [
        IConvStats.STATS_NAME_BASICLENGTH, IConvStats.STATS_NAME_LEXICAL,
        IConvStats.STATS_NAME_WORDCOUNT, IConvStats.STATS_NAME_EMOTICONS
    ]
    for stat in statsList:
        filepath = conv.statsFolder + '\\' + stat + '.txt'
        df = conv.stats.generateStats(stat)
        mio.printDataFrameToFile(df, filepath)
        filepath = conv.statsFolder + '\\' + stat + 'byHour.txt'
        df = conv.stats.generateStatsByHour(stat)
        mio.printDataFrameToFile(df, filepath)
        filepath = conv.statsFolder + '\\' + stat + 'byYearAndHour.txt'
        df = conv.stats.generateStatsByYearAndHour(stat)
        mio.printDataFrameToFile(df, filepath)