From a4f3c8f037a3209ec594817b58db8c8223a31b53 Mon Sep 17 00:00:00 2001 From: Farinam HemmatiZadeh <45711614+farinamhz@users.noreply.github.com> Date: Tue, 27 Feb 2024 11:51:27 -0500 Subject: [PATCH 1/2] cat updated for LADy pipeline --- cat.zip | Bin 0 -> 133933 bytes cat/dataset.py | 93 +++--- cat/utils.py | 2 +- cmn/LADy.png | Bin 0 -> 55953 bytes cmn/__init__.py | 0 cmn/mams.py | 93 ++++++ cmn/review.py | 271 ++++++++++++++++++ cmn/semeval.py | 107 +++++++ .../experiment_test-googletranslate.py | 133 +++++++++ experiments/experiment_test.py | 154 +++++----- ...reprocessing_embeddings-googletranslate.py | 41 +++ experiments/preprocessing_embeddings.py | 45 +-- text-to-CONLLu.py | 14 +- wrapper.py | 168 ++++++++--- 14 files changed, 942 insertions(+), 179 deletions(-) create mode 100644 cat.zip create mode 100644 cmn/LADy.png create mode 100644 cmn/__init__.py create mode 100644 cmn/mams.py create mode 100644 cmn/review.py create mode 100644 cmn/semeval.py create mode 100644 experiments/experiment_test-googletranslate.py create mode 100644 experiments/preprocessing_embeddings-googletranslate.py diff --git a/cat.zip b/cat.zip new file mode 100644 index 0000000000000000000000000000000000000000..baf64cfd62ef97bb30b690da5dca25459c76c360 GIT binary patch literal 133933 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�_IEAaMK~cUqTf&v{i1kLP>t1+Yq3}f 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 XeYqk9y-TCFYw4JnN*l=T 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 BOlbfB literal 0 HcmV?d00001 diff --git a/cmn/__init__.py b/cmn/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cmn/mams.py b/cmn/mams.py new file mode 100644 index 0000000..9e722e7 --- /dev/null +++ b/cmn/mams.py @@ -0,0 +1,93 @@ +import os, spacy +from tqdm import tqdm +import xml.etree.ElementTree as ET + +from cmn.review import Review + +class MAMSReview(Review): + def __init__(self, id, sentences, time, author, aos): + super().__init__(self, id, sentences, time, author, aos) + + @staticmethod + def xmlloader(path): + reviews_list = [] + nlp = spacy.load("en_core_web_sm") + tree = ET.parse(path) + sentences = tree.getroot() + i = -1 + for sentence in sentences: # each sentence is an individual review, unlike SemEval16 + i += 1 + + text = "" + tokens = [] + aos_list_list = [] + + for data in sentence: + if data.tag == "text": # clean the associated aspect tokens from punctuations + raw_text = data.text + current_text = raw_text + opinion_text = sentence.findall(".//aspectTerm") + for o in opinion_text: + aspect = o.attrib["term"] + aspect_list = aspect.split() + if len(aspect_list) == 0: # contains no aspect (mams dataset doesn't have NULL aspects) + continue + letter_index_tuple = (int(o.attrib['from']), int(o.attrib['to'])) + current_text = current_text.replace(' ', ' ') + current_text = current_text[0:letter_index_tuple[0]] + ' ' + aspect + ' ' + current_text[letter_index_tuple[1]+1:] + #print("processing text:" + str(current_text)) + tokens = current_text.split() + + if data.tag == "aspectTerms": + aos_list = [] + for o in data: # each o is an aspectTerm + + sentiment = o.attrib["polarity"].replace('positive', '+1').replace('negative', '-1').replace('neutral', '0') + + aspect = o.attrib["term"] + aspect_list = aspect.split() # the aspect may consist more than 1 word + if len(aspect_list) == 0: + continue + + letter_index_tuple = (int(o.attrib['from']), int(o.attrib['to'])) + + # find the aspect instance of all text instances of the phrase + #print(tokens) + + text_incidences = [i for i in range(len(raw_text)) + if raw_text.startswith(aspect, i) + and not raw_text[i-1].isalpha() + and not raw_text[i+len(aspect)].isalpha()] + #print("text incidences: " + str(text_incidences)) + idx_of_from = text_incidences.index(letter_index_tuple[0]) + #print("index of from: " + str(idx_of_from)) + + # find the location of the aspect token + start_token_of_aspect = [i for i in range(len(tokens)) + if i + len(aspect_list) <= len(tokens) + and tokens[i:i + len(aspect_list)] == aspect_list] + + #print("start token of aspect: " + str(start_token_of_aspect)) + + idx_start_token_of_aspect = start_token_of_aspect[idx_of_from] + + idx_aspect_list = list( + range(idx_start_token_of_aspect, idx_start_token_of_aspect + len(aspect_list))) + + # compile the final aos 3-tuple for each aspect + aos = (idx_aspect_list, [], eval(sentiment)) + + if len(aos) != 0: + aos_list.append(aos) + + if len(aos_list) != 0: + aos_list_list.append(aos_list) + + if len(aos_list_list) == 0: # if no aspect in the sentence, it is not added + continue + + reviews_list.append( + Review(id=i, sentences=[[str(t).lower() for t in current_text.split()]], time=None, + author=None, aos=aos_list_list, lempos="")) + + return reviews_list \ No newline at end of file diff --git a/cmn/review.py b/cmn/review.py new file mode 100644 index 0000000..a3dbcb1 --- /dev/null +++ b/cmn/review.py @@ -0,0 +1,271 @@ +import pandas as pd, copy, numpy as np +from scipy.spatial.distance import cosine + +class Review(object): + translator_mdl = None; translator_tokenizer = None + semantic_mdl = None; align_mdl = None + def __init__(self, id, sentences, time=None, author=None, aos=None, lempos=None, parent=None, lang='eng_Latn', category=None): + self.id = id + self.sentences = sentences #list of sentences of list of tokens + self.time = time + self.author = author + self.aos = aos #list of list of aspect_opinion_sentiment triples for per sentence, e.g., [[([7,8], [10, 11, 12], -1), ([15,17], [20], +1)]] + self.lempos = lempos + self.lang = lang + self.category = category + + self.parent = parent + self.augs = {} #distionary of translated and backtranslated augmentations of this review in object format, e.g., + # {'deu_Latn': (Review1(self.id, 'dies ist eine bewertung', None, None, None, None, self, 'deu_Latn'), + # Review2(self.id, 'this is a review', None, None, None, None, self, 'eng_Latn'), + # semantic_similarity_score) + + def to_dict(self, w_augs=False): + result = [{'id': self.id, + 'text': self.get_txt(), + 'sentences': self.sentences, + 'aos': self.get_aos(), #self.parent.get_aos() if self.parent else self.get_aos(), + 'lang': self.lang, + 'orig': False if self.parent else True}] + if not w_augs: return result + for k in self.augs: + #result += self.augs[k][0].to_dict() + result += self.augs[k][1].to_dict() + return result + + def get_aos(self): + r = [] + if not self.aos: return r + for i, aos in enumerate(self.aos): r.append([([self.sentences[i][j] for j in a], [self.sentences[i][j] for j in o], s) for (a, o, s) in aos]) + return r + + def get_txt(self): return '. '.join(' '.join(s) for s in self.sentences) + + def hide_aspects(self): + r = copy.deepcopy(self) + for i, sent in enumerate(r.sentences): + # [sent.pop(k) for j, _, _ in r.aos[i] for k in j] + for j, _, _ in r.aos[i]: + for k in j: sent[k] = '#####' + return r + + def preprocess(self): return self # note that any removal of words breakes the aos indexing! + + def translate(self, tgt, settings): + src = self.lang + if not Review.translator_mdl: + from transformers import AutoTokenizer, AutoModelForSeq2SeqLM + Review.translator_mdl = AutoModelForSeq2SeqLM.from_pretrained(settings['nllb']) + Review.translator_tokenizer = AutoTokenizer.from_pretrained(settings['nllb']) + + from transformers import pipeline + Review.translator = pipeline("translation", model=Review.translator_mdl, tokenizer=Review.translator_tokenizer, src_lang=src, tgt_lang=tgt, max_length=settings['max_l'], device=settings['device']) + Review.back_translator = pipeline("translation", model=Review.translator_mdl, tokenizer=Review.translator_tokenizer, src_lang=tgt, tgt_lang=src, max_length=settings['max_l'], device=settings['device']) + + translated_txt = Review.translator(self.get_txt())[0]['translation_text'] + translated_obj = Review(id=self.id, sentences=[[str(t).lower() for t in translated_txt.split()]], parent=self, lang=tgt, time=None, author=None, aos=None) + translated_obj.aos, _ = self.semalign(translated_obj) + + back_translated_txt = Review.back_translator(translated_txt)[0]['translation_text'] + back_translated_obj = Review(id=self.id, sentences=[[str(t).lower() for t in back_translated_txt.split()]], parent=self, lang=src, time=None, author=None, aos=None) + back_translated_obj.aos, _ = self.semalign(back_translated_obj) + + self.augs[tgt] = (translated_obj, back_translated_obj, self.semsim(back_translated_obj)) + return self.augs[tgt] + + def semsim(self, other): + if not Review.semantic_mdl: + from sentence_transformers import SentenceTransformer + Review.semantic_mdl = SentenceTransformer("johngiorgi/declutr-small") + me, you = Review.semantic_mdl.encode([self.get_txt(), other.get_txt()]) + return 1 - cosine(me, you) + + def semalign(self, other): + if not Review.align_mdl: + from simalign import SentenceAligner + Review.align_mdl = SentenceAligner(model="bert", token_type="bpe", matching_methods="i") + aligns = [Review.align_mdl.get_word_aligns(s1, o1)['itermax'] for s1, o1 in zip(self.sentences, other.sentences)] + other_aos = [] + for i, (aos, _) in enumerate(zip(self.aos, self.sentences)): + for (a, o, s) in aos: + other_a = [idx2 for idx in a for idx1, idx2 in aligns[i] if idx == idx1] + other_a.sort() + other_aos.append((other_a, o, s)) + return other_aos, aligns + + def get_lang_stats(self): + import nltk + from rouge import Rouge + from sklearn.metrics import accuracy_score + + result = {} + r = self.get_txt() + result['r_ntoken'] = len(r.split()) + for lang in self.augs.keys(): + r_ = self.augs[lang][1].get_txt() + # r_ = r #for testing purpose => should be very close to 1 for all metrics + result[lang + '_r_backtrans_ntoken'] = len(r_.split()) + result[lang + '_semsim'] = self.augs[lang][2] + result[lang + '_bleu'] = np.mean(nltk.translate.bleu_score.sentence_bleu([r.split()], r_.split(), weights=[(1 / bleu_no,) * bleu_no for bleu_no in range(1, min(4, result['r_ntoken'] + 1))])) + # https://pypi.org/project/rouge/ + result[lang + '_rouge_f'] = np.mean([v['f'] for k, v in Rouge(metrics=[f'rouge-{i+1}' for i in range(0, min(5, len(r.split())))]).get_scores(r_, r)[0].items()]) + # we need to make r_ as equal size as r + result[lang + '_em'] = accuracy_score(r.split(), r_.split()[:result['r_ntoken']] if len(r_.split()) > result['r_ntoken'] else r_.split() + [''] * (result['r_ntoken'] - len(r_.split()))) + return result + + @staticmethod + def load(path): pass + + @staticmethod + def to_df(reviews, w_augs=False): return pd.DataFrame.from_dict([rr for r in reviews for rr in r.to_dict(w_augs)]) + + @staticmethod + def translate_batch(reviews, tgt, settings): + src = reviews[0].lang + if not Review.translator_mdl: + from transformers import AutoTokenizer, AutoModelForSeq2SeqLM + Review.translator_mdl = AutoModelForSeq2SeqLM.from_pretrained(settings['nllb']) + Review.translator_tokenizer = AutoTokenizer.from_pretrained(settings['nllb']) + + from transformers import pipeline + translator = pipeline("translation", model=Review.translator_mdl, tokenizer=Review.translator_tokenizer, src_lang=src, tgt_lang=tgt, max_length=settings['max_l'], device=settings['device']) + back_translator = pipeline("translation", model=Review.translator_mdl, tokenizer=Review.translator_tokenizer, src_lang=tgt, tgt_lang=src, max_length=settings['max_l'], device=settings['device']) + + reviews_txt = [r.get_txt() for r in reviews] + translated_txt = translator(reviews_txt) + back_translated_txt = back_translator([r_['translation_text'] for r_ in translated_txt]) + + for i, r in enumerate(reviews): + translated_obj = Review(id=r.id, sentences=[[str(t).lower() for t in translated_txt[i]['translation_text'].split()]], parent=r, lang=tgt, time=None, author=None, aos=None, lempos=None,) + translated_obj.aos, _ = r.semalign(translated_obj) + + back_translated_obj = Review(id=r.id, sentences=[[str(t).lower() for t in back_translated_txt[i]['translation_text'].split()]], parent=r, lang=src, time=None, author=None, aos=r.aos, lempos=None,) + r.augs[tgt] = (translated_obj, back_translated_obj, r.semsim(back_translated_obj)) + + @staticmethod + def get_stats(datapath, output, cache=True, plot=True, plot_title=None): + try: + print(f'Loading the stats pickle from {datapath}...') + if not cache: raise FileNotFoundError + stats = pd.read_pickle(f'{output}/stats.pkl') + if plot: Review.plot_dist(stats, output, plot_title) + except FileNotFoundError: + print(f'File {datapath} not found! Generating stats ...') + reviews = pd.read_pickle(datapath) + from collections import Counter + stats = {'*nreviews': len(reviews), '*naspects': 0, '*ntokens': 0} + asp_nreviews = Counter() # aspects : number of reviews that contains the aspect + token_nreviews = Counter() # tokens : number of reviews that contains the token + nreviews_naspects = Counter() # v number of reviews with 1 aspect, ..., k aspects, ... + nreviews_ntokens = Counter() # v number of reviews with 1 token, ..., k tokens, ... + nreviews_category = Counter() # v number of categories with 1 review, ..., k reviews, ... + reviews_lang_stats = [] + + for r in reviews: + r_aspects = r.get_aos()[0] + r_tokens = [token for sentence in r.sentences for token in sentence] + asp_nreviews.update(' '.join(a) for (a, o, s) in r_aspects) + token_nreviews.update(token for token in r_tokens) + nreviews_naspects.update([len(r_aspects)]) + nreviews_ntokens.update([len(r_tokens)]) + if hasattr(r, 'category'): nreviews_category.update(r.category) + + reviews_lang_stats.append(r.get_lang_stats()) + + naspects_nreviews = Counter(asp_nreviews.values()) # v number of aspects with 1 review, ..., k reviews, ... + ntokens_nreviews = Counter(token_nreviews.values()) # v number of tokens with 1 review, ..., k reviews, ... + stats["*naspects"] = len(asp_nreviews.keys()) # unique. Non-unique number of aspects: sum(asp_nreviews.values()) + stats["*ntokens"] = len(token_nreviews.keys()) # unique. Non-unique number of tokens: sum(token_nreviews.values()) + stats['nreviews_naspects'] = {k: v for k, v in sorted(nreviews_naspects.items(), key=lambda item: item[1], reverse=True)} + stats['nreviews_ntokens'] = {k: v for k, v in sorted(nreviews_ntokens.items(), key=lambda item: item[1], reverse=True)} + stats['naspects_nreviews'] = {k: v for k, v in sorted(naspects_nreviews.items(), key=lambda item: item[1], reverse=True)} + stats['ntokens_nreviews'] = {k: v for k, v in sorted(ntokens_nreviews.items(), key=lambda item: item[1], reverse=True)} + stats['nreviews_category'] = {k: v for k, v in sorted(nreviews_category.items(), key=lambda item: item[1], reverse=True)} + stats['*avg_ntokens_review'] = sum(k * v for k, v in nreviews_ntokens.items()) / sum(nreviews_ntokens.values()) # average number of tokens per review + stats['*avg_naspects_review'] = sum(k * v for k, v in nreviews_naspects.items()) / sum(nreviews_naspects.values()) # average number of aspects per review + stats['*avg_lang_stats'] = pd.DataFrame.from_dict(reviews_lang_stats).mean().to_dict() + if output: pd.to_pickle(stats, f'{output}/stats.pkl') + if plot: Review.plot_dist(stats, output, plot_title) + import json + print(json.dumps(stats, indent=4)) + # print(stats) + return stats + + @staticmethod + def plot_dist(stats, output, plot_title): + from matplotlib import pyplot as plt + plt.rcParams.update({'font.family': 'Consolas'}) + print("plotting distribution data ...") + for k, v in stats.items(): + if (not k.startswith("*")): # the * values cannot be plotted + fig = plt.figure(k, figsize=(1.5, 1.5)) + ax = fig.add_subplot(1, 1, 1) + ax.set_facecolor('whitesmoke') + ax.loglog(*zip(*stats[k].items()), marker='x', linestyle='None', markeredgecolor='m') + ax.set_xlabel(k.split('_')[1][0].replace('n', '#') + k.split('_')[1][1:]) + ax.set_ylabel(k.split('_')[0][0].replace('n', '#') + k.split('_')[0][1:]) + ax.grid(True, color="#93a1a1", alpha=0.3) + ax.minorticks_off() + ax.xaxis.set_tick_params(size=2, direction='in') + ax.yaxis.set_tick_params(size=2, direction='in') + + # wrapping labels + labels = [] + for l in ax.get_xticklabels(): + l.set_text('\n#'.join(l.get_text().split("#"))) + labels.append(l) + ax.set_xticklabels(labels, ha='left') + + ax.xaxis.get_label().set_size(12) + ax.yaxis.get_label().set_size(12) + ax.set_title(plot_title) + fig.savefig(f'{output}/{k}.pdf', dpi=100, bbox_inches='tight') + plt.show() + + @staticmethod + def plot_semsim_dist(datapath, output, plot_title): + from matplotlib import pyplot as plt + plt.rcParams.update({'font.family': 'Consolas'}) + import seaborn as sns + reviews = pd.read_pickle(datapath) + + hist_dict = [{'original': 'eng_Latn', 'target': Review.lang_title(k), 'score': v[2]} for r in reviews for k, v in r.augs.items()] + df = pd.DataFrame.from_dict(hist_dict) + fig = plt.figure(figsize=(6, 2)) + ax = fig.add_subplot(1, 1, 1) + x_range = [i / 10 for i in range(0, 11)] + # ax.set_ylim([0, len(reviews)]) + # plt.yscale('log') + plt.ylabel('#reviews') + plt.xlabel('similarity score') + ax.set_title(plot_title, x=0.2, y=0.8, fontsize=11) + ax.set_facecolor('whitesmoke') + h = sns.histplot(df, + x='score', + hue='target', + element='step', #also try 'poly' + stat='density', + common_norm=False) + sns.move_legend(ax, 'upper left') + + plt.legend([]) + + h.legend_.set_title(None) + h.set(xticks=x_range) + plt.savefig(f'{output}', dpi=100, bbox_inches='tight') + # df.to_csv(f'{output.replace("pdf", "csv")}') + plt.show() + # plt.clf() + + @staticmethod + def lang_title(lang_code): + if lang_code == 'zho_Hans': return 'chinese' + elif lang_code == 'deu_Latn': return 'german' + elif lang_code == 'fra_Latn': return 'french' + elif lang_code == 'arb_Arab': return 'arabic' + elif lang_code == 'pes_Arab': return 'farsi' + elif lang_code == 'spa_Latn': return 'spanish' + elif lang_code == 'eng_Latn': return 'english' + elif lang_code == 'pes_Arab.zho_Hans.deu_Latn.arb_Arab.fra_Latn.spa_Latn': return 'all' + elif lang_code == None: return ['pes_Arab', 'zho_Hans', 'deu_Latn', 'arb_Arab', 'fra_Latn', 'spa_Latn', 'all'] + diff --git a/cmn/semeval.py b/cmn/semeval.py new file mode 100644 index 0000000..0278535 --- /dev/null +++ b/cmn/semeval.py @@ -0,0 +1,107 @@ +import os, spacy +from tqdm import tqdm +import xml.etree.ElementTree as et + +#nlp = spacy.load("en_core_web_sm") # en_core_web_trf for transformer-based; error ==> python -m spacy download en_core_web_sm + +from cmn.review import Review + +class SemEvalReview(Review): + + def __init__(self, id, sentences, time, author, aos): super().__init__(self, id, sentences, time, author, aos) + + @staticmethod + def load(path): + if str(path).endswith('.xml'): return SemEvalReview._xmlloader(path) + return SemEvalReview._txtloader(input) + + @staticmethod + def _txtloader(path): + reviews = [] + with tqdm(total=os.path.getsize(path)) as pbar, open(path, "r", encoding='utf-8') as f: + for i, line in enumerate(f.readlines()): + pbar.update(len(line)) + sentence, aos = line.split('####') + aos = aos.replace('\'POS\'', '+1').replace('\'NEG\'', '-1').replace('\'NEU\'', '0') + + # for the current datafile, each row is a review of single sentence! + # sentence = nlp(sentence) + reviews.append(Review(id=i, sentences=[[str(t).lower() for t in sentence.split()]], time=None, author=None, + aos=[eval(aos)], lempos=None, + parent=None, lang='eng_Latn')) + return reviews + + @staticmethod + def _xmlloader(path): + reviews_list = [] + xtree = et.parse(path).getroot() + if xtree.tag == 'Reviews': reviews = [SemEvalReview._parse(xsentence) for xreview in tqdm(xtree) for xsentences in xreview for xsentence in xsentences] + if xtree.tag == 'sentences': reviews = [SemEvalReview._parse(xsentence) for xsentence in tqdm(xtree)] + + return [r for r in reviews if r] + + @staticmethod + def _map_idx(aspect, text): + # aspect: ('token', from_char, to_char) + text_tokens = text[:aspect[1]].split() + # to fix if "aaaa ,b, c" ",b c" if b is the aspect + if len(text_tokens) > 0 and not text[aspect[1] - 1].isspace(): text_tokens.pop() + aspect_tokens = aspect[0].split() + + # tmp = [*text] #mutable string :) + # # these two blank space add bug to the char indexes for aspects if a sentence have multiple aspects! + # tmp[aspect[1]: aspect[2]] = [' '] + [*aspect[0]] + [' '] + # text = ''.join(tmp) + + return [i for i in range(len(text_tokens), len(text_tokens) + len(aspect_tokens))] + + @staticmethod + def _parse(xsentence): + id = xsentence.attrib["id"] + aos = []; aos_cats = [] + for element in xsentence: + if element.tag == 'text': sentence = element.text # we consider each sentence as a signle review + elif element.tag == 'Opinions':#semeval-15-16 + # + for opinion in element: + if opinion.attrib["target"] == 'NULL': continue + # we may have duplicates for the same aspect due to being in different category like in semeval 2016's + aspect = (opinion.attrib["target"], int(opinion.attrib["from"]), int(opinion.attrib["to"])) #('place', 5, 10) + # we need to map char index to token index in aspect + aspect = SemEvalReview._map_idx(aspect, sentence) + category = opinion.attrib["category"] # 'RESTAURANT#GENERAL' + sentiment = opinion.attrib["polarity"].replace('positive', '+1').replace('negative', '-1').replace('neutral', '0') #'+1' + aos.append((aspect, [], sentiment, opinion.attrib["target"])) + aos_cats.append(category) + aos = sorted(aos, key=lambda x: int(x[0][0])) #based on start of sentence + + elif element.tag == 'aspectTerms':#semeval-14 + # + for opinion in element: + if opinion.attrib["term"] == 'NULL': continue + # we may have duplicates for the same aspect due to being in different category like in semeval 2016's + aspect = (opinion.attrib["term"], int(opinion.attrib["from"]), int(opinion.attrib["to"])) #('place', 5, 10) + # we need to map char index to token index in aspect + aspect = SemEvalReview._map_idx(aspect, sentence) + sentiment = opinion.attrib["polarity"].replace('positive', '+1').replace('negative', '-1').replace('neutral', '0') #'+1' + aos.append((aspect, [], sentiment, opinion.attrib["term"])) + + aos = sorted(aos, key=lambda x: int(x[0][0])) #based on start of sentence + + elif element.tag == 'aspectCategories': # semeval-14 + for opinion in element: + # + aos_cats.append(opinion.attrib["category"]) + + #sentence = nlp(sentence) # as it does some processing, it destroys the token idx for aspect term + tokens = sentence.split() + # to fix ",a b c," to "a b c" + # to fix '"sales" team' to 'sales team' => semeval-14-labptop- + # todo: fix 'Food-awesome.' to 'food awesome' => semeval-14-restaurant- + for i, (idxlist, o, s, aspect_token) in enumerate(aos): + for j, idx in enumerate(idxlist): tokens[idx] = aspect_token.split()[j].replace('"', '') + aos[i] = (idxlist, o, s) + return Review(id=id, sentences=[[str(t).lower() for t in tokens]], time=None, author=None, + aos=[aos], lempos=None, + parent=None, lang='eng_Latn', category=aos_cats) if aos else None + diff --git a/experiments/experiment_test-googletranslate.py b/experiments/experiment_test-googletranslate.py new file mode 100644 index 0000000..4286ccf --- /dev/null +++ b/experiments/experiment_test-googletranslate.py @@ -0,0 +1,133 @@ +"""Experiment on the test data.""" +import json +import os + +import numpy as np + +# LADy_eval +import pytrec_eval +import pandas as pd + +from cat.simple import get_scores, attention, rbf_attention +from cat.dataset import test +from reach import Reach +from sklearn.metrics import precision_recall_fscore_support +from collections import defaultdict, Counter +from itertools import product + + +GAMMA = .03 +BEST_ATT = {"n_noun": 980} +BEST_RBF = {"n_noun": 200} + +if __name__ == "__main__": + + # LADy_eval + metrics = ['P', 'recall', 'ndcg_cut', 'map_cut', 'success'] + topkstr = '1,5,10,100' + metrics_set = set() + for m in metrics: + metrics_set.add(f'{m}_{topkstr}') + datasets = [] + for d in ['googletranslate-twitter']: # 'googletranslate-SemEval-14-L' + for l in ['en', 'fa', 'zh-CN', 'de', 'ar', 'fr', 'es', 'fa.zh-CN.de.ar.fr.es']: # + if l == 'en': + datasets.append(f'{d}') + else: + datasets.append(f'{d}-{l}') + for dataset in datasets: + + output_path = f'../output-googletranslate/{dataset}' + if not os.path.isdir(output_path): + os.makedirs(output_path) + + mean_list = [pd.DataFrame() for i in range(0, 11)] + for f in range(5): + fold_path = f'{dataset}/train/{f}' + scores = defaultdict(dict) + r = Reach.load(f'../embeddings/{fold_path}/vecs_w2v.vec', + unk_word="") + d = json.load(open(f'../data/{fold_path}/nouns.json')) + + nouns = Counter() + for k, v in d.items(): + if k.lower() in r.items: + nouns[k.lower()] += v + + embedding_paths = [f'../embeddings/{fold_path}/vecs_w2v.vec'] + # bundles = ((rbf_attention, attention), embedding_paths) + bundles = ((rbf_attention, ), embedding_paths) + + for att, path in product(*bundles): + r = Reach.load(path, unk_word="") + + if att == rbf_attention: + candidates, _ = zip(*nouns.most_common(BEST_RBF["n_noun"])) + else: + candidates, _ = zip(*nouns.most_common(BEST_ATT["n_noun"])) + + aspects = [[x] for x in candidates] + sorted_output = [] + for idx, (instances, y, label_set, subset_labels, gold, multi_labels) in enumerate(test(f, dataset)): + # output_path_hidden = f'{output_path}/{idx*10}' + # if not os.path.isdir(output_path_hidden): + # os.makedirs(output_path_hidden) + # print("label_set", label_set) + s = get_scores(instances, + aspects, + r, + subset_labels, + gamma=GAMMA, + remove_oov=False, + attention_func=att) + + # print("predicted", s) + # print("subset_labels", subset_labels) + # print("gold", list(gold)) + output = [[(label, value) for value, label in zip(sublist, subset_labels)] for sublist in s] + sorted_output = [sorted(sublist, key=lambda x: x[1], reverse=True) for sublist in output] + # print("output", sorted_output) + + qrel = dict() + run = dict() + + for i, word in enumerate(multi_labels): + q_key = 'q{}'.format(i) + # qrel[q_key] = {word: 1} + qrel[q_key] = {w: 1 for w in word} + + for i, sublist in enumerate(sorted_output): + q_key = 'q{}'.format(i) + run[q_key] = {} + for j, (word, _) in enumerate(sublist): + run[q_key][word] = len(sublist) - j + + # print("qrel: ", qrel) + # print("run: ", run) + + print(f'pytrec_eval for {metrics_set} for fold {f} with {idx*10} percent hidden aspect in dataset {dataset}...') + df = pd.DataFrame.from_dict(pytrec_eval.RelevanceEvaluator(qrel, metrics_set).evaluate(run)) + df_mean = df.mean(axis=1).to_frame('mean') + df_mean.to_csv(f'{output_path}/f{f}.model.ad.pred.{idx/10}.eval.mean.csv') + mean_list[idx] = pd.concat([mean_list[idx], df_mean], axis=1) + for i in range(0, 11): + # output_path_hidden = f'{output_path}/{i*10}' + mean_list[i].mean(axis=1).to_frame('mean').to_csv(f'{output_path}/model.ad.pred.eval.mean.{i/10}.csv') + # y_pred = s.argmax(1) + # f1_score = precision_recall_fscore_support(y, y_pred) + # f1_macro = precision_recall_fscore_support(y, + # y_pred, + # average="weighted") + # scores[(att, path)][idx] = (f1_score, f1_macro) + # + # att_score = {k: v for k, v in scores.items() if k[0] == attention} + # att_per_class = [[z[x][0][:-1] for x in range(3)] + # for z in att_score.values()] + # att_per_class = np.stack(att_per_class).mean(0) + # att_macro = np.mean([v[2][1][:-1] for v in att_score.values()], 0) + # + # rbf_score = {k: v for k, v in scores.items() if k[0] == rbf_attention} + # rbf_per_class = [[z[x][0][:-1] for x in range(3)] + # for z in rbf_score.values()] + # rbf_per_class = np.stack(rbf_per_class).mean(0) + # rbf_macro = np.mean([v[2][1][:-1] for v in rbf_score.values()], 0) diff --git a/experiments/experiment_test.py b/experiments/experiment_test.py index 4a0e39e..29677bd 100644 --- a/experiments/experiment_test.py +++ b/experiments/experiment_test.py @@ -9,7 +9,7 @@ import pandas as pd from cat.simple import get_scores, attention, rbf_attention -from cat.dataset import restaurants_test +from cat.dataset import test from reach import Reach from sklearn.metrics import precision_recall_fscore_support from collections import defaultdict, Counter @@ -23,76 +23,96 @@ if __name__ == "__main__": # LADy_eval - output_path = "../output/" - if not os.path.isdir(output_path): - os.makedirs(output_path) metrics = ['P', 'recall', 'ndcg_cut', 'map_cut', 'success'] topkstr = '1,5,10,100' metrics_set = set() for m in metrics: - metrics_set.add(f'{m}_{topkstr}') - - scores = defaultdict(dict) - r = Reach.load("../embeddings/toy_vecs_w2v.vec", - unk_word="") - d = json.load(open("../data/toy_nouns.json")) - - nouns = Counter() - for k, v in d.items(): - if k.lower() in r.items: - nouns[k.lower()] += v - - embedding_paths = ["../embeddings/toy_vecs_w2v.vec"] - # bundles = ((rbf_attention, attention), embedding_paths) - bundles = ((rbf_attention, ), embedding_paths) - - for att, path in product(*bundles): - r = Reach.load(path, unk_word="") - - if att == rbf_attention: - candidates, _ = zip(*nouns.most_common(BEST_RBF["n_noun"])) - else: - candidates, _ = zip(*nouns.most_common(BEST_ATT["n_noun"])) - - aspects = [[x] for x in candidates] - sorted_output = [] - for idx, (instances, y, label_set, subset_labels, gold) in enumerate(restaurants_test()): - # print("label_set", label_set) - s = get_scores(instances, - aspects, - r, - subset_labels, - gamma=GAMMA, - remove_oov=False, - attention_func=att) - - # print("predicted", s) - # print("subset_labels", subset_labels) - # print("gold", list(gold)) - output = [[(label, value) for value, label in zip(sublist, subset_labels)] for sublist in s] - sorted_output = [sorted(sublist, key=lambda x: x[1], reverse=True) for sublist in output] - # print("output", sorted_output) - - qrel = dict() - run = dict() - - for i, word in enumerate(gold): - q_key = 'q{}'.format(i) - qrel[q_key] = {word: 1} - - for i, sublist in enumerate(sorted_output): - q_key = 'q{}'.format(i) - run[q_key] = {} - for j, (word, _) in enumerate(sublist): - run[q_key][word] = len(sublist) - j - - print("qrel: ", qrel) - print("run: ", run) - - print(f'pytrec_eval for {metrics_set} ...') - df = pd.DataFrame.from_dict(pytrec_eval.RelevanceEvaluator(qrel, metrics_set).evaluate(run)) - df_mean = df.mean(axis=1).to_frame('mean') - df_mean.to_csv(f'{output_path}pred.eval.mean.csv') + metrics_set.add(f'{m}_{topkstr}') + datasets = [] + for d in ['lowresource-2014r']: + for l in ['lao_Laoo', 'san_Deva']: + if l == 'eng': + datasets.append(f'{d}') + else: + datasets.append(f'{d}-{l}') + for dataset in datasets: + + output_path = f'../output-low-resource/{dataset}' + if not os.path.isdir(output_path): + os.makedirs(output_path) + + mean_list = [pd.DataFrame() for i in range(0, 11)] + for f in range(5): + fold_path = f'{dataset}/train/{f}' + scores = defaultdict(dict) + r = Reach.load(f'../embeddings/{fold_path}/vecs_w2v.vec', + unk_word="") + d = json.load(open(f'../data/{fold_path}/nouns.json')) + + nouns = Counter() + for k, v in d.items(): + if k.lower() in r.items: + nouns[k.lower()] += v + + embedding_paths = [f'../embeddings/{fold_path}/vecs_w2v.vec'] + # bundles = ((rbf_attention, attention), embedding_paths) + bundles = ((rbf_attention, ), embedding_paths) + + for att, path in product(*bundles): + r = Reach.load(path, unk_word="") + + if att == rbf_attention: + candidates, _ = zip(*nouns.most_common(BEST_RBF["n_noun"])) + else: + candidates, _ = zip(*nouns.most_common(BEST_ATT["n_noun"])) + + aspects = [[x] for x in candidates] + sorted_output = [] + for idx, (instances, y, label_set, subset_labels, gold, multi_labels) in enumerate(test(f, dataset)): + # output_path_hidden = f'{output_path}/{idx*10}' + # if not os.path.isdir(output_path_hidden): + # os.makedirs(output_path_hidden) + # print("label_set", label_set) + s = get_scores(instances, + aspects, + r, + subset_labels, + gamma=GAMMA, + remove_oov=False, + attention_func=att) + + # print("predicted", s) + # print("subset_labels", subset_labels) + # print("gold", list(gold)) + output = [[(label, value) for value, label in zip(sublist, subset_labels)] for sublist in s] + sorted_output = [sorted(sublist, key=lambda x: x[1], reverse=True) for sublist in output] + # print("output", sorted_output) + + qrel = dict() + run = dict() + + for i, word in enumerate(multi_labels): + q_key = 'q{}'.format(i) + # qrel[q_key] = {word: 1} + qrel[q_key] = {w: 1 for w in word} + + for i, sublist in enumerate(sorted_output): + q_key = 'q{}'.format(i) + run[q_key] = {} + for j, (word, _) in enumerate(sublist): + run[q_key][word] = len(sublist) - j + + # print("qrel: ", qrel) + # print("run: ", run) + + print(f'pytrec_eval for {metrics_set} for fold {f} with {idx*10} percent hidden aspect in dataset {dataset}...') + df = pd.DataFrame.from_dict(pytrec_eval.RelevanceEvaluator(qrel, metrics_set).evaluate(run)) + df_mean = df.mean(axis=1).to_frame('mean') + df_mean.to_csv(f'{output_path}/f{f}.model.ad.pred.{idx/10}.eval.mean.csv') + mean_list[idx] = pd.concat([mean_list[idx], df_mean], axis=1) + for i in range(0, 11): + # output_path_hidden = f'{output_path}/{i*10}' + mean_list[i].mean(axis=1).to_frame('mean').to_csv(f'{output_path}/model.ad.pred.eval.mean.{i/10}.csv') # y_pred = s.argmax(1) # f1_score = precision_recall_fscore_support(y, y_pred) # f1_macro = precision_recall_fscore_support(y, diff --git a/experiments/preprocessing_embeddings-googletranslate.py b/experiments/preprocessing_embeddings-googletranslate.py new file mode 100644 index 0000000..da9b945 --- /dev/null +++ b/experiments/preprocessing_embeddings-googletranslate.py @@ -0,0 +1,41 @@ +"""Creating fragments takes a long time so we treat it as a +pre-processing step.""" +import logging +import os + +from gensim.models import Word2Vec +from cat.fragments import create_noun_counts +from cat.utils import conll2text + +logging.basicConfig(level=logging.INFO) + + +if __name__ == "__main__": + datasets = [] + for d in ['googletranslate-twitter']: + for l in ['en', 'fa', 'zh-CN', 'de', 'ar', 'fr', 'es', 'fa.zh-CN.de.ar.fr.es']: + if l == 'en': + datasets.append(f'{d}') + else: + datasets.append(f'{d}-{l}') + for dataset in datasets: + for f in range(5): + fold_path = f'{dataset}/train/{f}' + paths = [f'../data/{fold_path}/input.conllu'] + create_noun_counts(paths, f'../data/{fold_path}/nouns.json') + conll2text(paths, f'../data/{fold_path}/all_txt.txt') + corpus = [x.lower().strip().split() + for x in open(f'../data/{fold_path}/all_txt.txt', encoding='utf-8')] + + f = Word2Vec(corpus, + sg=0, + negative=5, + window=10, + vector_size=200, + min_count=2, + epochs=40, + workers=10) + embedding_path = f"../embeddings/{fold_path}" + if not os.path.isdir(embedding_path): + os.makedirs(embedding_path) + f.wv.save_word2vec_format(f'{embedding_path}/vecs_w2v.vec') diff --git a/experiments/preprocessing_embeddings.py b/experiments/preprocessing_embeddings.py index 76039ca..d86fa54 100644 --- a/experiments/preprocessing_embeddings.py +++ b/experiments/preprocessing_embeddings.py @@ -1,6 +1,7 @@ """Creating fragments takes a long time so we treat it as a pre-processing step.""" import logging +import os from gensim.models import Word2Vec from cat.fragments import create_noun_counts @@ -10,21 +11,31 @@ if __name__ == "__main__": + datasets = [] + for d in ['lowresource-2014r']: + for l in ['lao_Laoo', 'san_Deva']: + if l == 'eng': + datasets.append(f'{d}') + else: + datasets.append(f'{d}-{l}') + for dataset in datasets: + for f in range(5): + fold_path = f'{dataset}/train/{f}' + paths = [f'../data/{fold_path}/input.conllu'] + create_noun_counts(paths, f'../data/{fold_path}/nouns.json') + conll2text(paths, f'../data/{fold_path}/all_txt.txt') + corpus = [x.lower().strip().split() + for x in open(f'../data/{fold_path}/all_txt.txt', encoding='utf-8')] - paths = ["../data/input.conllu"] - create_noun_counts(paths, - "../data/toy_nouns.json") - conll2text(paths, "../data/toy_all_txt.txt") - corpus = [x.lower().strip().split() - for x in open("../data/toy_all_txt.txt")] - - f = Word2Vec(corpus, - sg=0, - negative=5, - window=10, - vector_size=200, - min_count=2, - epochs=5, - workers=10) - - f.wv.save_word2vec_format(f"../embeddings/toy_vecs_w2v.vec") + f = Word2Vec(corpus, + sg=0, + negative=5, + window=10, + vector_size=200, + min_count=2, + epochs=200, + workers=10) + embedding_path = f"../embeddings/{fold_path}" + if not os.path.isdir(embedding_path): + os.makedirs(embedding_path) + f.wv.save_word2vec_format(f'{embedding_path}/vecs_w2v.vec') diff --git a/text-to-CONLLu.py b/text-to-CONLLu.py index 53fc960..85a485f 100644 --- a/text-to-CONLLu.py +++ b/text-to-CONLLu.py @@ -129,4 +129,16 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + datasets = [] + for d in ['lowresource-2015', 'lowresource-2016', 'lowresource-2014l', 'lowresource-2014r']: # , 'googletranslate-SemEval-14-L']: + for l in ['lao_Laoo', 'san_Deva']: + if l == 'eng': + datasets.append(f'{d}') + else: + datasets.append(f'{d}-{l}') + for dataset in datasets: + for f in range(5): + sys.argv.append(f'data/{dataset}/train/{f}/train.txt') + sys.argv.append(f'data/{dataset}/train/{f}/input.conllu') + main() + del sys.argv[-2:] diff --git a/wrapper.py b/wrapper.py index 6934c74..4a8fc52 100644 --- a/wrapper.py +++ b/wrapper.py @@ -11,9 +11,8 @@ def load(reviews, splits): print('\nLoading reviews and preprocessing ...') - print('#' * 50) + print('_' * 50) try: - print('\nLoading reviews files ...') with open(f'{reviews}', 'rb') as f: reviews = pickle.load(f) with open(f'{splits}', 'r') as f: @@ -25,44 +24,129 @@ def load(reviews, splits): return reviews, splits -def preprocess(org_reviews): +def get_aos_augmented(review): + r = [] + if not review.aos: return r + for i, aos in enumerate(review.aos): r.append([([review.sentences[i][j] for j in a], [review.sentences[i][j] for j in o], s) for (a, o, s) in aos]) + return r + + +def preprocess(org_reviews, status, lang): reviews_list = [] label_list = [] for r in org_reviews: if not len(r.aos[0]): continue else: - for aos_instance in r.get_aos(): - for aos in aos_instance[0][0]: - reviews_list.append(r.get_txt()) - label_list.append(aos) - if r.augs: - for key, value in r.items(): - for aos_instance in r[key][1].get_aos(): - for aos in aos_instance[0][0]: - reviews_list.append(r[key][1].get_txt()) - label_list.append(aos) + + if status == 'test': + reviews_list.append(r.get_txt()) + label_list.append(r.get_aos()[0][0][0][0]) + + elif status == 'multi-test': # test should not be duplicated in case of having more than one aspect + reviews_list.append(r.get_txt()) + label_per_review = [] + for aos in r.get_aos()[0][0][0]: + label_per_review.append(aos) + label_list.append(label_per_review) + + else: # train should be duplicated in case of having more than one aspect + for aos in r.get_aos()[0][0][0]: + text = r.get_txt() + label = aos + reviews_list.append(text) + label_list.append(label) + + ''' + if len(r.get_aos()[0][0][0]) == 1: + text = r.get_txt() + label = r.get_aos()[0][0][0][0] + reviews_list.append(text) + label_list.append(label) + ''' + + if r.augs and status == 'train': # data for train can be augmented + + # if lang == 'pes_Arab.zho_Hans.deu_Latn.arb_Arab.fra_Latn.spa_Latn': + if lang == 'fa.zh-CN.de.ar.fr.es': + for key, value in r.augs.items(): + for aos_instance in get_aos_augmented(r.augs[key][1])[0][0][0]: + text = r.augs[key][1].get_txt() + label = aos_instance + reviews_list.append(text) + label_list.append(label) + else: + # for l in lang.split('.'): + # for aos_instance in get_aos_augmented(r.augs[l][1])[0][0][0]: + # text = r.augs[l][1].get_txt() + # label = aos_instance + # reviews_list.append(text) + # label_list.append(label) + for aos_instance in get_aos_augmented(r.augs[lang][1])[0][0][0]: + text = r.augs[lang][1].get_txt() + label = aos_instance + reviews_list.append(text) + label_list.append(label) + ''' + # for key, value in r.augs.items(): + # if len(get_aos_augmented(r.augs[key][1])) == 0: + # text = r.augs[key][1].get_txt() + # reviews_list.append(text) + # continue + # for aos_instance in r.augs[key][1].get_aos()[0]: + if lang == 'pes_Arab.zho_Hans.deu_Latn.arb_Arab.fra_Latn.spa_Latn': + for key, value in r.augs.items(): + if len(get_aos_augmented(r.augs[key][1])[0][0][0]) == 1: + text = r.augs[key][1].get_txt() + label = get_aos_augmented(r.augs[key][1])[0][0][0][0] + reviews_list.append(text) + # label_list.append(label) + elif len(get_aos_augmented(r.augs[lang][1])[0][0][0]) == 1: + text = r.augs[lang][1].get_txt() + label = get_aos_augmented(r.augs[lang][1])[0][0][0][0] + reviews_list.append(text) + # label_list.append(label) + ''' + return reviews_list, label_list -# python main.py -ds_name [YOUR_DATASET_NAME] -sgd_lr [YOUR_LEARNING_RATE_FOR_SGD] -win [YOUR_WINDOW_SIZE] -optimizer [YOUR_OPTIMIZER] -rnn_type [LSTM|GRU] -attention_type [bilinear|concat] def main(args): - if not os.path.isdir(f'{args.output}'): os.makedirs(f'{args.output}') + output_path = f'{args.output}/{args.dname}/' + if not os.path.isdir(output_path): os.makedirs(output_path) org_reviews, splits = load(args.reviews, args.splits) + + for f in range(5): + path = f'{output_path}train/{f}/' + if not os.path.isdir(path): os.makedirs(path) + train, label_list = preprocess(np.array(org_reviews)[splits['folds'][str(f)]['train']].tolist(), 'train', args.lang) + + with open(f'{path}train.txt', 'w', encoding='utf-8') as file: + for d in train: + file.write(d + '\n') + with open(f'{path}train_label.txt', 'w', encoding='utf-8') as file: + for d in label_list: + file.write(d + '\n') + test = np.array(org_reviews)[splits['test']].tolist() for h in range(0, 101, 10): - path = f'{args.output}/{h}/{args.dname}' - if not os.path.isdir(f'{args.output}/{h}'): - os.makedirs(f'{args.output}/{h}') + path = f'{output_path}/test/{h}/' + if not os.path.isdir(path): + os.makedirs(path) - preprocessed_test, label_list = preprocess(test) + preprocessed_test, label_list = preprocess(test, 'test', args.lang) - with open(f'{path}_test_label.txt', 'w') as file: + with open(f'{path}test_label.txt', 'w', encoding='utf-8') as file: for d in label_list: file.write(d + '\n') + _, labels_list = preprocess(test, 'multi-test', args.lang) + with open(f'{path}test_label_multi.txt', 'w', encoding='utf-8') as file: + for d in labels_list: + file.write(str(d) + '\n') + hp = h / 100 test_hidden = [] for t in range(len(test)): @@ -70,34 +154,48 @@ def main(args): test_hidden.append(test[t].hide_aspects()) else: test_hidden.append(test[t]) - preprocessed_test, label_list = preprocess(test_hidden) + preprocessed_test, label_list = preprocess(test_hidden, 'test', args.lang) - with open(f'{path}_test.txt', 'w') as file: + with open(f'{path}test.txt', 'w', encoding='utf-8') as file: for d in preprocessed_test: file.write(d + '\n') - train, label_list = preprocess(np.array(org_reviews)[splits['folds']['0']['train']].tolist()) - path = f'{args.output}/{args.dname}' - with open(f'{path}_train.txt', 'w') as file: - for d in train: - file.write(d + '\n') - with open(f'{path}_train_label.txt', 'w') as file: - for d in label_list: - file.write(d + '\n') if __name__ == '__main__': parser = argparse.ArgumentParser(description='CAt Wrapper') - parser.add_argument('--dname', dest='dname', type=str, default='toy') + parser.add_argument('--dname', dest='dname', type=str, default='SemEval-14-R') parser.add_argument('--reviews', dest='reviews', type=str, - default='data/reviews.pkl', + default='data/2015SB12/reviews.pes_Arab.pkl', help='raw dataset file path') parser.add_argument('--splits', dest='splits', type=str, - default='data/splits.json', + default='data/2015SB12/splits.json', help='raw dataset file path') parser.add_argument('--output', dest='output', type=str, - default='data/', + default='data', help='output path') + parser.add_argument('--lang', dest='lang', type=str, + default='eng', + help='language') args = parser.parse_args() - main(args) + # 'SemEval14L','SemEval14R', '2015SB12', '2016SB5' + # 'output-twitter-modified' + # 'googletranslate-2015SB12','googletranslate-2016SB5','googletranslate-SemEval-14-L' + # for dataset in ['googletranslate-2015SB12','googletranslate-2016SB5','googletranslate-SemEval-14-L','googletranslate-SemEval-14-R', 'googletranslate-twitter']: + for dataset in ['lowresource-2015', 'lowresource-2016', 'lowresource-2014l', 'lowresource-2014r']: + args.splits = f'data/{dataset}/splits.json' + # for lang in []:'eng', 'pes_Arab', 'zho_Hans', 'deu_Latn', 'arb_Arab', 'fra_Latn', 'spa_Latn', + # # 'pes_Arab.zho_Hans.deu_Latn.arb_Arab.fra_Latn.spa_Latn' + for lang in ['lao_Laoo', 'san_Deva']: + # if lang == 'en': + if lang == 'eng': + args.lang = lang + args.dname = f'{dataset}' + args.reviews = f'data/{dataset}/reviews.pkl' + else: + args.lang = lang + args.dname = f'{dataset}-{lang}' + args.reviews = f'data/{dataset}/reviews.{lang}.pkl' + print(args) + main(args) From 15b194fc0e6ab4102929ce696a00761f2ee427a7 Mon Sep 17 00:00:00 2001 From: Farinam HemmatiZadeh <45711614+farinamhz@users.noreply.github.com> Date: Tue, 27 Feb 2024 11:54:40 -0500 Subject: [PATCH 2/2] cat updated for LADy pipeline --- cmn/LADy.png | Bin 55953 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cmn/LADy.png diff --git a/cmn/LADy.png b/cmn/LADy.png deleted file mode 100644 index 54a8f57c8d7bd08a4804a9f8ac15018fff35597e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55953 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�_IEAaMK~cUqTf&v{i1kLP>t1+Yq3}f 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 XeYqk9y-TCFYw4JnN*l=T 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 BOlbfB