For those who use uBio for the aforementioned tasks: Global Names Architecture initiative has a slew of fast high quality open source tools to work with scientific names strings. These tools exist as web applications and command line applications: https:/parser.globalnames.org elaborate name-parsing tool, up to 40k names /sec https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fverifier.globalnames.org%2F&data=04%7C01%7Ctaxacom%40lists.ku.edu%7C3f2a31e2aa184e81f16e08da13781200%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637843703694227188%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=2mpj1CUA2XgxOAPs72XZAolPRcKwPIwsz1dI1JV03UQ%3D&reserved=0 name reconciliation/resolution tool including partial matching and fuzzy matching: ~2000 names a second https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Ffinder.globalnames.org%2F&data=04%7C01%7Ctaxacom%40lists.ku.edu%7C3f2a31e2aa184e81f16e08da13781200%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637843703694227188%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=MhJ0Yz6GEmiwI3v8BqGQqcvWxaRK50si2IL0ParOla4%3D&reserved=0 name detection in plain texts, pdfs, word docs etc. I use id for BHL, and we go through 275k volumes of BHL in 2.5 hours with it. More on https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgnames&data=04%7C01%7Ctaxacom%40lists.ku.edu%7C3f2a31e2aa184e81f16e08da13781200%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637843703694227188%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=LdS9T5uIeCmpDOmjrn5EtyqCSJwzB4ZJ7qVcxUevpEY%3D&reserved=0 and https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fglobalnames.org%2F&data=04%7C01%7Ctaxacom%40lists.ku.edu%7C3f2a31e2aa184e81f16e08da13781200%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637843703694227188%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=giVLtyPjdiKbXLPurREXNDXmfF0kFuQeuQ%2FXGRP5mkk%3D&reserved=0