MCPcopy Create free account
hub / github.com/AkaliKong/MiniOneRec / main

Function main

data/amazon23_data_process.py:516–602  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

514
515
516def main():
517 args = parse_args()
518
519 print("===================================================")
520 print(" Amazon 2023 Dataset Processing Pipeline Starting ")
521 print("===================================================")
522 print(f"Dataset : {args.dataset}")
523 print(f"Metadata file : {args.metadata_file}")
524 print(f"Reviews file : {args.reviews_file}")
525 print(f"K-core threshold: {args.user_k}")
526 print("---------------------------------------------------")
527
528 # Load metadata and reviews
529 asin2meta, asin2title = load_metadata_amazon23(args.metadata_file)
530 reviews = load_reviews_amazon23(args.reviews_file)
531
532 if len(reviews) == 0:
533 print("[ERROR] No reviews loaded. Abort.")
534 return
535
536 # Time range filtering is done inside k-core (json2csv style)
537 start_ts = get_timestamp_start(args.st_year, args.st_month)
538 end_ts = get_timestamp_start(args.ed_year, args.ed_month)
539
540 print(f"[INFO] Time range filtering inside k-core: {args.st_year}-{args.st_month} → {args.ed_year}-{args.ed_month}")
541
542
543 print("Total reviews loaded:", len(reviews))
544 print("Total metadata items:", len(asin2title))
545
546 unique_items = len(set(r["asin"] for r in reviews))
547 print("Unique items in reviews:", unique_items)
548
549 items_in_meta = sum(1 for r in reviews if r["asin"] in asin2title)
550 print("Reviews with metadata title:", items_in_meta)
551
552 print("Min timestamp:", min(r["timestamp"] for r in reviews))
553 print("Max timestamp:", max(r["timestamp"] for r in reviews))
554
555 # K-core filtering
556 reviews_filtered, user_counts, item_counts = k_core_filter_amazon23(
557 reviews, asin2title, K=args.user_k,
558 start_timestamp=start_ts,
559 end_timestamp=end_ts
560 )
561
562 print(f"[K-core Result] Users={len(user_counts)}, Items={len(item_counts)}, Reviews={len(reviews_filtered)}")
563
564 # Convert to index mappings
565 user2items, user2index, item2index, interactions = convert_interactions_amazon23(
566 reviews_filtered
567 )
568
569 # Build interaction_list for sequences
570 interaction_list = build_interaction_list_amazon23(
571 reviews_filtered, user2index, item2index, asin2title
572 )
573

Callers 1

Calls 13

load_metadata_amazon23Function · 0.85
load_reviews_amazon23Function · 0.85
k_core_filter_amazon23Function · 0.85
write_atomic_filesFunction · 0.85
parse_argsFunction · 0.70
get_timestamp_startFunction · 0.70
check_pathFunction · 0.70
write_json_fileFunction · 0.70

Tested by

no test coverage detected