Takes a set of bibtex of publications and converts them for use with academicpages.github.io. This is an interactive Jupyter notebook (see more info here).
The core python code is also in pubsFromBibs.py
.
Run either from the markdown_generator
folder after replacing updating the publist dictionary with:
TODO: Make this work with other databases of citations, TODO: Merge this with the existing TSV parsing solution
from pybtex.database.input import bibtex
import pybtex.database.input.bibtex
from time import strptime
import string
import html
import os
import re
from unidecode import unidecode
#todo: incorporate different collection types rather than a catch all publications, requires other changes to template
publist = {
"proceeding": {
"file" : "/home/lensenandr/publications/lensen.bib",
"venuekey": ["booktitle","journal"],
"venue-pretext": "",
"collection" : {"name":"publications",
"permalink":"/publication/"}
}
}
html_escape_table = {
"&": "&",
'"': """,
"'": "'"
}
def html_escape(text):
"""Produce entities within text."""
return "".join(html_escape_table.get(c,c) for c in text)
for pubsource in publist:
parser = bibtex.Parser()
bibdata = parser.parse_file(publist[pubsource]["file"])
#loop through the individual references in a given bibtex file
for bib_id in bibdata.entries:
#reset default date
pub_year = "1900"
pub_month = "01"
pub_day = "01"
b = bibdata.entries[bib_id].fields
try:
pub_year = f'{b["year"]}'
#todo: this hack for month and day needs some cleanup
if "month" in b.keys():
if(len(b["month"])<3):
pub_month = "0"+b["month"]
pub_month = pub_month[-2:]
elif(b["month"] not in range(12)):
tmnth = strptime(b["month"][:3],'%b').tm_mon
pub_month = "{:02d}".format(tmnth)
else:
pub_month = str(b["month"])
if "day" in b.keys():
pub_day = str(b["day"])
pub_date = pub_year+"-"+pub_month+"-"+pub_day
#strip out {} as needed (some bibtex entries that maintain formatting)
clean_title = b["title"].replace("{", "").replace("}","").replace("\\","").replace(" ","-")
print(clean_title)
#macrons etc
clean_title = unidecode(clean_title)
url_slug = re.sub("\\[.*\\]|[^a-zA-Z0-9_-]", "", clean_title)
url_slug = url_slug.replace("--","-")
print(url_slug)
md_filename = (str(pub_date) + "-" + url_slug + ".md").replace("--","-")
html_filename = (str(pub_date) + "-" + url_slug).replace("--","-")
print(html_filename)
#Build Citation from text
citation = ""
#citation authors - todo - add highlighting for primary author?
for author in bibdata.entries[bib_id].persons["author"]:
citation = citation+(" "+author.first_names[0]+" "+author.last_names[0]+", ").replace("{", "").replace("}","").replace("\\","")
#citation title
citation = citation + "\"" + html_escape(b["title"].replace("{", "").replace("}","").replace("\\","")) + ".\""
#add venue logic depending on citation type
venue = publist[pubsource]["venue-pretext"]
for k in publist[pubsource]["venuekey"]:
if k in b:
venue = venue + b[k].replace("{", "").replace("}","").replace("\\","")
break
#venue = publist[pubsource]["venue-pretext"]+b[publist[pubsource]["venuekey"]].replace("{", "").replace("}","").replace("\\","")
citation = citation + " " + html_escape(venue)
citation = citation + ", " + pub_year + "."
if "note" in b.keys():
citation = citation + " " + html_escape(b['note']) + "."
## YAML variables
md = "---\ntitle: \"" + html_escape(b["title"].replace("{", "").replace("}","").replace("\\","")) + '"\n'
md += """collection: """ + publist[pubsource]["collection"]["name"]
md += """\npermalink: """ + publist[pubsource]["collection"]["permalink"] + html_filename
note = False
if "note" in b.keys():
if len(str(b["note"])) > 5:
#md += "\nexcerpt: '" + html_escape(b["note"]) + "'"
note = True
md += "\ndate: " + str(pub_date)
md += "\nvenue: '" + html_escape(venue) + "'"
b["url"] = '/files/{}.pdf'.format(bib_id)
url = False
if "url" in b.keys():
if len(str(b["url"])) > 5:
#this is annoying??
#md += "\npaperurl: '" + b["url"] + "'"
url = True
md += "\ncitation: '" + html_escape(citation) + "'"
md += "\n---"
## Markdown description for individual page
#if note:
# md += "\n" + html_escape(b["note"]) + "\n"
if url:
md += "\n[Access paper here](" + b["url"] + "){:target=\"_blank\"}\n"
#else:
# md += "\nUse [Google Scholar](https://scholar.google.com/scholar?q="+html.escape(clean_title.replace("-","+"))+"){:target=\"_blank\"} for full citation"
#print(md_filename)
md_filename = os.path.basename(md_filename)
print(md_filename)
with open("../_publications/" + md_filename, 'w') as f:
f.write(md)
print(f'SUCESSFULLY PARSED {bib_id}: \"', b["title"][:60],"..."*(len(b['title'])>60),"\"")
# field may not exist for a reference
except KeyError as e:
print(f'WARNING Missing Expected Field {e} from entry {bib_id}: \"', b["title"][:30],"..."*(len(b['title'])>30),"\"")
continue
New-Representations-in-Genetic-Programming-for-Feature-Construction-in-k-Means-Clustering New-Representations-in-Genetic-Programming-for-Feature-Construction-in-k-Means-Clustering 2017-11-10-New-Representations-in-Genetic-Programming-for-Feature-Construction-in-k-Means-Clustering 2017-11-10-New-Representations-in-Genetic-Programming-for-Feature-Construction-in-k-Means-Clustering.md SUCESSFULLY PARSED lensen2017New: " New Representations in Genetic Programming for Feature Const ... " Genetic-Programming-for-Region-Detection,-Feature-Extraction,-Feature-Construction-and-Classification-in-Image-Data Genetic-Programming-for-Region-Detection-Feature-Extraction-Feature-Construction-and-Classification-in-Image-Data 2016-03-30-Genetic-Programming-for-Region-Detection-Feature-Extraction-Feature-Construction-and-Classification-in-Image-Data 2016-03-30-Genetic-Programming-for-Region-Detection-Feature-Extraction-Feature-Construction-and-Classification-in-Image-Data.md SUCESSFULLY PARSED lensen2016Genetic: " Genetic Programming for Region Detection, Feature Extraction ... " Genetic-Programming-for-algae-detection-in-river-images Genetic-Programming-for-algae-detection-in-river-images 2015-05-25-Genetic-Programming-for-algae-detection-in-river-images 2015-05-25-Genetic-Programming-for-algae-detection-in-river-images.md SUCESSFULLY PARSED lensen2015Genetic: " Genetic Programming for algae detection in river images " A-hybrid-Genetic-Programming-approach-to-feature-detection-and-image-classification A-hybrid-Genetic-Programming-approach-to-feature-detection-and-image-classification 2015-11-23-A-hybrid-Genetic-Programming-approach-to-feature-detection-and-image-classification 2015-11-23-A-hybrid-Genetic-Programming-approach-to-feature-detection-and-image-classification.md SUCESSFULLY PARSED lensen2015hybrid: " A hybrid Genetic Programming approach to feature detection a ... " Improving-k-means-clustering-with-genetic-programming-for-feature-construction Improving-k-means-clustering-with-genetic-programming-for-feature-construction 2017-04-19-Improving-k-means-clustering-with-genetic-programming-for-feature-construction 2017-04-19-Improving-k-means-clustering-with-genetic-programming-for-feature-construction.md SUCESSFULLY PARSED lensen2017Improving: " Improving {k}-means clustering with genetic programming for ... " GPGC:-genetic-programming-for-automatic-clustering-using-a-flexible-non-hyper-spherical-graph-based-approach GPGC-genetic-programming-for-automatic-clustering-using-a-flexible-non-hyper-spherical-graph-based-approach 2017-07-15-GPGC-genetic-programming-for-automatic-clustering-using-a-flexible-non-hyper-spherical-graph-based-approach 2017-07-15-GPGC-genetic-programming-for-automatic-clustering-using-a-flexible-non-hyper-spherical-graph-based-approach.md SUCESSFULLY PARSED lensen2017GPGC: " {GPGC:} genetic programming for automatic clustering using a ... " Using-Particle-Swarm-Optimisation-and-the-Silhouette-Metric-to-Estimate-the-Number-of-Clusters,-Select-Features,-and-Perform-Clustering Using-Particle-Swarm-Optimisation-and-the-Silhouette-Metric-to-Estimate-the-Number-of-Clusters-Select-Features-and-Perform-Clustering 2017-04-19-Using-Particle-Swarm-Optimisation-and-the-Silhouette-Metric-to-Estimate-the-Number-of-Clusters-Select-Features-and-Perform-Clustering 2017-04-19-Using-Particle-Swarm-Optimisation-and-the-Silhouette-Metric-to-Estimate-the-Number-of-Clusters-Select-Features-and-Perform-Clustering.md SUCESSFULLY PARSED lensen2017Using: " Using Particle Swarm Optimisation and the Silhouette Metric ... " Particle-Swarm-Optimisation-Representations-for-Simultaneous-Clustering-and-Feature-Selection Particle-Swarm-Optimisation-Representations-for-Simultaneous-Clustering-and-Feature-Selection 2016-12-6-Particle-Swarm-Optimisation-Representations-for-Simultaneous-Clustering-and-Feature-Selection 2016-12-6-Particle-Swarm-Optimisation-Representations-for-Simultaneous-Clustering-and-Feature-Selection.md SUCESSFULLY PARSED lensen2016Particle: " Particle Swarm Optimisation Representations for Simultaneous ... " Generating-Redundant-Features-with-Unsupervised-Multi-tree-Genetic-Programming Generating-Redundant-Features-with-Unsupervised-Multi-tree-Genetic-Programming 2018-04-4-Generating-Redundant-Features-with-Unsupervised-Multi-tree-Genetic-Programming 2018-04-4-Generating-Redundant-Features-with-Unsupervised-Multi-tree-Genetic-Programming.md SUCESSFULLY PARSED lensen2018generating: " Generating Redundant Features with Unsupervised Multi-tree G ... " Automatically-Evolving-Difficult-Benchmark-Feature-Selection-Datasets-with-Genetic-Programming Automatically-Evolving-Difficult-Benchmark-Feature-Selection-Datasets-with-Genetic-Programming 2018-07-15-Automatically-Evolving-Difficult-Benchmark-Feature-Selection-Datasets-with-Genetic-Programming 2018-07-15-Automatically-Evolving-Difficult-Benchmark-Feature-Selection-Datasets-with-Genetic-Programming.md SUCESSFULLY PARSED lensen2018automatically: " Automatically Evolving Difficult Benchmark Feature Selection ... " Particle-Swarm-Optimisation-for-Feature-Selection-and-Weighting-in-High-Dimensional-Clustering Particle-Swarm-Optimisation-for-Feature-Selection-and-Weighting-in-High-Dimensional-Clustering 2018-07-8-Particle-Swarm-Optimisation-for-Feature-Selection-and-Weighting-in-High-Dimensional-Clustering 2018-07-8-Particle-Swarm-Optimisation-for-Feature-Selection-and-Weighting-in-High-Dimensional-Clustering.md SUCESSFULLY PARSED oneill2018particle: " Particle Swarm Optimisation for Feature Selection and Weight ... " Can-Genetic-Programming-Do-Manifold-Learning-Too? Can-Genetic-Programming-Do-Manifold-Learning-Too 2019-04-24-Can-Genetic-Programming-Do-Manifold-Learning-Too 2019-04-24-Can-Genetic-Programming-Do-Manifold-Learning-Too.md SUCESSFULLY PARSED lensen2019can: " Can Genetic Programming Do Manifold Learning Too? " A-survey-on-evolutionary-machine-learning A-survey-on-evolutionary-machine-learning 2019-04-15-A-survey-on-evolutionary-machine-learning 2019-04-15-A-survey-on-evolutionary-machine-learning.md SUCESSFULLY PARSED alsahaf2019survey: " A survey on evolutionary machine learning " Genetic-Programming-for-Evolving-Similarity-Functions-for-Clustering:-Representations-and-Analysis Genetic-Programming-for-Evolving-Similarity-Functions-for-Clustering-Representations-and-Analysis 2020-12-1-Genetic-Programming-for-Evolving-Similarity-Functions-for-Clustering-Representations-and-Analysis 2020-12-1-Genetic-Programming-for-Evolving-Similarity-Functions-for-Clustering-Representations-and-Analysis.md SUCESSFULLY PARSED lensen2019genetic: " Genetic Programming for Evolving Similarity Functions for Cl ... " Multi-Objective-Genetic-Programming-for-Manifold-Learning:-Balancing-Quality-and-Dimensionality Multi-Objective-Genetic-Programming-for-Manifold-Learning-Balancing-Quality-and-Dimensionality 2020-02-5-Multi-Objective-Genetic-Programming-for-Manifold-Learning-Balancing-Quality-and-Dimensionality 2020-02-5-Multi-Objective-Genetic-Programming-for-Manifold-Learning-Balancing-Quality-and-Dimensionality.md SUCESSFULLY PARSED lensen2019multi: " Multi-Objective Genetic Programming for Manifold Learning: B ... " Genetic-Programming-for-Evolving-a-Front-of-Interpretable-Models-for-Data-Visualisation Genetic-Programming-for-Evolving-a-Front-of-Interpretable-Models-for-Data-Visualisation 2021-11-9-Genetic-Programming-for-Evolving-a-Front-of-Interpretable-Models-for-Data-Visualisation 2021-11-9-Genetic-Programming-for-Evolving-a-Front-of-Interpretable-Models-for-Data-Visualisation.md SUCESSFULLY PARSED lensen2020genetic: " Genetic Programming for Evolving a Front of Interpretable Mo ... " Genetic-Programming-for-Manifold-Learning:-Preserving-Local-Topology Genetic-Programming-for-Manifold-Learning-Preserving-Local-Topology 2022-08-23-Genetic-Programming-for-Manifold-Learning-Preserving-Local-Topology 2022-08-23-Genetic-Programming-for-Manifold-Learning-Preserving-Local-Topology.md SUCESSFULLY PARSED lensen2021genetic: " Genetic Programming for Manifold Learning: Preserving Local ... " Evolving-Simpler-Constructed-Features-for-Clustering-Problems-with-Genetic-Programming Evolving-Simpler-Constructed-Features-for-Clustering-Problems-with-Genetic-Programming 2020-07-19-Evolving-Simpler-Constructed-Features-for-Clustering-Problems-with-Genetic-Programming 2020-07-19-Evolving-Simpler-Constructed-Features-for-Clustering-Problems-with-Genetic-Programming.md SUCESSFULLY PARSED schofield2020evolving: " Evolving Simpler Constructed Features for Clustering Problem ... " Mining-Feature-Relationships-in-Data Mining-Feature-Relationships-in-Data 2021-04-7-Mining-Feature-Relationships-in-Data 2021-04-7-Mining-Feature-Relationships-in-Data.md SUCESSFULLY PARSED lensen2021mining: " Mining Feature Relationships in Data " Genetic-Programming-for-Evolving-Similarity-Functions-Tailored-to-Clustering-Algorithms Genetic-Programming-for-Evolving-Similarity-Functions-Tailored-to-Clustering-Algorithms 2021-06-28-Genetic-Programming-for-Evolving-Similarity-Functions-Tailored-to-Clustering-Algorithms 2021-06-28-Genetic-Programming-for-Evolving-Similarity-Functions-Tailored-to-Clustering-Algorithms.md SUCESSFULLY PARSED andersen2021genetic: " Genetic Programming for Evolving Similarity Functions Tailor ... " Using-Genetic-Programming-to-Find-Functional-Mappings-for-UMAP-Embeddings Using-Genetic-Programming-to-Find-Functional-Mappings-for-UMAP-Embeddings 2021-06-28-Using-Genetic-Programming-to-Find-Functional-Mappings-for-UMAP-Embeddings 2021-06-28-Using-Genetic-Programming-to-Find-Functional-Mappings-for-UMAP-Embeddings.md SUCESSFULLY PARSED schofield2021using: " Using Genetic Programming to Find Functional Mappings for UM ... " Large-Scale-Image-Classification-Using-GPU-based-Genetic-Programming Large-Scale-Image-Classification-Using-GPU-based-Genetic-Programming 2022-07-9-Large-Scale-Image-Classification-Using-GPU-based-Genetic-Programming 2022-07-9-Large-Scale-Image-Classification-Using-GPU-based-Genetic-Programming.md SUCESSFULLY PARSED zeng2022large: " Large Scale Image Classification Using {GPU}-based Genetic P ... " Improving-the-Search-of-Learning-Classifier-Systems-Through-Interpretable-Feature-Clustering Improving-the-Search-of-Learning-Classifier-Systems-Through-Interpretable-Feature-Clustering 2022-07-9-Improving-the-Search-of-Learning-Classifier-Systems-Through-Interpretable-Feature-Clustering 2022-07-9-Improving-the-Search-of-Learning-Classifier-Systems-Through-Interpretable-Feature-Clustering.md SUCESSFULLY PARSED andersen2022improving: " Improving the Search of Learning Classifier Systems Through ... " Evolving-Counterfactual-Explanations-with-Particle-Swarm-Optimization-and-Differential-Evolution Evolving-Counterfactual-Explanations-with-Particle-Swarm-Optimization-and-Differential-Evolution 2022-07-18-Evolving-Counterfactual-Explanations-with-Particle-Swarm-Optimization-and-Differential-Evolution 2022-07-18-Evolving-Counterfactual-Explanations-with-Particle-Swarm-Optimization-and-Differential-Evolution.md SUCESSFULLY PARSED andersen2022evolving: " Evolving Counterfactual Explanations with Particle Swarm Opt ... " Explainable-Artificial-Intelligence-for-Assault-Sentence-Prediction-in-New-Zealand Explainable-Artificial-Intelligence-for-Assault-Sentence-Prediction-in-New-Zealand 2022-08-15-Explainable-Artificial-Intelligence-for-Assault-Sentence-Prediction-in-New-Zealand 2022-08-15-Explainable-Artificial-Intelligence-for-Assault-Sentence-Prediction-in-New-Zealand.md SUCESSFULLY PARSED rodger2022explainable: " Explainable Artificial Intelligence for Assault Sentence Pre ... " Using-Neural-Networks-to-Automate-Monitoring-of-Fish-Stocks Using-Neural-Networks-to-Automate-Monitoring-of-Fish-Stocks 2022-12-4-Using-Neural-Networks-to-Automate-Monitoring-of-Fish-Stocks 2022-12-4-Using-Neural-Networks-to-Automate-Monitoring-of-Fish-Stocks.md SUCESSFULLY PARSED stanley2022using: " Using Neural Networks to Automate Monitoring of Fish Stocks " Speeding-up-Genetic-Programming-Based-Symbolic-Regression-Using-GPUs Speeding-up-Genetic-Programming-Based-Symbolic-Regression-Using-GPUs 2022-11-10-Speeding-up-Genetic-Programming-Based-Symbolic-Regression-Using-GPUs 2022-11-10-Speeding-up-Genetic-Programming-Based-Symbolic-Regression-Using-GPUs.md SUCESSFULLY PARSED zhang2022speeding: " Speeding up Genetic Programming Based Symbolic Regression Us ... " Evolutionary-Feature-Manipulation-in-Unsupervised-Learning Evolutionary-Feature-Manipulation-in-Unsupervised-Learning 2019-09-01-Evolutionary-Feature-Manipulation-in-Unsupervised-Learning 2019-09-01-Evolutionary-Feature-Manipulation-in-Unsupervised-Learning.md SUCESSFULLY PARSED lensen2019thesis: " Evolutionary Feature Manipulation in Unsupervised Learning " Explainable-Artificial-Intelligence-by-Genetic-Programming:-A-Survey Explainable-Artificial-Intelligence-by-Genetic-Programming-A-Survey 2022-11-25-Explainable-Artificial-Intelligence-by-Genetic-Programming-A-Survey 2022-11-25-Explainable-Artificial-Intelligence-by-Genetic-Programming-A-Survey.md SUCESSFULLY PARSED mei2022explainable: " Explainable Artificial Intelligence by Genetic Programming: ... " A-Genetic-Programming-Encoder-for-Increasing-Autoencoder-Interpretability A-Genetic-Programming-Encoder-for-Increasing-Autoencoder-Interpretability 2023-04-12-A-Genetic-Programming-Encoder-for-Increasing-Autoencoder-Interpretability 2023-04-12-A-Genetic-Programming-Encoder-for-Increasing-Autoencoder-Interpretability.md SUCESSFULLY PARSED schofield2023genetic: " A Genetic Programming Encoder for Increasing Autoencoder Int ... " Feature-based-Image-Matching-for-Identifying-Individual-Kākā Feature-based-Image-Matching-for-Identifying-Individual-Kaka 2023-01-17-Feature-based-Image-Matching-for-Identifying-Individual-Kaka 2023-01-17-Feature-based-Image-Matching-for-Identifying-Individual-Kaka.md SUCESSFULLY PARSED osullivan2023feature: " Feature-based Image Matching for Identifying Individual Kākā " Producing-Diverse-Rashomon-Sets-of-Counterfactual-Explanations-with-Niching-Particle-Swarm-Optimisation Producing-Diverse-Rashomon-Sets-of-Counterfactual-Explanations-with-Niching-Particle-Swarm-Optimisation 2023-07-15-Producing-Diverse-Rashomon-Sets-of-Counterfactual-Explanations-with-Niching-Particle-Swarm-Optimisation 2023-07-15-Producing-Diverse-Rashomon-Sets-of-Counterfactual-Explanations-with-Niching-Particle-Swarm-Optimisation.md SUCESSFULLY PARSED andersen2023producing: " Producing Diverse Rashomon Sets of Counterfactual Explanatio ... " Differentiable-Genetic-Programming-for-High-dimensional-Symbolic-Regression Differentiable-Genetic-Programming-for-High-dimensional-Symbolic-Regression 2023-04-18-Differentiable-Genetic-Programming-for-High-dimensional-Symbolic-Regression 2023-04-18-Differentiable-Genetic-Programming-for-High-dimensional-Symbolic-Regression.md SUCESSFULLY PARSED zeng2023differentiable: " Differentiable Genetic Programming for High-dimensional Symb ... "
bibdata
BibliographyData( entries=OrderedCaseInsensitiveDict([ ('lensen2017New', Entry('inproceedings', fields=[ ('title', 'New Representations in Genetic Programming for Feature Construction in k-Means Clustering'), ('booktitle', 'Proceedings of the 11th International Conference on Simulated Evolution and Learning ({SEAL})'), ('year', '2017'), ('month', '11'), ('day', '10'), ('volume', '10593'), ('series', 'Lecture Notes in Computer Science'), ('pages', '543--555'), ('publisher', 'Springer'), ('url', '/files/lensen2017New.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2016Genetic', Entry('inproceedings', fields=[ ('title', 'Genetic Programming for Region Detection, Feature Extraction, Feature Construction and Classification in Image Data'), ('booktitle', 'Proceedings of the European Conference on Genetic Programming (EuroGP)'), ('year', '2016'), ('month', '3'), ('day', '30'), ('volume', '9594'), ('series', 'Lecture Notes in Computer Science'), ('pages', '51--67'), ('publisher', 'Springer'), ('url', '/files/lensen2016Genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Al{-}Sahaf, Harith'), Person('Zhang, Mengjie'), Person('Xue, Bing')])]))), ('lensen2015Genetic', Entry('inproceedings', fields=[ ('title', 'Genetic Programming for algae detection in river images'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2015'), ('month', '5'), ('day', '25'), ('pages', '2468--2475'), ('publisher', '{IEEE}'), ('url', '/files/lensen2015Genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Al{-}Sahaf, Harith'), Person('Zhang, Mengjie'), Person('Verma, Brijesh')])]))), ('lensen2015hybrid', Entry('inproceedings', fields=[ ('title', 'A hybrid Genetic Programming approach to feature detection and image classification'), ('booktitle', 'Proceedings of the International Conference on Image and Vision Computing New Zealand (IVCNZ)'), ('year', '2015'), ('month', '11'), ('day', '23'), ('pages', '1--6'), ('publisher', '{IEEE}'), ('url', '/files/lensen2015hybrid.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Al{-}Sahaf, Harith'), Person('Zhang, Mengjie'), Person('Xue, Bing')])]))), ('lensen2017Improving', Entry('inproceedings', fields=[ ('title', 'Improving {k}-means clustering with genetic programming for feature construction'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO) Companion'), ('year', '2017'), ('month', '4'), ('day', '19'), ('pages', '237--238'), ('publisher', '{ACM}'), ('url', '/files/lensen2017Improving.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2017GPGC', Entry('inproceedings', fields=[ ('title', '{GPGC:} genetic programming for automatic clustering using a flexible non-hyper-spherical graph-based approach'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO)'), ('year', '2017'), ('month', '7'), ('day', '15'), ('pages', '449--456'), ('publisher', '{ACM}'), ('url', '/files/lensen2017GPGC.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2017Using', Entry('inproceedings', fields=[ ('title', 'Using Particle Swarm Optimisation and the Silhouette Metric to Estimate the Number of Clusters, Select Features, and Perform Clustering'), ('booktitle', 'Proceedings of the European Conference on the Applications of Evolutionary Computation (EvoApplications), Part {I}'), ('year', '2017'), ('month', '4'), ('day', '19'), ('volume', '10199'), ('series', 'Lecture Notes in Computer Science'), ('pages', '538--554'), ('publisher', 'Springer'), ('url', '/files/lensen2017Using.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2016Particle', Entry('inproceedings', fields=[ ('title', 'Particle Swarm Optimisation Representations for Simultaneous Clustering and Feature Selection'), ('booktitle', 'Proceedings of the Symposium Series on Computational Intelligence (SSCI)'), ('year', '2016'), ('month', '12'), ('day', '6'), ('pages', '1--8'), ('publisher', '{IEEE}'), ('url', '/files/lensen2016Particle.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2018generating', Entry('inproceedings', fields=[ ('title', 'Generating Redundant Features with Unsupervised Multi-tree Genetic Programming'), ('booktitle', 'Proceedings of the European Conference on Genetic Programming (EuroGP)'), ('pages', '84--100'), ('year', '2018'), ('month', '4'), ('day', '4'), ('series', 'Lecture Notes in Computer Science'), ('volume', '10781'), ('publisher', 'Springer'), ('url', '/files/lensen2018generating.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2018automatically', Entry('inproceedings', fields=[ ('title', 'Automatically Evolving Difficult Benchmark Feature Selection Datasets with Genetic Programming'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO)'), ('pages', '458--465'), ('year', '2018'), ('month', '7'), ('day', '15'), ('publisher', '{ACM}'), ('url', '/files/lensen2018automatically.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('oneill2018particle', Entry('inproceedings', fields=[ ('title', 'Particle Swarm Optimisation for Feature Selection and Weighting in High-Dimensional Clustering'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2018'), ('month', '7'), ('day', '8'), ('publisher', '{IEEE}'), ('pages', '1--8'), ('url', '/files/oneill2018particle.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person("O'Neill, Damien"), Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2019can', Entry('inproceedings', fields=[ ('title', 'Can Genetic Programming Do Manifold Learning Too?'), ('booktitle', 'Proceedings of the European Conference on Genetic Programming (EuroGP)'), ('year', '2019'), ('month', '4'), ('day', '24'), ('volume', '11451'), ('series', 'Lecture Notes in Computer Science'), ('publisher', 'Springer'), ('pages', '114--130'), ('note', 'Best paper'), ('url', '/files/lensen2019can.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('alsahaf2019survey', Entry('article', fields=[ ('title', 'A survey on evolutionary machine learning'), ('journal', 'Journal of the Royal Society of New Zealand'), ('volume', '49'), ('number', '2'), ('pages', '205-228'), ('year', '2019'), ('month', '4'), ('day', '15'), ('publisher', 'Taylor & Francis'), ('url', '/files/alsahaf2019survey.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Al-Sahaf, Harith'), Person('Bi, Ying'), Person('Chen, Qi'), Person('Lensen, Andrew'), Person('Mei, Yi'), Person('Sun, Yanan'), Person('Tran, Binh'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2019genetic', Entry('article', fields=[ ('title', 'Genetic Programming for Evolving Similarity Functions for Clustering: Representations and Analysis'), ('journal', 'Evolutionary Computation'), ('volume', '28'), ('number', '4'), ('pages', '531--561'), ('year', '2020'), ('month', '12'), ('day', '1'), ('publisher', 'MIT Press'), ('url', '/files/lensen2019genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2019multi', Entry('article', fields=[ ('title', 'Multi-Objective Genetic Programming for Manifold Learning: Balancing Quality and Dimensionality'), ('journal', 'Genetic Programming and Evolvable Machines'), ('volume', '21'), ('number', '3'), ('pages', '399--431'), ('year', '2020'), ('month', '2'), ('day', '5'), ('publisher', 'Springer'), ('url', '/files/lensen2019multi.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Zhang, Mengjie'), Person('Xue, Bing')])]))), ('lensen2020genetic', Entry('article', fields=[ ('title', 'Genetic Programming for Evolving a Front of Interpretable Models for Data Visualisation'), ('journal', '{IEEE} Transactions on Cybernetics'), ('pages', '5468--5482'), ('year', '2021'), ('month', '11'), ('day', '9'), ('volume', '51'), ('number', '11'), ('publisher', 'IEEE'), ('url', '/files/lensen2020genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('lensen2021genetic', Entry('article', fields=[ ('title', 'Genetic Programming for Manifold Learning: Preserving Local Topology'), ('journal', '{IEEE} Transactions on Evolutionary Computation'), ('pages', '661--675'), ('year', '2022'), ('month', '8'), ('day', '23'), ('volume', '26'), ('number', '4'), ('publisher', 'IEEE'), ('url', '/files/lensen2021genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('schofield2020evolving', Entry('inproceedings', fields=[ ('title', 'Evolving Simpler Constructed Features for Clustering Problems with Genetic Programming'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2020'), ('month', '7'), ('day', '19'), ('publisher', '{IEEE}'), ('pages', '1--8'), ('url', '/files/schofield2020evolving.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Schofield, Finn'), Person('Lensen, Andrew')])]))), ('lensen2021mining', Entry('inproceedings', fields=[ ('title', 'Mining Feature Relationships in Data'), ('booktitle', 'Proceedings of the European Conference on Genetic Programming (EuroGP)'), ('year', '2021'), ('month', '4'), ('day', '7'), ('volume', '12691'), ('series', 'Lecture Notes in Computer Science'), ('publisher', 'Springer'), ('pages', '247--262'), ('url', '/files/lensen2021mining.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew')])]))), ('andersen2021genetic', Entry('inproceedings', fields=[ ('title', 'Genetic Programming for Evolving Similarity Functions Tailored to Clustering Algorithms'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2021'), ('month', '6'), ('day', '28'), ('publisher', '{IEEE}'), ('pages', '688--695'), ('url', '/files/andersen2021genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Andersen, Hayden'), Person('Lensen, Andrew'), Person('Xue, Bing')])]))), ('schofield2021using', Entry('inproceedings', fields=[ ('title', 'Using Genetic Programming to Find Functional Mappings for UMAP Embeddings'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2021'), ('month', '6'), ('day', '28'), ('publisher', '{IEEE}'), ('pages', '704--711'), ('url', '/files/schofield2021using.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Schofield, Finn'), Person('Lensen, Andrew')])]))), ('zeng2022large', Entry('inproceedings', fields=[ ('title', 'Large Scale Image Classification Using {GPU}-based Genetic Programming'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO) Companion'), ('year', '2022'), ('month', '7'), ('day', '9'), ('pages', '619--622'), ('publisher', '{ACM}'), ('url', '/files/zeng2022large.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Zeng, Peng'), Person('Lensen, Andrew'), Person('Sun, Yanan')])]))), ('andersen2022improving', Entry('inproceedings', fields=[ ('title', 'Improving the Search of Learning Classifier Systems Through Interpretable Feature Clustering'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO) Companion'), ('year', '2022'), ('month', '7'), ('day', '9'), ('pages', '1752--1756'), ('publisher', '{ACM}'), ('url', '/files/andersen2022improving.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Andersen, Hayden'), Person('Lensen, Andrew'), Person('Browne, {Will N.}')])]))), ('andersen2022evolving', Entry('inproceedings', fields=[ ('title', 'Evolving Counterfactual Explanations with Particle Swarm Optimization and Differential Evolution'), ('booktitle', 'Proceedings of the {IEEE} Congress on Evolutionary Computation (CEC)'), ('year', '2022'), ('month', '7'), ('day', '18'), ('pages', '1--8'), ('publisher', '{IEEE}'), ('url', '/files/andersen2022evolving.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Andersen, Hayden'), Person('Lensen, Andrew'), Person('Browne, {Will N.}'), Person('Mei, Yi')])]))), ('rodger2022explainable', Entry('article', fields=[ ('title', 'Explainable Artificial Intelligence for Assault Sentence Prediction in New Zealand'), ('journal', 'Journal of the Royal Society of New Zealand'), ('year', '2022'), ('month', '8'), ('pages', '1--15'), ('day', '15'), ('publisher', 'Taylor & Francis'), ('note', 'doi: 10.1080/03036758.2022.2114506'), ('url', '/files/rodger2022explainable.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Rodger, Harry'), Person('Lensen, Andrew'), Person('Betkier, Marcin')])]))), ('stanley2022using', Entry('inproceedings', fields=[ ('title', 'Using Neural Networks to Automate Monitoring of Fish Stocks'), ('booktitle', 'Proceedings of the Symposium Series on Computational Intelligence (SSCI)'), ('year', '2022'), ('month', '12'), ('day', '4'), ('pages', '1--6'), ('publisher', '{IEEE}'), ('url', '/files/stanley2022using.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Stanley, Michael'), Person('Lensen, Andrew'), Person('Zhang, Mengjie')])]))), ('zhang2022speeding', Entry('inproceedings', fields=[ ('title', 'Speeding up Genetic Programming Based Symbolic Regression Using GPUs'), ('booktitle', 'Proceedings of the Pacific Rim International Conference on Artificial Intelligence (PRICAI)'), ('year', '2022'), ('month', '11'), ('day', '10'), ('pages', '1--14'), ('publisher', '{IEEE}'), ('url', '/files/zhang2022speeding.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Zhang, Rui'), Person('Lensen, Andrew'), Person('Sun, Yanan')])]))), ('lensen2019thesis', Entry('phdthesis', fields=[ ('title', 'Evolutionary Feature Manipulation in Unsupervised Learning'), ('year', '2019'), ('month', '9'), ('pages', '268'), ('institution', 'Te Herenga Waka---Victoria University of Wellington'), ('url', '/files/lensen2019thesis.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Lensen, Andrew')])]))), ('mei2022explainable', Entry('article', fields=[ ('title', 'Explainable Artificial Intelligence by Genetic Programming: A Survey'), ('journal', '{IEEE} Transactions on Evolutionary Computation'), ('pages', '1--21'), ('year', '2022'), ('month', '11'), ('day', '25'), ('publisher', 'IEEE'), ('doi', '10.1109/TEVC.2022.3225509'), ('note', 'Early Access'), ('url', '/files/mei2022explainable.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Mei, Yi'), Person('Chen, Qi'), Person('Lensen, Andrew'), Person('Xue, Bing'), Person('Zhang, Mengjie')])]))), ('schofield2023genetic', Entry('inproceedings', fields=[ ('title', 'A Genetic Programming Encoder for Increasing Autoencoder Interpretability'), ('booktitle', 'Proceedings of the European Conference on Genetic Programming (EuroGP)'), ('year', '2023'), ('month', '4'), ('day', '12'), ('series', 'Lecture Notes in Computer Science'), ('publisher', 'Springer'), ('pages', '1--16'), ('note', 'To Appear'), ('url', '/files/schofield2023genetic.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Schofield, Finn'), Person('Lensen, Andrew'), Person('Slyfield, Luis')])]))), ('osullivan2023feature', Entry('article', fields=[ ('title', 'Feature-based Image Matching for Identifying Individual Kākā'), ('year', '2023'), ('note', 'https://doi.org/10.48550/arXiv.2301.06678'), ('eprinttype', 'arXiv'), ('eprint', '2301.06678'), ('journal', 'arXiv'), ('month', '1'), ('day', '17'), ('url', '/files/osullivan2023feature.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person("O'Sullivan, Fintan"), Person('Escott, Kirita{-}Rose'), Person('Shaw, Rachael'), Person('Lensen, Andrew')])]))), ('andersen2023producing', Entry('inproceedings', fields=[ ('title', 'Producing Diverse Rashomon Sets of Counterfactual Explanations with Niching Particle Swarm Optimisation'), ('booktitle', 'Proceedings of the Genetic and Evolutionary Computation Conference (GECCO)'), ('year', '2023'), ('month', '7'), ('day', '15'), ('publisher', '{ACM}'), ('note', 'To Appear.'), ('url', '/files/andersen2023producing.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Andersen, Hayden'), Person('Lensen, Andrew'), Person('Browne, {Will N.}'), Person('Mei, Yi')])]))), ('zeng2023differentiable', Entry('article', fields=[ ('title', 'Differentiable Genetic Programming for High-dimensional Symbolic Regression'), ('year', '2023'), ('note', 'https://doi.org/10.48550/arXiv.2304.08915'), ('eprinttype', 'arXiv'), ('eprint', '2304.08915'), ('journal', 'arXiv'), ('month', '4'), ('day', '18'), ('url', '/files/zeng2023differentiable.pdf')], persons=OrderedCaseInsensitiveDict([('author', [Person('Zeng, Peng'), Person('Song, Xiaotian'), Person('Lensen, Andrew'), Person('Ou, Yuwei'), Person('Sun, Yanan'), Person('Zhang, Mengjie'), Person('Lv, Jiancheng')])])))]), preamble=[])