def test_text_rank_summarization_ds2_days(self, smp_msgs, days): """Generate something for N day interval""" logger.info("Input is %s", smp_msgs) asd = {'days': days, 'size' : 3, 'txt' : u'Summary for first {} days:\n'.format(days)} summ = TextRankTsSummarizer() summ.set_channel('elasticsearch') sumry = summ.summarize(smp_msgs, range_spec=asd) logger.debug("Summary is %s", sumry) # Length of summary is at least 1 and no greater than 3 self.assertTrue(len(sumry) >= 1) self.assertTrue(len(sumry) <= 3) # Length of summary is less than or equal to the original length self.assertTrue(len(sumry) <= len(smp_msgs))
def test_text_rank_summarization_ds3_days(self, sampsize, days): """Generate something for N day interval""" channel, ssamp = random.choice(test_json_msgs_c3) samp = ssamp[random.randint(1,len(ssamp)-2):] logger.info("Input is segment is %s", samp) asd = {'days': days, 'size' : 3, 'txt' : u'Summary for first {} days:\n'.format(days)} summ = TextRankTsSummarizer() summ.set_channel(channel) sumry = summ.summarize(samp, range_spec=asd) logger.debug("Summary is %s", sumry) # Length of summary is at least 1 and no greater than 3 self.assertTrue(len(sumry) >= 1) self.assertTrue(len(sumry) <= 3)
def test_gensim_summarization(self): """Pass the intervals to summarizer""" if "gensim" in SUMMS: asd = [ {"minutes": 60, "size": 2, "txt": u"Summary for first 60 minutes:\n"}, {"hours": 12, "size": 1, "txt": u"Summary for last 12 hours:\n"}, ] summ = None summ = TextRankTsSummarizer() summ.set_channel("elasticsearch") logger.debug("Testing gensim summarizer") sumry = summ.summarize(TestSummarize.test_msgs, range_spec=asd) logger.debug("Summary is %s", sumry) self.assertTrue(len(sumry) > 1) else: pass
def test_text_rank_summarization_ds3_days(self, sampsize, days): """Generate something for N day interval""" channel, ssamp = random.choice(test_json_msgs_c3) samp = ssamp[random.randint(1, len(ssamp) - 2):] logger.info("Input is segment is %s", samp) asd = { 'days': days, 'size': 3, 'txt': u'Summary for first {} days:\n'.format(days) } summ = TextRankTsSummarizer() summ.set_channel(channel) sumry = summ.summarize(samp, range_spec=asd) logger.debug("Summary is %s", sumry) # Length of summary is at least 1 and no greater than 3 self.assertTrue(len(sumry) >= 1) self.assertTrue(len(sumry) <= 3)
def test_text_rank_summarization_ds2_days(self, smp_msgs, days): """Generate something for N day interval""" logger.info("Input is %s", smp_msgs) asd = { 'days': days, 'size': 3, 'txt': u'Summary for first {} days:\n'.format(days) } summ = TextRankTsSummarizer() summ.set_channel('elasticsearch') sumry = summ.summarize(smp_msgs, range_spec=asd) logger.debug("Summary is %s", sumry) # Length of summary is at least 1 and no greater than 3 self.assertTrue(len(sumry) >= 1) self.assertTrue(len(sumry) <= 3) # Length of summary is less than or equal to the original length self.assertTrue(len(sumry) <= len(smp_msgs))
def test_gensim_summarization(self): """Pass the intervals to summarizer""" if "gensim" in SUMMS: asd = [{ 'minutes': 60, 'size': 2, 'txt': u'Summary for first 60 minutes:\n' }, { 'hours': 12, 'size': 1, 'txt': u'Summary for last 12 hours:\n' }] summ = None summ = TextRankTsSummarizer() summ.set_channel('elasticsearch') logger.debug("Testing gensim summarizer") sumry = summ.summarize(TestSummarize.test_msgs, range_spec=asd) logger.debug("Summary is %s", sumry) self.assertTrue(len(sumry) > 1) else: pass
def get_summary(self, **args): channel_id = args['channel_id'] if 'channel_id' in args else None channel_name = args['channel_name'] if 'channel_name' in args else None user_id = args['user_id'] if 'user_id' in args else None user_name = args['user_name'] if 'user_name' in args else None params = args['params'] if 'params' in args else None request_id = uuid.uuid1() response = None msgs = None if self.test: with io.open(TEST_JSON, encoding='utf-8') as iot: msgs = json.load(iot)[u'messages'] else: msgs = self.get_messages(channel_id, params) summ_object = args['summ'] summ_impl = None summary = u'' if summ_object and "spacy" in SUMMS: self.logger.info(u'Using spacy') summ_impl = SpacyTsSummarizer() summ_impl.set_summarizer(summ_object) elif "gensim" in SUMMS: self.logger.info(u'Using gensim') summ_impl = TextRankTsSummarizer() if summ_impl: summ_impl.set_channel(channel_name) summary = summ_impl.summarize(msgs) else: self.logger.warn(u'No summarizer was set!') self.logger.info(u'Summary request %s user_id: %s', request_id, user_id) self.logger.info(u'Summary request %s channel_name: %s', request_id, channel_name) self.logger.info(u'Summary request %s parameters: %s', request_id, params) self.logger.debug(u'Summary request %s messages: %s', request_id, msgs) self.logger.info(u'Summary request %s summary:\n %s', request_id, summary) res = u"*Chat Summary:* \n " + summary + "\n \n" return res