multilingual-absa / scripts /download_data.py
Aryan Mishra
Add CI, typed ORM models, and packaging cleanup
a00fee9
Raw
History Blame Contribute Delete
1.72 kB
import os
import urllib.request
from datasets import load_dataset
from absa.utils.config import FASTTEXT_MODEL_PATH, RAW_DIR
def download_fasttext():
url = "https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.ftz"
os.makedirs(FASTTEXT_MODEL_PATH.parent, exist_ok=True)
if not FASTTEXT_MODEL_PATH.exists():
print("Downloading fastText LID model...")
urllib.request.urlretrieve(url, FASTTEXT_MODEL_PATH)
else:
print("fastText LID model already exists.")
print(f"fastText model size: {os.path.getsize(FASTTEXT_MODEL_PATH) / 1024 / 1024:.2f} MB")
def download_semeval():
print("Downloading SemEval datasets...")
restaurants = load_dataset("tomaarsen/setfit-absa-semeval-restaurants")
laptops = load_dataset("tomaarsen/setfit-absa-semeval-laptops")
rest_path = RAW_DIR / "semeval_restaurants"
lap_path = RAW_DIR / "semeval_laptops"
restaurants.save_to_disk(str(rest_path))
laptops.save_to_disk(str(lap_path))
print(f"SemEval Restaurants train samples: {len(restaurants['train'])}")
print(f"SemEval Laptops train samples: {len(laptops['train'])}")
def download_amazon_hindi():
print("Downloading Amazon Hindi dataset...")
ds = load_dataset("ai4bharat/IndicSentiment", "translation-hi", trust_remote_code=True, split="test")
amz_path = RAW_DIR / "amazon_hindi"
os.makedirs(amz_path, exist_ok=True)
file_path = amz_path / "hindi_sentiment.jsonl"
ds.to_json(str(file_path))
print(f"Downloaded {len(ds)} Hindi samples")
if __name__ == "__main__":
os.makedirs(RAW_DIR, exist_ok=True)
download_fasttext()
download_semeval()
download_amazon_hindi()
print("Download complete.")