Based on Sam's ChatGPT literature review workflow.
A tool for analyzing SCOPUS exports with automated ranking and visualization.
ChatGPT is still needed for key findings, but you can now focus on only the top ranked papers.
Tested on a Scopus CSV export with ~5000 papers.
- Publication Analysis: Visualize publication trends by year, document types, and keyword frequencies
- Custom Ranking System: Rank papers based on user-defined keyword weights
uv syncRequired packages:
- pandas: Data manipulation and analysis
- matplotlib: Basic plotting functionality
- numpy: Numerical computing
Export your literature search results from SCOPUS as a CSV file. The system expects these columns:
Year: Publication yearTitle: Paper titleAbstract: Paper abstractAuthor Keywords: Keywords provided by authorsIndex Keywords: Keywords assigned by databaseDocument Type: Type of publication (Article, Review, etc.)DOI: Digital Object Identifier
Create a rank_index.csv file with your ranking preferences. Example format (comma to separate the weight and semicolon to separate keywords):
Weight,Keywords
10,machine learning; artificial intelligence; deep learning
8,neural networks; computer vision; image processing
6,natural language processing; text mining
5,data mining; big data; statisticsHigher weights indicate more important keywords for your research focus.
python main.py your_scopus_export.csvThe system will generate:
- Publication year histogram (saved to
plots/publication_year_histogram.png) - Keywords frequency bar chart (saved to
plots/keywords_frequency_bar.png) - Document type pie chart (saved to
plots/document_type_pie.png) - Ranking comparison scatter plot (saved to
plots/rankings_comparison_scatter.png) - Literature summaries in
<original_file_name>_ranked.csv
The relevance score in the code is computed from three normalized components derived from the dataset.
-
Keyword Match Score
- Calculated only from the "Index Keywords" and "Author Keywords" fields.
- The file
rank_index.csvsupplies criteria rows withWeightand semicolon-separatedKeywords. For each publication the code:- parses and normalizes publication keywords (lowercased, semicolon-separated),
- counts matches with each criterion's keywords,
- multiplies matches by the criterion weight,
- sums across criteria to produce
Rank_Index(index keywords) andRank_Author_Keywords(author keywords).
-
Citation Count Score
- The raw citation count (
Cited by) is transformed with log(cited_by + 1). This producesRank_Citations.
- The raw citation count (
-
Publication Year Score
- Year-based raw score is computed as max(0, (Year - 1990) * 2) producing
Rank_Year(so more recent years get higher raw values).
- Year-based raw score is computed as max(0, (Year - 1990) * 2) producing
Relevance Score Calculation
- The code min-max normalizes
Rank_Index,Rank_Author_Keywords,Rank_Citations, andRank_Yearto [0,1]. - Combined keyword score = (normalized Rank_Index + normalized Rank_Author_Keywords) / 2.
- Final Relevance_Score = combined_keyword_score + normalized_citations + normalized_year.
- Because components are normalized to [0,1], the final score typically ranges from ~0 to 3 (higher = more relevant).



