Normalizing strings for comparison, but storing the original source version of the substring that matched or was extracted from the normalized version, useful for search boxes and such. Not sure what their specific use case is, but it's something I've implemented before, so I know it has use cases.
Apparently it's for machine learning where you want to pick out a span/substring in the original text but your model can only accept normalized text (I am guessing for stuff like transforming out-of-vocabulary words into UNK/unknown tokens). This solves that problem by keeping track of the index mapping between the original text and transformed text.
Took me a minute to comprehend (that the substring bit is the whole point was not obvious, because all string operations in Python are non-destructive regardless) but this is exactly what I imagined given that note. Glad that thought lined up with reality
Yeah that's the idea. I'm not sure exactly how to communicate the purpose of the library in a few words. Possibly some animation that shows selecting spans of text and highlighting the corresponding one in the original text.
7 comments
[ 3.4 ms ] story [ 30.9 ms ] threadApparently it's for machine learning where you want to pick out a span/substring in the original text but your model can only accept normalized text (I am guessing for stuff like transforming out-of-vocabulary words into UNK/unknown tokens). This solves that problem by keeping track of the index mapping between the original text and transformed text.
(picking out spans is very common task in NLP, for example see the SQuAD dataset: https://rajpurkar.github.io/SQuAD-explorer/explore/v2.0/dev/...)
The formatted documentation can be viewed here btw: https://bistring.readthedocs.io/en/latest/Introduction.html
The title made me think of Boomerang, this looks like it has rather different use cases in mind.