class TestSearchEngine(TestCase): def setUp(self): self.se = SearchEngine(1000, 'word2vec.glove.6B.300d.txt', 'sum', forcebin=True) def test_execute_query_Summation(self): self.se.combine = 'sum' self.assertEqual( self.se.execute_query('lose', 'alcohol', False, False), [('booze', 23), ('laws', 228), ('lows', 578), ('dues', 621), ("law's", 766)]) self.assertEqual( self.se.execute_query('summarize', 'warrior', False, False), [("samurai's", 1), ('samurais', 1), ('warriors', 100000000), ('somers', 100000002), ('dragon', 100000002)]) def test_execute_query_Multiplication(self): self.se.combine = 'prod' self.assertEqual( self.se.execute_query('lose', 'alcohol', False, False), [('booze', 114), ('laws', 6501), ('dues', 9120), ("law's", 23552), ('lows', 38304)]) self.assertEqual( self.se.execute_query('summarize', 'warrior', False, False), [('samurais', 1), ("samurai's", 2), ('warriors', 100000000), ('somers', 100000002), ('dragon', 100000002)]) def tearDown(self): pass
while True: query = input( "Start search: \"Sounds like x\" \"Has to do with y\":\n> ") query = query.split() sounds_like = query[0] topic = query[1] if not query: break elif len(query) != 2: print("Sorry, you need to provide two arguments!") continue else: print( se.execute_query(sounds_like, topic, cmd_args.ortho, cmd_args.rhyme)) print("Puns: (•_•) ( •_•)>⌐■-■ (⌐■_■)") frs = FindRelatedSentences(topic, model, cmd_args.verbose, max_results=300, expl=cmd_args.expl) new_corpus = frs.filter_sentences_by_topic() wi = WordInsert(se.best_result, new_corpus, True, max_distance=1) print(wi.insert_word())
if cmd_args.ortho and cmd_args.rhyme: print('Looking for both orthographic matches and rhyming matches is not possible. Please choose one!') sys.exit() while True: query = input("Start search: \"Sounds like x\" \"Has to do with y\":\n> ") query = query.split() if not query: print("Bye, byeee!! Sorry, no pun available for this prompt, yet...") break elif len(query) != 2: print("Sorry, you need to provide two arguments!") continue else: sounds_like = query[0] topic = query[1] print(se.execute_query(sounds_like, topic, cmd_args.ortho, cmd_args.buckeye, cmd_args.rhyme, cmd_args.verbose)) print("Puns: (•_•) ( •_•)>⌐■-■ (⌐■_■)") frs = FindRelatedSentences(topic, model, cmd_args.verbose, max_results=300, expl=cmd_args.expl) new_corpus = frs.filter_sentences_by_topic() wi = WordInsert(se.best_result, new_corpus, True, max_distance=1, joke=cmd_args.joke) for s in wi.insert_word(): print(s)