review-mate / review-mate-ai-ABSA

0 stars 0 forks source link

mvp 모델 구조 이해하기 #7

Open J-nowcow opened 1 year ago

J-nowcow commented 1 year ago
J-nowcow commented 1 year ago

[메모] eval_unified.sh에서

python main.py \ --data_path "../data/" \ ...

$OUT_DIR/eval.log done

부분이 있는데 이렇게 코드 짜면 eval.log에 print로 출력한 것들이 찍힘 이게 필요한 이유는 터미널에서 .sh 파일 실행하면 print문은 터미널에는 찍히지 않기 때문

J-nowcow commented 1 year ago

eval_unified.sh 파일 실행하면 init_args() 에서 arguments 받아오고, frain_function에서 do_inference 부분 실행됨 model_path 맞춰주면 tokenizer, model 초기화됨

=> 여기서 t5tokenizer 부분 뜯으면 될 것 같은 느낌

J-nowcow commented 1 year ago
J-nowcow commented 1 year ago
inference 코드 예시
Random seed set as 10 Namespace(adam_epsilon=1e-08, agg_strategy='vote', beam_size=1, check_val_every_n_epoch=10, constrained_decode=True, ctrl_token='post', data_path='../data/', data_ratio=1.0, dataset='seed10', do_inference=True, do_train=False, eval_batch_size=128, eval_data_split='test', gradient_accumulation_steps=1, learning_rate=0.0001, load_ckpt_name=None, load_path_cache=False, lowercase=True, max_seq_length=200, model_name_or_path='t5-base', multi_path=True, multi_task=True, n_gpu=0, num_path=5, num_train_epochs=20, output_dir='../outputs/asqp/top5_seed10', save_top_k=0, seed=10, single_view_type='rank', sort_label=True, task='asqp', top_k=5, train_batch_size=16, warmup_steps=0.0, weight_decay=0.0) ****** Conduct inference on trained checkpoint ****** Load trained model from ../outputs/asqp/top5_seed10 Note that a pretrained model is required and `do_true` should be False model_path : final seed: 10, beam: 1, constrained: True asqp rest15 Total examples = 34 Total examples = 34 Ori sent size: 34 Input size: 170 170 Examples: [['asqp', ':', 'rest15', ':', 'gross', 'food', '–', 'wow', '-', '[A]', '[O]', '[S]', '[C]'], ['asqp', ':', 'rest15', ':', 'gross', 'food', '–', 'wow', '-', '[O]', '[A]', '[C]', '[S]'], ['asqp', ':', 'rest15', ':', 'gross', 'food', '–', 'wow', '-', '[A]', '[O]', '[C]', '[S]'], ['asqp', ':', 'rest15', ':', 'gross', 'food', '–', 'wow', '-', '[O]', '[A]', '[S]', '[C]'], ['asqp', ':', 'rest15', ':', 'gross', 'food', '–', 'wow', '-', '[O]', '[S]', '[C]', '[A]'], ['asqp', ':', 'rest15', ':', 'its', 'alright', '[A]', '[O]', '[S]', '[C]'], ['asqp', ':', 'rest15', ':', 'its', 'alright', '[O]', '[A]', '[C]', '[S]'], ['asqp', ':', 'rest15', ':', 'its', 'alright', '[A]', '[O]', '[C]', '[S]'], ['asqp', ':', 'rest15', ':', 'its', 'alright', '[O]', '[A]', '[S]', '[C]'], ['asqp', ':', 'rest15', ':', 'its', 'alright', '[O]', '[S]', '[C]', '[A]']] ['[A] food [O] gross [S] bad [C] food quality', '[O] gross [A] food [C] food quality [S] bad', '[A] food [O] gross [C] food quality [S] bad', '[O] gross [A] food [S] bad [C] food quality', '[O] gross [S] bad [C] food quality [A] food', '[A] it [O] alright [S] ok [C] restaurant general', '[O] alright [A] it [C] restaurant general [S] ok', '[A] it [O] alright [C] restaurant general [S] ok', '[O] alright [A] it [S] ok [C] restaurant general', '[O] alright [S] ok [C] restaurant general [A] it'] task, data: asqp rest15 target: [('ambience general', 'decor', 'ok', 'distraction'), ('food prices', 'eggplant', 'bad', '300 bucks'), ('food quality', 'eggplant', 'bad', 'cold'), ('service general', 'null', 'bad', '2 frickin hours')] output: ["[A] decor [O] won't notice [S] bad [C] ambience general"] sent: ['The', 'decor', 'however', 'seems', 'to', 'be', 'the', 'distraction', 'so', 'you', 'wo', "n't", 'notice', 'that', 'you', 'just', 'payed', '300', 'bucks', 'for', 'some', 'cold', 'eggplant', 'that', 'took', '2', 'FRICKIN', 'HOURS', 'TO', 'COME', '!', '!', '!', '!'] counter: {('ambience general', 'decor', 'bad', 'distraction'): 2, ('ambience general', 'decor', 'bad', "won't notice"): 3} output quads: ["[A] decor [O] won't notice [S] bad [C] ambience general"] multi_path: ['[A] decor [O] distraction [S] bad [C] ambience general', "[O] won't notice [A] decor [C] ambience general [S] bad", '[A] decor [O] distraction [C] ambience general [S] bad', "[O] won't notice [A] decor [S] bad [C] ambience general", "[O] won't notice [S] bad [C] ambience general [A] decor"] task, data: asqp rest15 target: [('food quality', 'bun', 'great', 'perfect'), ('food quality', 'hot dogs', 'great', 'good'), ('food quality', 'pork croquette sandwich', 'great', 'fantastic')] output: ['[A] hot dogs [O] good [S] great [C] food quality', '[A] pork croquette sandwich [O] fantastic [S] great [C] food quality', '[A] pork croquette sandwich [O] perfect [S] great [C] food quality'] sent: ['The', 'hot', 'dogs', 'are', 'good', ',', 'yes', ',', 'but', 'the', 'reason', 'to', 'get', 'over', 'here', 'is', 'the', 'fantastic', 'pork', 'croquette', 'sandwich', ',', 'perfect', 'on', 'its', 'supermarket', 'squishy', 'bun', '.'] counter: {('food quality', 'hot dogs', 'great', 'good'): 5, ('food quality', 'pork croquette sandwich', 'great', 'fantastic'): 5, ('food quality', 'pork croquette sandwich', 'great', 'perfect'): 5} output quads: ['[A] hot dogs [O] good [S] great [C] food quality', '[A] pork croquette sandwich [O] fantastic [S] great [C] food quality', '[A] pork croquette sandwich [O] perfect [S] great [C] food quality'] multi_path: ['[A] hot dogs [O] good [S] great [C] food quality [SSEP] [A] pork croquette sandwich [O] fantastic [S] great [C] food quality [SSEP] [A] pork croquette sandwich [O] perfect [S] great [C] food quality', '[O] good [A] hot dogs [C] food quality [S] great [SSEP] [O] fantastic [A] pork croquette sandwich [C] food quality [S] great [SSEP] [O] perfect [A] pork croquette sandwich [C] food quality [S] great', '[A] hot dogs [O] good [C] food quality [S] great [SSEP] [A] pork croquette sandwich [O] fantastic [C] food quality [S] great [SSEP] [A] pork croquette sandwich [O] perfect [C] food quality [S] great', '[O] good [A] hot dogs [S] great [C] food quality [SSEP] [O] fantastic [A] pork croquette sandwich [S] great [C] food quality [SSEP] [O] perfect [A] pork croquette sandwich [S] great [C] food quality', '[O] good [S] great [C] food quality [A] hot dogs [SSEP] [O] fantastic [S] great [C] food quality [A] pork croquette sandwich [SSEP] [O] perfect [S] great [C] food quality [A] pork croquette sandwich'] task, data: asqp rest15 target: [('restaurant general', 'null', 'great', 'great'), ('restaurant prices', 'null', 'great', 'fair')] output: ['[A] null [O] fair [S] great [C] restaurant prices', '[A] null [O] great time [S] great [C] restaurant general'] sent: ['In', 'the', 'end', 'you', 'end', 'up', 'with', 'a', 'fair', 'tab', 'and', 'NOTHING', 'BUT', 'A', 'GREAT', 'TIME', '!', '!', '!'] counter: {('restaurant prices', 'null', 'great', 'fair'): 5, ('restaurant general', 'null', 'great', 'great time'): 5} output quads: ['[A] null [O] fair [S] great [C] restaurant prices', '[A] null [O] great time [S] great [C] restaurant general'] multi_path: ['[A] it [O] fair [S] great [C] restaurant prices [SSEP] [A] it [O] great time [S] great [C] restaurant general', '[O] fair [A] it [C] restaurant prices [S] great [SSEP] [O] great time [A] it [C] restaurant general [S] great', '[A] it [O] fair [C] restaurant prices [S] great [SSEP] [A] it [O] great time [C] restaurant general [S] great', '[O] fair [A] it [S] great [C] restaurant prices [SSEP] [O] great time [A] it [S] great [C] restaurant general', '[O] fair [S] great [C] restaurant prices [A] it [SSEP] [O] great time [S] great [C] restaurant general [A] it'] task, data: asqp rest15 target: [('service general', 'null', 'bad', 'nearly an hour')] output: ['[A] appetizers [O] took nearly an hour [S] bad [C] food style_options'] sent: ['Appetizers', 'took', 'nearly', 'an', 'hour', '.'] counter: {('food style_options', 'appetizers', 'bad', 'took nearly an hour'): 5} output quads: ['[A] appetizers [O] took nearly an hour [S] bad [C] food style_options'] multi_path: ['[A] appetizers [O] took nearly an hour [S] bad [C] food style_options', '[O] took nearly an hour [A] appetizers [C] food style_options [S] bad', '[A] appetizers [O] took nearly an hour [C] food style_options [S] bad', '[O] took nearly an hour [A] appetizers [S] bad [C] food style_options', '[O] took nearly an hour [S] bad [C] food style_options [A] appetizers'] task, data: asqp rest15 target: [('service general', 'null', 'great', 'good')] output: ['[A] null [O] good [S] great [C] restaurant general'] sent: ['Which', 'lets', 'face', 'it', '...', '.at', 'times', 'it', "'s", 'a', 'good', 'thing', '.'] counter: {('restaurant general', 'null', 'great', 'good'): 5} output quads: ['[A] null [O] good [S] great [C] restaurant general'] multi_path: ['[A] it [O] good [S] great [C] restaurant general', '[O] good [A] it [C] restaurant general [S] great', '[A] it [O] good [C] restaurant general [S] great', '[O] good [A] it [S] great [C] restaurant general', '[O] good [S] great [C] restaurant general [A] it'] task, data: asqp rest15 target: [('ambience general', 'restaurant', 'great', 'inviting')] output: ['[A] restaurant [O] inviting [S] great [C] restaurant general', '[A] restaurant [O] warm [S] great [C] ambience general'] sent: ['I', 'was', 'visiting', 'New', 'York', 'City', 'with', 'a', 'friend', 'and', 'we', 'discovered', 'this', 'really', 'warm', 'and', 'inviting', 'restaurant', '.'] counter: {('ambience general', 'restaurant', 'great', 'warm'): 5, ('restaurant general', 'restaurant', 'great', 'inviting'): 5} output quads: ['[A] restaurant [O] warm [S] great [C] ambience general', '[A] restaurant [O] inviting [S] great [C] restaurant general'] multi_path: ['[A] restaurant [O] warm [S] great [C] ambience general [SSEP] [A] restaurant [O] inviting [S] great [C] restaurant general', '[O] warm [A] restaurant [C] ambience general [S] great [SSEP] [O] inviting [A] restaurant [C] restaurant general [S] great', '[A] restaurant [O] warm [C] ambience general [S] great [SSEP] [A] restaurant [O] inviting [C] restaurant general [S] great', '[O] warm [A] restaurant [S] great [C] ambience general [SSEP] [O] inviting [A] restaurant [S] great [C] restaurant general', '[O] warm [S] great [C] ambience general [A] restaurant [SSEP] [O] inviting [S] great [C] restaurant general [A] restaurant'] task, data: asqp rest15 target: [('service general', 'null', 'great', 'get a table without a reservation')] output: ['[A] null [O] can get a table [S] bad [C] restaurant miscellaneous'] sent: ['You', 'can', 'get', 'a', 'table', 'without', 'a', 'reservation', 'if', 'you', 'get', 'there', 'early', 'I', 'they', 'do', "n't", 'make', 'you', 'by', 'bottles', '.'] counter: {('restaurant miscellaneous', 'null', 'bad', 'can get a table'): 5} output quads: ['[A] null [O] can get a table [S] bad [C] restaurant miscellaneous'] multi_path: ['[A] it [O] can get a table [S] bad [C] restaurant miscellaneous', '[O] can get a table [A] it [C] restaurant miscellaneous [S] bad', '[A] it [O] can get a table [C] restaurant miscellaneous [S] bad', '[O] can get a table [A] it [S] bad [C] restaurant miscellaneous', '[O] can get a table [S] bad [C] restaurant miscellaneous [A] it'] task, data: asqp rest15 target: [('food quality', 'quesadilla', 'bad', 'no sense of proportion or flavor'), ('food style_options', 'quesadilla', 'bad', 'no sense of proportion')] output: ['[A] quesadilla [O] no sense of proportion or flavor [S] bad [C] food quality'] sent: ['My', 'quesadilla', 'tasted', 'like', 'it', 'had', 'been', 'made', 'by', 'a', 'three-year', 'old', 'with', 'no', 'sense', 'of', 'proportion', 'or', 'flavor', '.'] counter: {('food quality', 'quesadilla', 'bad', 'no sense of proportion or flavor'): 5} output quads: ['[A] quesadilla [O] no sense of proportion or flavor [S] bad [C] food quality'] multi_path: ['[A] quesadilla [O] no sense of proportion or flavor [S] bad [C] food quality', '[O] no sense of proportion or flavor [A] quesadilla [C] food quality [S] bad', '[A] quesadilla [O] no sense of proportion or flavor [C] food quality [S] bad', '[O] no sense of proportion or flavor [A] quesadilla [S] bad [C] food quality', '[O] no sense of proportion or flavor [S] bad [C] food quality [A] quesadilla'] task, data: asqp rest15 target: [('restaurant miscellaneous', 'the four seasons', 'ok', 'a sort of landmark'), ('restaurant prices', 'the four seasons', 'bad', 'charge you through the nose')] output: ['[A] the four seasons [O] charge you through the nose [S] bad [C] service general'] sent: ['The', 'Four', 'Seasons', 'has', 'history', 'and', 'it', 'is', 'a', 'sort', 'of', 'landmark', 'of', 'New', 'York', 'City', 'restaurants', ',', 'but', 'trust', 'me', ',', 'they', 'will', 'charge', 'you', 'through', 'the', 'nose', 'just', 'so', 'that', 'you', 'can', 'say', '``', 'I', "'ve", 'been', 'to', 'the', 'four', 'seasons', 'restaurant', '``', '.'] counter: {('restaurant miscellaneous', 'the four seasons', 'ok', 'a sort of landmark'): 2, ('service general', 'the four seasons', 'bad', 'charge you through the nose'): 3, ('restaurant miscellaneous', 'the four seasons', 'bad', 'charge you through the nose'): 2} output quads: ['[A] the four seasons [O] charge you through the nose [S] bad [C] service general'] multi_path: ['[A] the four seasons [O] a sort of landmark [S] ok [C] restaurant miscellaneous [SSEP] [A] the four seasons [O] charge you through the nose [S] bad [C] service general', '[O] charge you through the nose [A] the four seasons [C] restaurant miscellaneous [S] bad', '[A] the four seasons [O] a sort of landmark [C] restaurant miscellaneous [S] ok [SSEP] [A] the four seasons [O] charge you through the nose [C] service general [S] bad', '[O] charge you through the nose [A] the four seasons [S] bad [C] restaurant miscellaneous', '[O] charge you through the nose [S] bad [C] service general [A] the four seasons'] task, data: asqp rest15 target: [('ambience general', 'belly dancers', 'great', 'talented'), ('food quality', 'baba ganoush', 'great', 'enjoy delicious')] output: ['[A] baba ganoush [O] delicious [S] great [C] food quality', '[A] belly dancers [O] talented [S] great [C] ambience general'] sent: ['Watch', 'the', 'talented', 'belly', 'dancers', 'as', 'you', 'enjoy', 'delicious', 'baba', 'ganoush', 'that', "'s", 'more', 'lemony', 'than', 'smoky', '.'] counter: {('ambience general', 'belly dancers', 'great', 'talented'): 5, ('food quality', 'baba ganoush', 'great', 'enjoy'): 2, ('food quality', 'baba ganoush', 'great', 'lemony than smoky'): 2, ('food quality', 'baba ganoush', 'great', 'delicious'): 3} output quads: ['[A] belly dancers [O] talented [S] great [C] ambience general', '[A] baba ganoush [O] delicious [S] great [C] food quality'] multi_path: ['[A] belly dancers [O] talented [S] great [C] ambience general [SSEP] [A] baba ganoush [O] enjoy [S] great [C] food quality [SSEP] [A] baba ganoush [O] lemony than smoky [S] great [C] food quality', '[O] talented [A] belly dancers [C] ambience general [S] great [SSEP] [O] delicious [A] baba ganoush [C] food quality [S] great', '[A] belly dancers [O] talented [C] ambience general [S] great [SSEP] [A] baba ganoush [O] enjoy [C] food quality [S] great [SSEP] [A] baba ganoush [O] lemony than smoky [C] food quality [S] great', '[O] talented [A] belly dancers [S] great [C] ambience general [SSEP] [O] delicious [A] baba ganoush [S] great [C] food quality', '[O] talented [S] great [C] ambience general [A] belly dancers [SSEP] [O] delicious [S] great [C] food quality [A] baba ganoush'] task, data: asqp rest15 target: [('restaurant miscellaneous', 'bfc', 'bad', 'wait'), ('service general', 'front of house staff', 'bad', 'abused'), ('service general', 'null', 'bad', 'over an hour later')] output: ['[A] front of house staff [O] abused [S] bad [C] service general'] sent: ['As', 'BFC', 'does', "n't", 'take', 'reservations', 'you', 'almost', 'always', 'have', 'to', 'wait', 'by', 'the', 'bar', '-', 'and', 'be', 'abused', 'by', 'the', 'front', 'of', 'house', 'staff', 'until', 'you', 'are', 'seated', ',', 'which', 'can', 'be', 'over', 'an', 'hour', 'later', '!'] counter: {('service general', 'front of house staff', 'bad', 'abused'): 5} output quads: ['[A] front of house staff [O] abused [S] bad [C] service general'] multi_path: ['[A] front of house staff [O] abused [S] bad [C] service general', '[O] abused [A] front of house staff [C] service general [S] bad', '[A] front of house staff [O] abused [C] service general [S] bad', '[O] abused [A] front of house staff [S] bad [C] service general', '[O] abused [S] bad [C] service general [A] front of house staff'] task, data: asqp rest15 target: [('food quality', 'frozen black sesame mousse', 'ok', 'interesting'), ('food quality', 'frozen black sesame mousse', 'ok', 'not extraordinary'), ('food quality', 'matcha ( powdered green tea ) and blueberry cheesecake', 'great', 'phenomenal')] output: ['[A] blueberry cheesecake [O] phenomenal [S] great [C] food quality', '[A] frozen black sesame mousse [O] interesting [S] great [C] food quality', '[A] frozen black sesame mousse [O] not extraordinary [S] bad [C] food quality', '[A] matcha ( powdered green tea ) [O] phenomenal [S] great [C] food quality'] sent: ['For', 'desserts', ',', 'we', 'tried', 'the', 'frozen', 'black', 'sesame', 'mousse', '(', 'interesting', 'but', 'not', 'extraordinary', ')', 'and', 'matcha', '(', 'powdered', 'green', 'tea', ')', 'and', 'blueberry', 'cheesecake', ',', 'which', 'was', 'phenomenal', '.'] counter: {('food quality', 'frozen black sesame mousse', 'great', 'interesting'): 5, ('food quality', 'frozen black sesame mousse', 'bad', 'not extraordinary'): 5, ('food quality', 'matcha ( powdered green tea )', 'great', 'phenomenal'): 5, ('food quality', 'blueberry cheesecake', 'great', 'phenomenal'): 5} output quads: ['[A] frozen black sesame mousse [O] interesting [S] great [C] food quality', '[A] frozen black sesame mousse [O] not extraordinary [S] bad [C] food quality', '[A] matcha ( powdered green tea ) [O] phenomenal [S] great [C] food quality', '[A] blueberry cheesecake [O] phenomenal [S] great [C] food quality'] multi_path: ['[A] frozen black sesame mousse [O] interesting [S] great [C] food quality [SSEP] [A] frozen black sesame mousse [O] not extraordinary [S] bad [C] food quality [SSEP] [A] matcha ( powdered green tea ) [O] phenomenal [S] great [C] food quality [SSEP] [A] blueberry cheesecake [O] phenomenal [S] great [C] food quality', '[O] interesting [A] frozen black sesame mousse [C] food quality [S] great [SSEP] [O] not extraordinary [A] frozen black sesame mousse [C] food quality [S] bad [SSEP] [O] phenomenal [A] matcha ( powdered green tea ) [C] food quality [S] great [SSEP] [O] phenomenal [A] blueberry cheesecake [C] food quality [S] great', '[A] frozen black sesame mousse [O] interesting [C] food quality [S] great [SSEP] [A] frozen black sesame mousse [O] not extraordinary [C] food quality [S] bad [SSEP] [A] matcha ( powdered green tea ) [O] phenomenal [C] food quality [S] great [SSEP] [A] blueberry cheesecake [O] phenomenal [C] food quality [S] great', '[O] interesting [A] frozen black sesame mousse [S] great [C] food quality [SSEP] [O] not extraordinary [A] frozen black sesame mousse [S] bad [C] food quality [SSEP] [O] phenomenal [A] matcha ( powdered green tea ) [S] great [C] food quality [SSEP] [O] phenomenal [A] blueberry cheesecake [S] great [C] food quality', '[O] interesting [S] great [C] food quality [A] frozen black sesame mousse [SSEP] [O] not extraordinary [S] bad [C] food quality [A] frozen black sesame mousse [SSEP] [O] phenomenal [S] great [C] food quality [A] matcha ( powdered green tea ) [SSEP] [O] phenomenal [S] great [C] food quality [A] blueberry cheesecake'] task, data: asqp rest15 target: [('food quality', 'modern japanese', 'great', 'delivers')] output: ['[A] spot [O] delivers [S] great [C] restaurant general'] sent: ['I', "'ve", 'had', 'my', 'fair', 'share', 'of', 'modern', 'Japanese', 'and', 'this', 'spot', 'delivers', '.'] counter: {('restaurant general', 'spot', 'great', 'delivers'): 4, ('food quality', 'spot', 'great', 'delivers'): 1} output quads: ['[A] spot [O] delivers [S] great [C] restaurant general'] multi_path: ['[A] spot [O] delivers [S] great [C] restaurant general', '[O] delivers [A] spot [C] restaurant general [S] great', '[A] spot [O] delivers [C] restaurant general [S] great', '[O] delivers [A] spot [S] great [C] restaurant general', '[O] delivers [S] great [C] food quality [A] spot'] task, data: asqp rest15 target: [('service general', 'waiter', 'great', 'cute')] output: ['[A] waiter [O] cute [S] ok [C] service general'] sent: ['It', '’', 's', 'just', 'you', 'and', 'your', 'date', 'and', 'an', 'occasional', 'cute', '‘', 'excuse', 'me', '’', 'before', 'the', 'waiter', 'opens', 'the', 'little', 'curtain', 'to', 'your', 'booth', '!'] counter: {('service general', 'waiter', 'ok', 'cute'): 5} output quads: ['[A] waiter [O] cute [S] ok [C] service general'] multi_path: ['[A] waiter [O] cute [S] ok [C] service general', '[O] cute [A] waiter [C] service general [S] ok', '[A] waiter [O] cute [C] service general [S] ok', '[O] cute [A] waiter [S] ok [C] service general', '[O] cute [S] ok [C] service general [A] waiter'] task, data: asqp rest15 target: [('ambience general', 'null', 'great', 'unassuming'), ('restaurant general', 'null', 'great', 'great'), ('restaurant prices', 'null', 'great', 'inexpensive')] output: ['[A] null [O] great time [S] great [C] restaurant general', '[A] null [O] inexpensive [S] great [C] restaurant prices', '[A] null [O] unassuming [S] great [C] restaurant miscellaneous'] sent: ['Inexpensive', ',', 'unassuming', ',', 'great', 'time', '!'] counter: {('restaurant prices', 'null', 'great', 'inexpensive'): 5, ('restaurant miscellaneous', 'null', 'great', 'unassuming'): 4, ('restaurant general', 'null', 'great', 'great time'): 5, ('ambience general', 'null', 'great', 'unassuming'): 1} output quads: ['[A] null [O] inexpensive [S] great [C] restaurant prices', '[A] null [O] unassuming [S] great [C] restaurant miscellaneous', '[A] null [O] great time [S] great [C] restaurant general'] multi_path: ['[A] it [O] inexpensive [S] great [C] restaurant prices [SSEP] [A] it [O] unassuming [S] great [C] restaurant miscellaneous [SSEP] [A] it [O] great time [S] great [C] restaurant general', '[O] inexpensive [A] it [C] restaurant prices [S] great [SSEP] [O] unassuming [A] it [C] ambience general [S] great [SSEP] [O] great time [A] it [C] restaurant general [S] great', '[A] it [O] inexpensive [C] restaurant prices [S] great [SSEP] [A] it [O] unassuming [C] restaurant miscellaneous [S] great [SSEP] [A] it [O] great time [C] restaurant general [S] great', '[O] inexpensive [A] it [S] great [C] restaurant prices [SSEP] [O] unassuming [A] it [S] great [C] restaurant miscellaneous [SSEP] [O] great time [A] it [S] great [C] restaurant general', '[O] inexpensive [S] great [C] restaurant prices [A] it [SSEP] [O] unassuming [S] great [C] restaurant miscellaneous [A] it [SSEP] [O] great time [S] great [C] restaurant general [A] it'] task, data: asqp rest15 target: [('food prices', 'menu', 'bad', 'complaint')] output: ['[A] null [O] complaint [S] bad [C] restaurant prices'] sent: ['Only', 'complaint', 'is', 'the', 'pricing', '--', 'I', 'believe', 'it', 'would', 'be', 'more', 'reasonable', 'to', 'pay', 'a', 'dollar', 'less', 'on', 'each', 'item', 'listed', 'on', 'the', 'menu', '.'] counter: {('restaurant prices', 'null', 'bad', 'complaint'): 5} output quads: ['[A] null [O] complaint [S] bad [C] restaurant prices'] multi_path: ['[A] it [O] complaint [S] bad [C] restaurant prices', '[O] complaint [A] it [C] restaurant prices [S] bad', '[A] it [O] complaint [C] restaurant prices [S] bad', '[O] complaint [A] it [S] bad [C] restaurant prices', '[O] complaint [S] bad [C] restaurant prices [A] it'] task, data: asqp rest15 target: [('food quality', 'cheese', 'great', 'great'), ('food quality', 'crust', 'great', 'good'), ('food quality', 'crust', 'great', 'great'), ('food quality', 'sauce', 'great', 'light')] output: ['[A] crust [O] good [S] great [C] food quality', '[A] crust [O] great [S] great [C] food quality', '[A] salt from the cheese [O] heightens [S] great [C] food quality', '[A] sauce [O] light [S] great [C] food quality', '[A] sauce [O] nice [S] great [C] food quality'] sent: ['The', 'crust', 'has', 'a', 'great', 'bite', 'and', 'a', 'good', 'chew', ',', 'the', 'sauce', 'is', 'light', 'with', 'a', 'nice', 'acidity', 'to', 'it', ',', 'the', 'salt', 'from', 'the', 'cheese', 'is', 'great', ',', 'really', 'heightens', 'the', 'flavor', 'of', 'all', 'the', 'other', 'components', '.'] counter: {('food quality', 'crust', 'great', 'great'): 5, ('food quality', 'crust', 'great', 'good chew'): 2, ('food quality', 'sauce', 'great', 'light'): 5, ('food quality', 'sauce', 'great', 'nice'): 5, ('food quality', 'salt from the cheese', 'great', 'heightens'): 5, ('food quality', 'crust', 'great', 'good'): 3} output quads: ['[A] crust [O] great [S] great [C] food quality', '[A] sauce [O] light [S] great [C] food quality', '[A] sauce [O] nice [S] great [C] food quality', '[A] salt from the cheese [O] heightens [S] great [C] food quality', '[A] crust [O] good [S] great [C] food quality'] multi_path: ['[A] crust [O] great [S] great [C] food quality [SSEP] [A] crust [O] good chew [S] great [C] food quality [SSEP] [A] sauce [O] light [S] great [C] food quality [SSEP] [A] sauce [O] nice [S] great [C] food quality [SSEP] [A] salt from the cheese [O] heightens [S] great [C] food quality', '[O] great [A] crust [C] food quality [S] great [SSEP] [O] good [A] crust [C] food quality [S] great [SSEP] [O] light [A] sauce [C] food quality [S] great [SSEP] [O] nice [A] sauce [C] food quality [S] great [SSEP] [O] heightens [A] salt from the cheese [C] food quality [S] great', '[A] crust [O] great [C] food quality [S] great [SSEP] [A] crust [O] good chew [C] food quality [S] great [SSEP] [A] sauce [O] light [C] food quality [S] great [SSEP] [A] sauce [O] nice [C] food quality [S] great [SSEP] [A] salt from the cheese [O] heightens [C] food quality [S] great', '[O] great [A] crust [S] great [C] food quality [SSEP] [O] good [A] crust [S] great [C] food quality [SSEP] [O] light [A] sauce [S] great [C] food quality [SSEP] [O] nice [A] sauce [S] great [C] food quality [SSEP] [O] heightens [A] salt from the cheese [S] great [C] food quality', '[O] great [S] great [C] food quality [A] crust [SSEP] [O] good [S] great [C] food quality [A] crust [SSEP] [O] light [S] great [C] food quality [A] sauce [SSEP] [O] nice [S] great [C] food quality [A] sauce [SSEP] [O] heightens [S] great [C] food quality [A] salt from the cheese'] task, data: asqp rest15 target: [('food quality', 'portobello and asparagus mole', 'bad', 'fan')] output: ["[A] portobello and asparagus mole [O] wasn't a fan of [S] bad [C] food quality"] sent: ['Also', ',', 'I', 'personally', 'was', "n't", 'a', 'fan', 'of', 'the', 'portobello', 'and', 'asparagus', 'mole', '.'] counter: {('food quality', 'portobello and asparagus mole', 'bad', "wasn't a fan of"): 5} output quads: ["[A] portobello and asparagus mole [O] wasn't a fan of [S] bad [C] food quality"] multi_path: ["[A] portobello and asparagus mole [O] wasn't a fan of [S] bad [C] food quality", "[O] wasn't a fan of [A] portobello and asparagus mole [C] food quality [S] bad", "[A] portobello and asparagus mole [O] wasn't a fan of [C] food quality [S] bad", "[O] wasn't a fan of [A] portobello and asparagus mole [S] bad [C] food quality", "[O] wasn't a fan of [S] bad [C] food quality [A] portobello and asparagus mole"] task, data: asqp rest15 target: [('food prices', 'null', 'bad', 'not cheap'), ('food quality', 'null', 'great', 'yummy')] output: ['[A] null [O] not cheap [S] great [C] food prices', '[A] null [O] yummy [S] great [C] food quality'] sent: ['Not', 'cheap', 'but', 'very', 'yummy', '.'] counter: {('food prices', 'null', 'great', 'not cheap'): 5, ('food quality', 'null', 'great', 'yummy'): 5} output quads: ['[A] null [O] not cheap [S] great [C] food prices', '[A] null [O] yummy [S] great [C] food quality'] multi_path: ['[A] it [O] not cheap [S] great [C] food prices [SSEP] [A] it [O] yummy [S] great [C] food quality', '[O] not cheap [A] it [C] food prices [S] great [SSEP] [O] yummy [A] it [C] food quality [S] great', '[A] it [O] not cheap [C] food prices [S] great [SSEP] [A] it [O] yummy [C] food quality [S] great', '[O] not cheap [A] it [S] great [C] food prices [SSEP] [O] yummy [A] it [S] great [C] food quality', '[O] not cheap [S] great [C] food prices [A] it [SSEP] [O] yummy [S] great [C] food quality [A] it'] task, data: asqp rest15 target: [('service general', 'null', 'bad', 'none was made')] output: ['[A] null [O] none was made [S] bad [C] food quality'] sent: ['None', 'was', 'made', 'so', 'i', 'hung', 'up', '.'] counter: {('food quality', 'null', 'bad', 'none was made'): 5} output quads: ['[A] null [O] none was made [S] bad [C] food quality'] multi_path: ['[A] it [O] none was made [S] bad [C] food quality', '[O] none was made [A] it [C] food quality [S] bad', '[A] it [O] none was made [C] food quality [S] bad', '[O] none was made [A] it [S] bad [C] food quality', '[O] none was made [S] bad [C] food quality [A] it'] pred labels count Counter({1: 22, 2: 7, 3: 3, 4: 1, 5: 1}) gold [A] food [O] gross [S] bad [C] food quality pred [A] food [O] gross [S] bad [C] food quality gold [A] it [O] alright [S] ok [C] restaurant general pred [A] null [O] alright [S] ok [C] restaurant general gold [A] place [O] great [S] great [C] ambience general pred [A] place [O] great [S] great [C] ambience general gold [A] decor [O] distraction [S] ok [C] ambience general [SSEP] [A] eggplant [O] cold [S] bad [C] food quality [SSEP] [A] eggplant [O] 300 bucks [S] bad [C] food prices [SSEP] [A] it [O] 2 frickin hours [S] bad [C] service general pred [A] decor [O] won't notice [S] bad [C] ambience general gold [A] quacamole [O] yummy [S] great [C] food quality [SSEP] [A] wings with chimmichuri [O] yummy [S] great [C] food quality pred [A] quacamole [O] yummy [S] great [C] food quality [SSEP] [A] wings with chimmichuri [O] yummy [S] great [C] food quality gold [A] hot dogs [O] good [S] great [C] food quality [SSEP] [A] pork croquette sandwich [O] fantastic [S] great [C] food quality [SSEP] [A] bun [O] perfect [S] great [C] food quality pred [A] hot dogs [O] good [S] great [C] food quality [SSEP] [A] pork croquette sandwich [O] fantastic [S] great [C] food quality [SSEP] [A] pork croquette sandwich [O] perfect [S] great [C] food quality gold [A] it [O] fair [S] great [C] restaurant prices [SSEP] [A] it [O] great [S] great [C] restaurant general pred [A] null [O] fair [S] great [C] restaurant prices [SSEP] [A] null [O] great time [S] great [C] restaurant general gold [A] pork souvlaki [O] best [S] great [C] food quality pred [A] pork souvlaki [O] best [S] great [C] food quality gold [A] it [O] nearly an hour [S] bad [C] service general pred [A] appetizers [O] took nearly an hour [S] bad [C] food style_options gold [A] entree [O] good [S] great [C] food quality pred [A] entree [O] good [S] great [C] food quality number of gold spans: 58, predicted spans: 54, hit: 30 asqp rest15 {'precision': 55.55555555555556, 'recall': 51.724137931034484, 'f1': 53.57142857142857}