Skip to content

project-violet/violet-message-search-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Violet Message Search Core

Toolkit for Searching Doujinshi Quotes

If you want to just using just message search engine, see https://github.com/project-violet/violet-message-search-local.

Support

Currently, korean and english are only supported.

If you would like to support your language, please contact me.

This work takes about 3-6 months.

Search Method

All methods are based on fuzzing searches. Even if only a part of the input word or sentence is included, even if there is a typo in the input word, it produces an appropriate search result.

  • /similar/(.*?): Search for quotes similar to the input word or sentence.
  • /contains/(.*?): Searches for quotes that contain the input word or sentence. Search results cannot be shorter than the search target quote.
  • /lcs/(.*?): Search for quotes using the longest common substring algorithm.
  • /wcontains/(<article id>.*?)/(.*?): Contains operation for quotes included in a specific article.

How to use it?

1. Collect Source Data

You must collect source data from ocr of e-hentai articles before message search. Check this miner sub-directory. In do-ocr.py, easyocr lib is used for ocr. To fast processing, consider using cloud gpu instances.

Follow example is the source data of 2282012.

2282012
184
[([[916, 58], [1016, 58], [1016, 88], [916, 88]], 'DOJIN', 0.998740250016743), ([[918, 86], [1016, 86], [1016, 142], [918, 142]], 'R18', 0.47933248562425435), ([[914, 138], [1018, 138], [1018, 164], [914, 164]], '6A@$', 0.04630109295248985), ([[913, 183], [949, 183], [949, 203], [913, 203]], 'BAA', 0.2432820887454194), ([[923, 167], [1023, 167], [1023, 207], [923, 207]], '538 E5G1', 0.008915298320096982), ([[203, 901], [369, 901], [369, 1039], [203, 1039]], 'alll', 0.217879056930542), ([[328, 802], [918, 802], [918, 1068], [328, 1068]], 'ligusa', 0.1794300691674123), ([[308, 1038], [826, 1038], [826, 1117], [308, 1117]], 'Series Capillatio  8 osqucieoutoga', 0.0750655241883355), ([[218.31831801500923, 1055.291290442026], [314.2874646285627, 1046.4275212228624], [316.6816819849908, 1092.708709557974], [220.71253537143727, 1102.5724787771376]], '(Revised)', 0.4975673224589949)]
[([[95, 27], [137, 27], [137, 65], [95, 65]], '2h', 0.1771801386061562), ([[333, 79], [389, 79], [389, 99], [333, 99]], 'URGH!', 0.2645824217379324), ([[822, 90], [888, 90], [888, 118], [822, 118]], 'HOW', 0.7222338118797575), ([[309, 129], [347, 129], [347, 149], [309, 149]], 'HEY;', 0.5559459924697876), ([[808, 116], [898, 116], [898, 142], [808, 142]], 'ABOUT', 0.9996855065858518), ([[311, 147], [349, 147], [349, 165], [311, 165]], 'THA -', 0.7225621876491225), ([[808, 138], [904, 138], [904, 170], [808, 170]], 'THis?!', 0.307473439237722), ([[47, 283], [85, 283], [85, 299], [47, 299]], "AGH'", 0.37658536434173584), ([[515, 521], [589, 521], [589, 541], [515, 541]], 'H-HOLD', 0.9967181469520389), ([[533, 541], [571, 541], [571, 561], [533, 561]], 'UPW', 0.5610532541131021), ([[66, 436], [216, 436], [216, 704], [66, 704]], '8', 0.4972070292929551), ([[846, 740], [938, 740], [938, 768], [846, 768]], 'I WilL', 0.5434953140898533), ([[840, 764], [940, 764], [940, 788], [840, 788]], 'GET HiM', 0.6736001332680619), ([[850, 788], [930, 788], [930, 812], [850, 812]], 'HARDW', 0.8904022751156795), ([[704, 934], [760, 934], [760, 984], [704, 984]], 'Mi', 0.12484646582032942), ([[35, 1153], [75, 1153], [75, 1171], [35, 1171]], 'HYA!', 0.6405167470860389), ([[898, 1316], [937, 1316], [937, 1342], [898, 1342]], 'AH;', 0.4716113950361305), ([[99, 1337], [167, 1337], [167, 1355], [99, 1355]], 'I GOTTA', 0.6009075793627212), ([[888, 1336], [936, 1336], [936, 1360], [888, 1360]], 'ShiT,', 0.3109377829079087), ([[95, 1351], [171, 1351], [171, 1369], [95, 1369]], 'GEt EVEN', 0.44663292186183007), ([[95, 1367], [169, 1367], [169, 1385], [95, 1385]], 'With HER', 0.49055899543444775), ([[91, 1383], [175, 1383], [175, 1399], [91, 1399]], 'SOMEHOW', 0.9435877914154458), ([[109, 1399], [157, 1399], [157, 1415], [109, 1415]], 'HERE?', 0.9009424693394374), ([[751, 1369], [871, 1369], [871, 1479], [751, 1479]], '44', 0.13254914325192793), ([[181.31671842700024, 61.65835921350013], [225.58490566037736, 40.45283018867924], [239.68328157299976, 69.34164078649988], [194.41509433962264, 90.54716981132076]], '(UAHI ', 0.12015226216066589), ([[264.2613725481261, 782.2193529376917], [340.82956281520967, 771.9329177020751], [346.7386274518739, 834.7806470623083], [270.17043718479033, 846.0670822979249]], '(Hu)', 0.5464856624603271), ([[562.2135462705664, 912.034427484457], [670.9958706123084, 979.727397860233], [629.7864537294336, 1043.965572515543], [521.0041293876916, 976.272602139767]], 'te;', 0.06225410637633884)]
[([[150, 724], [220, 724], [220, 750], [150, 750]], 'SO IT', 0.6289079389976258), ([[135, 747], [231, 747], [231, 773], [135, 773]], 'REALLY', 0.9996246156800982), ([[118, 774], [250, 774], [250, 800], [118, 800]], 'WAS ALL A', 0.9226056386386502), ([[128, 798], [224, 798], [224, 824], [128, 824]], 'DREAM', 0.9922178214153053), ([[150, 822], [218, 822], [218, 850], [150, 850]], 'HUH?', 0.6846412420272827), ([[415, 1090], [674, 1090], [674, 1223], [415, 1223]], 'EnD', 0.29891862507857675)]
[([[589, 77], [637, 77], [637, 95], [589, 95]], 'SURE', 0.9997584819793701), ([[591, 93], [629, 93], [629, 111], [591, 111]], 'HAS', 0.9973087197747977), ([[877, 111], [935, 111], [935, 131], [877, 131]], 'LOOK,', 0.9331368942043469), ([[856, 127], [956, 127], [956, 151], [856, 151]], 'KYOU-CHAN', 0.7175011043715573), ([[857, 149], [955, 149], [955, 169], [857, 169]], 'Its SNOW-', 0.4420898778530378), ([[148, 166], [220, 166], [220, 190], [148, 190]], 'tomor-', 0.6316189392616438), ([[889, 169], [921, 169], [921, 189], [889, 189]], 'ING', 0.8669766376762922), ([[139, 185], [229, 185], [229, 205], [139, 205]], 'RoWs THE', 0.5557337431036993), ([[131, 203], [237, 203], [237, 223], [131, 223]], 'BIg DAY , HUH?', 0.530024798640804), ([[143, 221], [227, 221], [227, 239], [143, 239]], 'WHEN YOU', 0.8259290793624279), ([[159, 239], [213, 239], [213, 257], [159, 257]], 'G0 TO', 0.4140500759255523), ([[147, 255], [215, 255], [215, 275], [147, 275]], 'AMERICA', 0.9933383298159743), ([[711, 373], [741, 373], [741, 393], [711, 393]], 'IS', 0.3996602601050564), ([[693, 391], [761, 391], [761, 411], [693, 411]], 'GOTTEN', 0.9991997940690598), ([[701, 409], [749, 409], [749, 429], [701, 429]], 'COLD', 0.8080548644065857), ([[703, 425], [749, 425], [749, 445], [703, 445]], 'Huh?', 0.9365540742874146), ([[700, 572], [838, 572], [838, 602], [700, 602]], 'Ill BE NICE', 0.5998150468404256), ([[720, 598], [818, 598], [818, 624], [720, 624]], 'TO HAVE', 0.9573404633126634), ([[700, 620], [838, 620], [838, 648], [700, 648]], 'KIRINO-CHAN', 0.8630027006126071), ([[700, 646], [840, 646], [840, 674], [700, 674]], 'BACK HOMEI', 0.8677482313899942), ([[899, 1067], [949, 1067], [949, 1085], [899, 1085]], 'THINK', 0.998700633202839), ([[891, 1083], [955, 1083], [955, 1103], [891, 1103]], "YOU'RE", 0.825165475591526), ([[897, 1099], [949, 1099], [949, 1117], [897, 1117]], 'MORE', 0.999764084815979), ([[889, 1115], [957, 1115], [957, 1135], [889, 1135]], 'EXCITED', 0.9992283048381695), ([[895, 1131], [953, 1131], [953, 1151], [895, 1151]], 'ABOUT', 0.9992890011275264), ([[310, 1138], [412, 1138], [412, 1162], [310, 1162]], 'IM ECSTATIC', 0.61074945238356), ([[893, 1147], [957, 1147], [957, 1167], [893, 1167]], 'IT THAN', 0.8117793893124631), ([[73, 1163], [119, 1163], [119, 1183], [73, 1183]], 'JUST', 0.9993084669113159), ([[311, 1157], [411, 1157], [411, 1177], [311, 1177]], 'THAT YOURE', 0.4065855011187109), ([[901, 1165], [945, 1165], [945, 1183], [901, 1183]], 'I AM;', 0.433025961039201), ([[73, 1183], [123, 1183], [123, 1201], [73, 1201]], 'CHILL', 0.7718783911496394), ([[317, 1175], [407, 1175], [407, 1195], [317, 1195]], 'EVEN HERE', 0.9407996882487476), ([[75, 1199], [117, 1199], [117, 1219], [75, 1219]], 'OUT:', 0.7563104033470154), ([[305, 1191], [419, 1191], [419, 1211], [305, 1211]], 'SPENDING THE', 0.6948949917609322), ([[317, 1209], [405, 1209], [405, 1229], [317, 1229]], 'NiGHT WIth', 0.33165029503313975), ([[321, 1227], [399, 1227], [399, 1247], [321, 1247]], 'ME At All;', 0.24475486251200362), ([[731, 1233], [819, 1233], [819, 1249], [731, 1249]], 'SERIOUSLY_', 0.920997324764655), ([[317, 1243], [407, 1243], [407, 1263], [317, 1263]], 'KYOU-CHAN;', 0.5151848172610541), ([[719, 1245], [839, 1245], [839, 1265], [719, 1265]], "YOU'RE ALWAYS", 0.9176762267530786), ([[717, 1261], [839, 1261], [839, 1281], [717, 1281]], 'MORE WORRIED', 0.7903954352458613), ([[723, 1275], [835, 1275], [835, 1295], [723, 1295]], 'ABOUT OTHER', 0.9822931865134951), ([[741, 1295], [815, 1295], [815, 1311], [741, 1311]], "PEOPLE'S", 0.9978980220167338), ([[729, 1309], [827, 1309], [827, 1327], [729, 1327]], 'BUSINESSES', 0.9999308617860874), ([[735, 1323], [823, 1323], [823, 1343], [735, 1343]], 'THAN EVEN', 0.9973055642285653), ([[731, 1341], [825, 1341], [825, 1357], [731, 1357]], 'THEY THEM-', 0.7541655904938577), ([[729, 1355], [823, 1355], [823, 1373], [729, 1373]], 'SELVES ARE', 0.9762392889067717), ([[738, 1370], [783, 1370], [783, 1390], [738, 1390]], 'WHAT', 0.9984311461448669), ([[787, 1373], [819, 1373], [819, 1387], [787, 1387]], 'ARE', 0.9995869895103334), ([[749, 1387], [807, 1387], [807, 1403], [749, 1403]], 'YOU? A', 0.9326557888498012), ([[751, 1403], [807, 1403], [807, 1419], [751, 1419]], 'SAINT?', 0.9983127361237379), ([[981, 1437], [1003, 1437], [1003, 1453], [981, 1453]], '97', 0.947794707724631)]
[([[178, 60], [261, 60], [261, 113], [178, 113]], '07', 0.19612714730852396), ([[977, 189], [1019, 189], [1019, 203], [977, 203]], "WE'VE", 0.8541661858003754), ([[979, 199], [1017, 199], [1017, 215], [979, 215]], 'BEEN', 0.9992900141407915), ([[971, 213], [1025, 213], [1025, 227], [971, 227]], 'FRiENDS', 0.6850694977495023), ([[967, 225], [1029, 225], [1029, 239], [967, 239]], 'SINCE WE', 0.9925336773792324), ([[961, 239], [1031, 239], [1031, 253], [961, 253]], 'WERE Kids', 0.8792938921603629), ([[963, 251], [997, 251], [997, 265], [963, 265]], "DON'", 0.9794792532920837), ([[1005, 251], [1033, 251], [1033, 265], [1005, 265]], 'TRY', 0.9982992401031888), ([[969, 263], [1027, 263], [1027, 277], [969, 277]], 'AND HIdE', 0.2835430810847031), ([[959, 275], [1035, 275], [1035, 289], [959, 289]], 'IT FROM ME,', 0.5066334474027858), ([[971, 287], [1035, 287], [1035, 303], [971, 303]], 'CAN TELL', 0.8528749599116918), ([[955, 299], [1035, 299], [1035, 315], [955, 315]], 'WHEN SOME', 0.9835687002537459), ([[973, 313], [1025, 313], [1025, 327], [973, 327]], "THING'S", 0.9268682399152953), ([[891, 323], [949, 323], [949, 339], [891, 339]], "THERE'S", 0.9957560208993628), ([[967, 325], [1029, 325], [1029, 339], [967, 339]], 'OFF With', 0.5789156160073846), ([[884, 336], [955, 336], [955, 353], [884, 353]], 'ANYTHING', 0.9991192865084113), ([[981, 339], [1013, 339], [1013, 351], [981, 351]], 'YOU;', 0.3370426297187805), ([[385, 349], [429, 349], [429, 365], [385, 365]], 'WELL _', 0.8774575095001782), ([[885, 351], [955, 351], [955, 365], [885, 365]], 'YOU NEED', 0.9859541601002418), ([[373, 363], [449, 363], [449, 383], [373, 383]], 'THERE IS', 0.6973383110654519), ([[885, 363], [953, 363], [953, 379], [885, 379]], 'ME To DO', 0.3812021439452931), ([[883, 377], [955, 377], [955, 391], [883, 391]], 'JUST TELL', 0.9869176987826622), ([[367, 381], [449, 381], [449, 399], [367, 399]], 'ONE THING;', 0.5397469987851745), ([[891, 391], [915, 391], [915, 405], [891, 405]], 'ME_', 0.9308594717226423), ([[919, 391], [949, 391], [949, 405], [919, 405]], "I'LL", 0.7510882956522018), ([[355, 397], [465, 397], [465, 415], [355, 415]], 'CAN WE SLEEP', 0.9231365604593831), ([[899, 403], [939, 403], [939, 419], [899, 419]], 'DO iT:', 0.2946919119144343), ([[361, 413], [457, 413], [457, 433], [361, 433]], 'TOGETHER?', 0.9764299771718015), ([[371, 431], [449, 431], [449, 451], [371, 451]], 'JUST FOQ', 0.7670194236002761), ([[367, 443], [450, 443], [450, 469], [367, 469]], 'ToniGHT?', 0.3726763793386982), ([[959, 515], [1015, 515], [1015, 531], [959, 531]], "C'MERE_", 0.863110849121565), ([[236, 566], [286, 566], [286, 594], [236, 594]], 'Yay!', 0.6762074828147888), ([[1011, 821], [1037, 821], [1037, 833], [1011, 833]], 'Wiv', 0.45946781380606444), ([[909, 831], [961, 831], [961, 851], [909, 851]], 'Ehehe,', 0.23657130980058727), ([[534, 1201], [660, 1201], [660, 1246], [534, 1246]], 'JD~_', 0.06099150329828262), ([[73, 1417], [95, 1417], [95, 1435], [73, 1435]], '98', 0.9999998314126102), ([[540.120938695087, 26.055415691187505], [660.8188949124501, 56.418016380311585], [642.879061304913, 118.9445843088125], [522.1811050875499, 88.58198361968842]], '80', 0.4172123950359721), ([[577.1423139959815, 127.05274336744995], [692.8888891221156, 162.757741305848], [672.8576860040185, 221.94725663255005], [557.1111108778844, 187.242258694152]], '8) ', 0.40848723861419983), ([[908.1484039973755, 1060.0363267692926], [1022.9869720641811, 1124.4897167558447], [980.8515960026245, 1196.9636732307074], [866.0130279358189, 1132.5102832441553]], 'Rr', 0.08366168143714428)]
[([[246, 72], [316, 72], [316, 100], [246, 100]], 'MBHU _', 0.9332462147420373), ([[244, 100], [316, 100], [316, 130], [244, 130]], 'OUUH _', 0.28671018621073097), ([[378, 100], [448, 100], [448, 124], [378, 124]], 'UWaah_', 0.45411083810189595), ([[396, 120], [460, 120], [460, 144], [396, 144]], 'Waahi', 0.3843899854652582), ([[492, 138], [540, 138], [540, 162], [492, 162]], 'HIC_', 0.7406677254150079), ([[482, 160], [552, 160], [552, 186], [482, 186]], 'Mhuu_=', 0.2888973732024137), ([[859, 329], [899, 329], [899, 349], [859, 349]], 'MHF', 0.9933494700666287), ([[744, 788], [780, 788], [780, 812], [744, 812]], 'HIC.', 0.739603579044342), ([[836, 790], [892, 790], [892, 814], [836, 814]], 'KYOu__', 0.4673482737742058), ([[407, 823], [441, 823], [441, 839], [407, 839]], 'MA-', 0.9991190854028916), ([[732, 810], [802, 810], [802, 834], [732, 834]], 'BHUUUl', 0.4792306682857508), ([[824, 810], [898, 810], [898, 834], [824, 834]], 'CHAAAN', 0.9444126717458381), ([[397, 839], [451, 839], [451, 855], [397, 855]], 'NAML', 0.4932680130004883), ([[880, 904], [948, 904], [948, 928], [880, 928]], 'MHOUU_', 0.6384006563281697), ([[378, 1096], [476, 1096], [476, 1122], [378, 1122]], 'TM Sorry.', 0.5315452680986312), ([[378, 1116], [486, 1116], [486, 1142], [378, 1142]], 'Im alright', 0.5403109162861172), ([[407, 1139], [455, 1139], [455, 1159], [407, 1159]], 'NOW.', 0.3826028108596802), ([[275, 1247], [327, 1247], [327, 1267], [275, 1267]], "IT'S MY", 0.3475085253538782), ([[281, 1269], [323, 1269], [323, 1285], [281, 1285]], 'FAULT', 0.3489818327381017), ([[283, 1285], [319, 1285], [319, 1303], [283, 1303]], 'THAT', 0.945488452911377), ([[284, 1302], [318, 1302], [318, 1326], [284, 1326]], 'SHE', 0.3410792238454641), ([[279, 1323], [313, 1323], [313, 1343], [279, 1343]], 'WAS:', 0.6564600467681885), ([[971, 1445], [993, 1445], [993, 1463], [971, 1463]], '99', 0.9999797695726516), ([[732.2612831448469, 299.0273224554329], [835.9281004718265, 383.80299497857413], [778.7387168551531, 453.9726775445671], [675.0718995281735, 369.19700502142587]], 'Mo', 0.0915595075542346), ([[241.42572556013445, 1022.0275458253983], [290.204479356545, 1013.1221407400604], [311.5742744398655, 1137.9724541746016], [262.795520643455, 1146.8778592599394]], '3', 0.7956095924485318), ([[683.9234480567936, 1023.0646188713868], [801.3221028862724, 1045.5732517527113], [783.0765519432064, 1123.9353811286132], [665.6778971137276, 1101.4267482472887]], 'xL', 0.11676154960543808)]
[([[969, 287], [1021, 287], [1021, 307], [969, 307]], 'FUCK!', 0.6424863644421962), ([[724, 596], [798, 596], [798, 620], [724, 620]], 'K-KYOU-', 0.36431360573890287), ([[730, 616], [796, 616], [796, 640], [730, 640]], 'CHAN?!', 0.9920694942763537), ([[835, 711], [907, 711], [907, 731], [835, 731]], 'WHAT THE', 0.8878617473684048), ([[831, 731], [911, 731], [911, 751], [831, 751]], 'HELL AMI', 0.8345221398666325), ([[835, 751], [907, 751], [907, 771], [835, 771]], 'DOING_.?1', 0.19359662892243482), ([[971, 757], [1035, 757], [1035, 777], [971, 777]], 'SORRY!', 0.6075828176609819), ([[202, 736], [318, 736], [318, 834], [202, 834]], '€', 0.4212650479334492), ([[823, 769], [919, 769], [919, 813], [823, 813]], 'AFAEPEnEDT', 0.05632195364646753), ([[839, 811], [903, 811], [903, 831], [839, 831]], 'To HER_.', 0.3312986180942082), ([[589, 887], [619, 887], [619, 905], [589, 905]], 'MM', 0.983172412211016), ([[815, 909], [861, 909], [861, 929], [815, 929]], 'U-UM', 0.5898986259763762), ([[69, 1019], [101, 1019], [101, 1039], [69, 1039]], '100', 0.9721775234366287), ([[811, 1113], [835, 1113], [835, 1131], [811, 1131]], 'Im', 0.26828535282247234), ([[811, 1129], [837, 1129], [837, 1147], [811, 1147]], 'THE', 0.48887472105178337), ([[799, 1149], [843, 1149], [843, 1165], [799, 1165]], 'WORST', 0.662201384395748), ([[110, 1198], [194, 1198], [194, 1222], [110, 1222]], 'IF MANAMI', 0.8918512322214142), ([[109, 1221], [193, 1221], [193, 1241], [109, 1241]], 'DOES THAT', 0.869529517827772), ([[126, 1240], [178, 1240], [178, 1264], [126, 1264]], 'To ME', 0.7993923785715509), ([[655, 1235], [681, 1235], [681, 1255], [655, 1255]], 'OH', 0.9738900212145812), ([[108, 1262], [196, 1262], [196, 1286], [108, 1286]], 'RIGHT NOW', 0.4608185314295662), ([[638, 1256], [696, 1256], [696, 1282], [638, 1282]], 'CRAR_', 0.4245006414066881), ([[121, 1285], [183, 1285], [183, 1305], [121, 1305]], 'I WoNt', 0.4158001050185478), ([[107, 1307], [197, 1307], [197, 1327], [107, 1327]], 'BE ABLE To', 0.8554217983826937), ([[112, 1326], [192, 1326], [192, 1350], [112, 1350]], 'KEEP IT IN', 0.6022088348887054), ([[104, 1348], [200, 1348], [200, 1372], [104, 1372]], 'MY PANTS_!', 0.7855687646872531), ([[301, 1321], [361, 1321], [361, 1383], [301, 1383]], 'Ka', 0.2915282807934394), ([[906.3500052999841, 604.7600084799745], [972.4655435812589, 587.3958346754907], [981.6499947000159, 629.2399915200255], [915.5344564187411, 646.6041653245093]], 'Fhe', 0.19688979857718084)]
[([[62, 26], [183, 26], [183, 77], [62, 77]], 'Allh', 0.19687597453594208), ([[828, 138], [880, 138], [880, 162], [828, 162]], 'FHM', 0.9974510697230438), ([[826, 162], [888, 162], [888, 186], [826, 186]], 'MMNN:', 0.536334283090341), ([[890, 514], [942, 514], [942, 566], [890, 566]], '42', 0.5198940234969769), ([[971, 745], [1001, 745], [1001, 765], [971, 765]], '101', 0.9999664132240463), ([[591, 750], [845, 750], [845, 836], [591, 836]], 'ST', 0.1718564692467021), ([[57, 1119], [97, 1119], [97, 1135], [57, 1135]], 'HOw', 0.8264981860619556), ([[43, 1131], [111, 1131], [111, 1149], [43, 1149]], 'ARE YOU', 0.9852187317794686), ([[41, 1149], [105, 1149], [105, 1165], [41, 1165]], 'DOING :', 0.8423346022737603), ([[64, 1436], [96, 1436], [96, 1466], [64, 1466]], '0Q', 0.8813151870769214), ([[218.34173543490184, 146.2442560653724], [290.3777905727731, 118.04111596763093], [308.65826456509814, 168.7557439346276], [236.62220942722686, 196.95888403236907]], 'HHah }', 0.07150662733778398), ([[80.80216145908086, 492.14560170259085], [113.62470141959679, 518.0994377727684], [64.19783854091914, 578.8543982974091], [31.375298580403204, 551.9005622272316]], '1', 0.8426925611815115), ([[900.1758366163078, 775.1154281570775], [965.8829177503253, 785.1700691324821], [960.8241633836922, 815.8845718429225], [894.1170822496747, 805.8299308675179]], 'Li?', 0.2237525955391014), ([[493.9563638994289, 831.1385464278869], [548.713906763541, 840.5144372945836], [542.0436361005711, 875.8614535721131], [486.28609323645895, 865.4855627054164]], 'NL', 0.15846056316593715)]
[([[491, 85], [553, 85], [553, 105], [491, 105]], 'WHAT I', 0.5258828483368513), ([[472, 100], [570, 100], [570, 124], [472, 124]], 'MEANT WAS_', 0.5118848086040814), ([[794, 76], [862, 76], [862, 132], [794, 132]], 'Pt', 0.3683212424197229), ([[949, 101], [991, 101], [991, 119], [949, 119]], 'HMM', 0.9748671043574041), ([[485, 119], [557, 119], [557, 139], [485, 139]], 'YOURE 4', 0.723009790134998), ([[932, 116], [1014, 116], [1014, 140], [932, 140]], 'WELL, ITS', 0.5239143096855706), ([[483, 137], [521, 137], [521, 157], [483, 157]], 'BOY,', 0.7931368947029114), ([[883, 131], [929, 131], [929, 151], [883, 151]], 'EHE-', 0.289328396320343), ([[937, 137], [1007, 137], [1007, 155], [937, 155]], '4 LITTLE', 0.4759500665416382), ([[479, 153], [557, 153], [557, 173], [479, 173]], 'Tm 4 Girl;', 0.4330114920979091), ([[887, 151], [923, 151], [923, 171], [887, 171]], 'HE_', 0.8615919262133462), ([[941, 155], [999, 155], [999, 173], [941, 173]], 'EMBAR', 0.8946856224975079), ([[387, 163], [415, 163], [415, 181], [387, 181]], 'OH.', 0.4822128061048303), ([[379, 177], [433, 177], [433, 197], [379, 197]], 'RIGht;', 0.32902390223400724), ([[473, 171], [569, 171], [569, 191], [473, 191]], 'YOU KNOW?', 0.9345734315321457), ([[933, 168], [1010, 168], [1010, 194], [933, 194]], "RaSSING'", 0.3171190390342858), ([[318, 314], [360, 314], [360, 340], [318, 340]], 'Nh-', 0.5496604578477785), ([[312, 338], [366, 338], [366, 364], [312, 364]], 'AH?!', 0.512760579586029), ([[109, 385], [181, 385], [181, 401], [109, 401]], "YEAH; IT'S", 0.7132633504464683), ([[117, 399], [173, 399], [173, 415], [117, 415]], 'REALLY', 0.9997544682672818), ([[109, 413], [179, 413], [179, 429], [109, 429]], 'STARTING', 0.9997404036023279), ([[115, 427], [175, 427], [175, 445], [115, 445]], 'TO SINK', 0.7371580456358544), ([[111, 443], [173, 443], [173, 457], [111, 457]], 'IN NOw:=', 0.19718352159318472), ([[572, 558], [604, 558], [604, 610], [572, 610]], 'Up', 0.13558539654324628), ([[558, 606], [584, 606], [584, 642], [558, 642]], "'6", 0.22785353834498903), ([[529, 637], [569, 637], [569, 685], [529, 685]], 'T', 0.16068526050561616), ([[120, 808], [176, 808], [176, 884], [120, 884]], '2"', 0.046609159156977574), ([[481, 937], [567, 937], [567, 957], [481, 957]], 'JUST HOW', 0.8048351852723691), ([[479, 955], [571, 955], [571, 971], [479, 971]], 'IMPORTANT', 0.9926434395385608), ([[487, 969], [563, 969], [563, 989], [487, 989]], 'YOU ARE', 0.9390071629116074), ([[495, 985], [551, 985], [551, 1005], [495, 1005]], 'TO ME,', 0.2715412432673754), ([[491, 1001], [561, 1001], [561, 1021], [491, 1021]], 'I MEAN!', 0.5116756697268384), ([[386, 1007], [426, 1007], [426, 1126], [386, 1126]], '4', 0.09782062303781291), ([[582, 1172], [618, 1172], [618, 1196], [582, 1196]], 'HA-', 0.8164127473976349), ([[723, 1187], [791, 1187], [791, 1205], [723, 1205]], 'I MEAN;', 0.8055246794986088), ([[580, 1194], [622, 1194], [622, 1218], [580, 1218]], 'HNll', 0.3219252824783325), ([[723, 1203], [789, 1203], [789, 1221], [723, 1221]], 'YEAH; I', 0.9496700312321583), ([[715, 1219], [797, 1219], [797, 1239], [715, 1239]], 'GUESS IT', 0.8214367767214356), ([[711, 1235], [799, 1235], [799, 1255], [711, 1255]], 'WOULD BE_', 0.7090748105931908), ([[707, 1253], [807, 1253], [807, 1271], [707, 1271]], "WE'VE BEEN", 0.9965438898985028), ([[709, 1269], [803, 1269], [803, 1289], [709, 1289]], 'TOGETHER', 0.996521262049761), ([[530, 1276], [598, 1276], [598, 1302], [530, 1302]], 'KYou-', 0.5932282366504107), ([[715, 1285], [799, 1285], [799, 1305], [715, 1305]], 'SINCE WE', 0.7586353928670699), ([[532, 1298], [598, 1298], [598, 1324], [532, 1324]], 'Chani', 0.21028058292492163), ([[701, 1303], [811, 1303], [811, 1323], [701, 1323]], 'WERE LITTLE', 0.7742884264021651), ([[733, 1319], [779, 1319], [779, 1339], [733, 1339]], 'KIDS.', 0.9054516736020268), ([[487, 1359], [519, 1359], [519, 1379], [487, 1379]], 'HA-', 0.5518264530202841), ([[484, 1376], [524, 1376], [524, 1400], [484, 1400]], 'HhW', 0.7629489618808672), ([[55, 1431], [87, 1431], [87, 1451], [55, 1451]], '102', 0.9305505156517029), ([[522.7805784783006, 138.4147520217908], [558.6805932964485, 134.9157462603558], [560.2194215216994, 154.5852479782092], [524.3194067035515, 157.0842537396442]], 'AND', 0.8738723863474683), ([[987.5571443132419, 242.03286689872093], [1012.386365742932, 237.02498377942428], [1027.442855686758, 314.9671331012791], [1002.613634257068, 319.97501622057575]], '#', 0.7748786383890547), ([[842.3941368172834, 559.2188925422204], [935.9548058912412, 551.6162301230548], [937.6058631827166, 606.7811074577796], [844.0451941087588, 614.3837698769452]], '[Bz', 0.7953879300666611), ([[185.78354252596847, 1380.093026418795], [241.6589106299301, 1352.027181377846], [290.21645747403153, 1460.906973581205], [234.3410893700699, 1488.972818622154]], '2', 0.7634782809942955)]
[([[27, 35], [195, 35], [195, 125], [27, 125]], '(h?"(', 0.1829900024813744), ([[193, 71], [277, 71], [277, 109], [193, 109]], 'YOGABURE', 0.2934939919346171), ([[181, 101], [283, 101], [283, 121], [181, 121]], "YOU'RE OKAY", 0.9174456342096462), ([[286, 68], [360, 68], [360, 146], [286, 146]], '1', 0.10124078491809829), ([[193, 119], [271, 119], [271, 137], [193, 137]], 'With ThiS', 0.35496693841218646), ([[88, 112], [186, 112], [186, 164], [88, 164]], 'C1?|', 0.13970497250556946), ([[197, 133], [271, 133], [271, 151], [197, 151]], 'MANAMI?', 0.9277029538564929), ([[872, 166], [926, 166], [926, 190], [872, 190]], 'THAT.', 0.2789639891598278), ([[250, 192], [288, 192], [288, 220], [250, 220]], '(ah', 0.9175638178767191), ([[815, 205], [871, 205], [871, 225], [815, 225]], 'MAKES', 0.9972260945637074), ([[20, 226], [62, 226], [62, 252], [20, 252]], '(Haa', 0.9943111538887024), ([[815, 223], [871, 223], [871, 243], [815, 243]], 'ME SO', 0.8372773875048272), ([[811, 241], [865, 241], [865, 261], [811, 261]], 'HAppY .', 0.1622449024783697), ([[815, 259], [869, 259], [869, 279], [815, 279]], 'KYOU', 0.9077465534210205), ([[813, 277], [859, 277], [859, 297], [813, 297]], 'CHAN;', 0.5643577417085338), ([[357, 287], [395, 287], [395, 351], [357, 351]], '44', 0.2143361071945772), ([[208, 396], [252, 396], [252, 426], [208, 426]], '@ooo', 0.21665780246257782), ([[58, 424], [98, 424], [98, 448], [58, 448]], 'YES_', 0.6295726594190214), ([[67, 445], [97, 445], [97, 465], [67, 465]], 'G0', 0.46850012294870963), ([[46, 462], [108, 462], [108, 486], [46, 486]], 'AHEad.', 0.09911416212884727), ([[82, 592], [132, 592], [132, 616], [82, 616]], 'FHA-', 0.9231388568878174), ([[86, 614], [130, 614], [130, 638], [86, 638]], 'Uhil', 0.2217779904603958), ([[634, 633], [717, 633], [717, 671], [634, 671]], '2825', 0.22703547775745392), ([[48, 690], [90, 690], [90, 714], [48, 714]], 'NHA', 0.5937940441599592), ([[973, 691], [1005, 691], [1005, 711], [973, 711]], '103', 0.9999972469798912), ([[52, 710], [94, 710], [94, 736], [52, 736]], 'AAlL', 0.14547768235206604)]
[([[104, 70], [150, 70], [150, 94], [104, 94]], 'NGh', 0.7365209648505061), ([[651, 69], [707, 69], [707, 89], [651, 89]], 'HyaAh;', 0.11190946441684832), ([[110, 92], [150, 92], [150, 116], [110, 116]], 'KH', 0.809721746822807), ([[655, 87], [717, 87], [717, 107], [655, 107]], 'BE_ BE', 0.6440195165729045), ([[642, 103], [728, 103], [728, 123], [642, 123]], 'GENTLEr_', 0.6305434543339425), ([[965, 109], [1027, 109], [1027, 129], [965, 129]], 'YourE', 0.4670098348419188), ([[641, 123], [725, 123], [725, 139], [641, 139]], 'GENTLER_=', 0.7012198211374323), ([[967, 125], [1023, 125], [1023, 145], [967, 145]], 'INSIDE', 0.9944597999441734), ([[771, 141], [805, 141], [805, 157], [771, 157]], 'ToO', 0.4287736696951058), ([[981, 143], [1009, 143], [1009, 163], [981, 163]], 'ME', 0.9656754193957893), ([[767, 155], [815, 155], [815, 171], [767, 171]], 'ROUGH', 0.7442581313934843), ([[969, 159], [1017, 159], [1017, 179], [969, 179]], 'KYOU', 0.33111459016799927), ([[961, 175], [1031, 175], [1031, 195], [961, 195]], 'Chaaani', 0.5269790205119723), ([[373, 314], [421, 314], [421, 443], [373, 443]], '#', 0.02537984168558083), ([[304, 772], [377, 772], [377, 917], [304, 917]], '4', 0.0421372808015994), ([[381, 833], [461, 833], [461, 875], [381, 875]], 'unfAFIIAR', 0.0699349601432566), ([[748, 844], [822, 844], [822, 868], [748, 868]], 'MANAMIS', 0.9806484015279201), ([[395, 871], [447, 871], [447, 891], [395, 891]], 'MOANS', 0.9944397017664083), ([[744, 864], [826, 864], [826, 888], [744, 888]], 'BEAutIFUL,', 0.40545449751856366), ([[389, 889], [455, 889], [455, 909], [389, 909]], 'ESCAPING', 0.9679038135818795), ([[742, 884], [828, 884], [828, 908], [742, 908]], 'PALE Skin__', 0.5418718563482577), ([[383, 907], [461, 907], [461, 927], [383, 927]], 'Out Of HeR', 0.2843543180931754), ([[769, 907], [801, 907], [801, 927], [769, 927]], 'HER', 0.89439502337469), ([[389, 927], [451, 927], [451, 947], [389, 947]], 'TinY Lips', 0.3865364841867643), ([[749, 927], [815, 927], [815, 947], [749, 947]], 'WARMTH', 0.6827932740986812), ([[69, 967], [99, 967], [99, 987], [69, 987]], '104', 0.6142688393592834), ([[211, 909], [389, 909], [389, 1043], [211, 1043]], 'La', 0.4178292996333223), ([[373, 941], [471, 941], [471, 985], [373, 985]], 'USNuGhvoCe', 0.11275275887201582), ([[887, 889], [1025, 889], [1025, 1025], [887, 1025]], '33', 0.08007686692936061), ([[378, 978], [456, 978], [456, 1002], [378, 1002]], 'RECOGNIZE', 0.9874765155093264), ([[475, 1051], [535, 1051], [535, 1071], [475, 1071]], 'AND THE', 0.37143712604172535), ([[467, 1069], [543, 1069], [543, 1089], [467, 1089]], 'SENSATION', 0.9954822259248393), ([[483, 1089], [527, 1089], [527, 1107], [483, 1107]], 'OF MY', 0.7605109637232167), ([[112, 1102], [162, 1102], [162, 1158], [112, 1158]], 'Ko', 0.1966337250553078), ([[463, 1105], [545, 1105], [545, 1149], [463, 1149]], 'CHrEhoG?', 0.05530964104473432), ([[829, 1039], [985, 1039], [985, 1173], [829, 1173]], 'z', 0.13990474567170086), ([[459, 1145], [549, 1145], [549, 1165], [459, 1165]], 'FLESH ON MY', 0.7572510913767224), ([[462, 1162], [546, 1162], [546, 1186], [462, 1186]], 'OWN LOWER', 0.5439707159705417), ([[479, 1183], [527, 1183], [527, 1203], [479, 1203]], 'Bopx _', 0.22382813557981301), ([[476.21553545944727, 53.07767729723632], [540.9597979746446, 76.43431457505076], [527.7844645405528, 110.92232270276368], [463.0402020253553, 87.56568542494924]], 'NGhy} ', 0.12282786571944765), ([[419.54230423844285, 154.27961296691], [471.14800041886014, 137.90569959161138], [479.45769576155715, 164.72038703309], [426.85199958113986, 181.09430040838862]], 'IMFHI', 0.2681605910449915), ([[359.5939452479464, 188.02066342987493], [394.734935350064, 184.06809587715745], [408.4060547520536, 293.97933657012504], [373.265064649936, 298.9319041228425]], 'E', 0.11831532040731929), ([[62.33854850573948, 798.0199051952753], [144.5556349186104, 776.1105555697271], [194.66145149426052, 985.9800948047247], [111.44436508138959, 1007.8894444302729]], '0', 0.12506872560174997), ([[640.2736737481338, 949.0441247346969], [763.9890109797872, 991.6370296375886], [743.7263262518662, 1042.9558752653031], [620.0109890202128, 1000.3629703624114]], '4A', 0.21195801303883746), ([[873.7180652167642, 1141.382389128616], [964.8795487530426, 1121.981035568299], [975.2819347832358, 1183.617610871384], [885.1204512469574, 1204.018964431701]], 'Iswh=', 0.12246113152990981), ([[452.62210709620047, 1263.160358645802], [492.6920997883031, 1297.102633403899], [434.37789290379953, 1363.839641354198], [394.3079002116969, 1329.897366596101]], '2', 0.9927247056595867)]
[([[847, 69], [911, 69], [911, 89], [847, 89]], 'GRKH!', 0.7565060368140393), ([[502, 90], [584, 90], [584, 114], [502, 114]], 'You CAN', 0.45300580729522105), ([[833, 89], [923, 89], [923, 109], [833, 109]], 'Im CUM-', 0.4986246376464827), ([[487, 111], [589, 111], [589, 131], [487, 131]], 'Cum InSiDE;', 0.10414210491407579), ([[850, 106], [910, 106], [910, 130], [850, 130]], "MING'", 0.3458208416490759), ([[478, 130], [530, 130], [530, 154], [478, 154]], 'NO,I', 0.838346540927887), ([[541, 131], [607, 131], [607, 151], [541, 151]], 'I Want', 0.7051343125436362), ([[498, 148], [586, 148], [586, 172], [498, 172]], 'It INSIDEI', 0.41061413075985004), ([[112, 450], [146, 450], [146, 474], [112, 474]], 'IN-', 0.9034438198684298), ([[572, 408], [654, 408], [654, 480], [572, 480]], 'Mal', 0.11846251615712243), ([[106, 472], [152, 472], [152, 496], [106, 496]], 'Sili-', 0.3641687424805739), ([[102, 494], [154, 494], [154, 518], [102, 518]], 'IDEI', 0.3816986680030823), ([[49, 539], [93, 539], [93, 559], [49, 559]], 'MA-', 0.9967564084858042), ([[822, 518], [852, 518], [852, 554], [822, 554]], '2', 0.6684597404266448), ([[50, 558], [92, 558], [92, 582], [50, 582]], 'NA-', 0.9988609558426242), ([[499, 557], [577, 557], [577, 577], [499, 577]], 'All THESE', 0.5207375230934939), ([[52, 578], [92, 578], [92, 602], [52, 602]], 'Mi!', 0.30492489499444747), ([[513, 577], [565, 577], [565, 593], [513, 593]], 'THINGS', 0.9981096157299809), ([[499, 593], [575, 593], [575, 609], [499, 609]], 'COMBINED', 0.9991892956687097), ([[239, 599], [281, 599], [281, 619], [239, 619]], 'AHN!', 0.11250069737434387), ([[493, 609], [583, 609], [583, 625], [493, 625]], 'INTO 4 TDAL', 0.6891576295162629), ([[503, 625], [571, 625], [571, 641], [503, 641]], 'WAVE OF', 0.7926638361259348), ([[497, 639], [573, 639], [573, 657], [497, 657]], 'PLEASURE,', 0.7670131478503897), ([[108, 656], [170, 656], [170, 680], [108, 680]], 'YOURE', 0.728277833082491), ([[501, 657], [577, 657], [577, 673], [501, 673]], 'ONE THAT', 0.9317635148435908), ([[101, 675], [177, 675], [177, 695], [101, 695]], "CumminG'", 0.222572667224939), ([[205, 677], [249, 677], [249, 697], [205, 697]], 'HIEE,', 0.6770665045046228), ([[485, 671], [587, 671], [587, 689], [485, 689]], 'EasiLy SWEPT', 0.46493071019301646), ([[103, 693], [167, 693], [167, 713], [103, 713]], 'GIVvE ME', 0.35684345144780144), ([[503, 687], [571, 687], [571, 705], [503, 705]], 'ASIDE MY', 0.8496150479887569), ([[200, 696], [256, 696], [256, 720], [200, 720]], 'HaGh:', 0.1324955493461851), ([[483, 703], [589, 703], [589, 721], [483, 721]], 'RATional Mind', 0.36677983310195905), ([[109, 711], [167, 711], [167, 729], [109, 729]], 'All OF', 0.7546894432103326), ([[216, 716], [248, 716], [248, 740], [216, 740]], 'AH', 0.8724314795005829), ([[121, 729], [155, 729], [155, 747], [121, 747]], 'I_', 0.4939849919301869), ([[45, 739], [97, 739], [97, 753], [45, 753]], 'G1E ME_', 0.32540923548626316), ([[55, 753], [91, 753], [91, 767], [55, 767]], 'YOUr', 0.30832576751708984), ([[51, 767], [91, 767], [91, 781], [51, 781]], 'EVERY', 0.6907539127546204), ([[51, 781], [89, 781], [89, 795], [51, 795]], 'THinG', 0.2628996437391727), ([[53, 795], [91, 795], [91, 809], [53, 809]], 'KYOU-', 0.699841392960968), ([[49, 807], [91, 807], [91, 823], [49, 823]], 'CHAN_', 0.5903712681261368), ([[647, 1007], [683, 1007], [683, 1065], [647, 1065]], '4"', 0.8363924336627525), ([[616, 1056], [648, 1056], [648, 1108], [616, 1108]], '4', 0.10628189097366203), ([[479, 1155], [541, 1155], [541, 1173], [479, 1173]], 'UH-Huh_', 0.7109456353214307), ([[553, 1139], [597, 1139], [597, 1177], [553, 1177]], 'Ha', 0.9587480393143817), ([[44, 1084], [252, 1084], [252, 1278], [44, 1278]], '7^', 0.2173009592495324), ([[477, 1169], [551, 1169], [551, 1211], [477, 1211]], 'TGDo25', 0.09000895305975955), ([[565, 1169], [605, 1169], [605, 1209], [565, 1209]], '0h', 0.4803803596298778), ([[682, 1166], [742, 1166], [742, 1216], [682, 1216]], 'Goo5f', 0.10936119130920537), ([[469, 1205], [557, 1205], [557, 1225], [469, 1225]], 'INCrEDiBLY', 0.287785684301861), ([[485, 1223], [539, 1223], [539, 1241], [485, 1241]], 'GOOD', 0.994026243686676), ([[76, 1348], [132, 1348], [132, 1372], [76, 1372]], 'UWah', 0.6708274483680725), ([[401, 1377], [457, 1377], [457, 1397], [401, 1397]], 'YEAH;-', 0.31000328239174324), ([[421, 1397], [453, 1397], [453, 1415], [421, 1415]], 'Im', 0.8979715375211951), ([[411, 1411], [461, 1411], [461, 1431], [411, 1431]], 'GLAD:', 0.6128695281161918), ([[971, 1439], [1003, 1439], [1003, 1459], [971, 1459]], '105', 0.999996902852449), ([[881.2150280828492, 224.03085665218498], [953.208256525978, 208.24686701026405], [985.7849719171508, 370.969143347815], [912.791743474022, 386.75313298973595]], '7', 0.45152543030498293), ([[783.502481404895, 564.02481404895], [820.0414599018391, 560.1096665478864], [830.497518595105, 673.97518595105], [794.9585400981609, 677.8903334521136]], '1', 0.19029269006356575), ([[882.4497265149013, 664.038030907289], [915.4369302074754, 654.0239351119737], [940.5502734850987, 743.961969092711], [907.5630697925246, 752.9760648880263]], '3', 0.5117701833044066), ([[866.4199852094342, 1340.085951191133], [883.6629719900251, 1338.1130797206977], [886.5800147905658, 1376.914048808867], [869.3370280099749, 1378.8869202793023]], '0', 0.4005455848880821)]
[([[487, 99], [525, 99], [525, 119], [487, 119]], 'You', 0.7040720298478192), ([[492, 72], [574, 72], [574, 124], [492, 124]], '%388]', 0.027146685358079438), ([[501, 113], [561, 113], [561, 133], [501, 133]], 'So The', 0.4708497903963566), ([[499, 125], [561, 125], [561, 163], [499, 163]], 'LE8s7', 0.035651466509209535), ([[953, 149], [1013, 149], [1013, 165], [953, 165]], 'H-HANG', 0.9926134288934588), ([[503, 155], [559, 155], [559, 173], [503, 173]], 'COULD', 0.9125899449834582), ([[597, 147], [665, 147], [665, 187], [597, 187]], 'YNDER', 0.33407313661771015), ([[963, 165], [989, 165], [989, 179], [963, 179]], 'ON:', 0.7208214998245239), ([[487, 165], [545, 165], [545, 201], [487, 201]], 'Sha3l', 0.09579207948109764), ([[532, 170], [572, 170], [572, 200], [532, 200]], 'VSE', 0.2909027842413373), ([[589, 177], [667, 177], [667, 197], [589, 197]], 'Circum-', 0.529200056604948), ([[947, 179], [1021, 179], [1021, 195], [947, 195]], 'WHAT ThE', 0.6375388617144494), ([[497, 193], [563, 193], [563, 213], [497, 213]], 'YoURS!', 0.2346162063707996), ([[585, 188], [670, 188], [670, 215], [585, 215]], 'STANCES', 0.7011869637704771), ([[949, 193], [1019, 193], [1019, 209], [949, 209]], 'HELL ARE', 0.9388075095857862), ([[595, 209], [665, 209], [665, 227], [595, 227]], 'Do YOU', 0.3769071842333278), ([[939, 207], [1023, 207], [1023, 223], [939, 223]], 'YOU DOING', 0.978440253926897), ([[595, 221], [663, 221], [663, 241], [595, 241]], 'REALLY', 0.9972817991601433), ([[967, 223], [1001, 223], [1001, 237], [967, 237]], 'YOU', 0.9485921859741211), ([[635, 235], [677, 235], [677, 255], [635, 255]], 'You', 0.28682739956945114), ([[947, 237], [1019, 237], [1019, 251], [947, 251]], 'PERVERT?', 0.9293874584439744), ([[125, 245], [179, 245], [179, 261], [125, 261]], 'NO NO', 0.6288818828076737), ([[581, 233], [641, 233], [641, 273], [581, 273]], 'TAVE', 0.1183987632393837), ([[121, 261], [185, 261], [185, 277], [121, 277]], 'NO WAY?', 0.5794111022941024), ([[585, 265], [645, 265], [645, 285], [585, 285]], 'Room', 0.8850288391113281), ([[631, 249], [677, 249], [677, 287], [631, 287]], 'Aio', 0.18187780577734336), ([[123, 273], [173, 273], [173, 293], [123, 293]], 'ESPE', 0.9939274787902832), ([[601, 279], [657, 279], [657, 299], [601, 299]], 'TALK?', 0.9882697118876844), ([[117, 285], [186, 285], [186, 310], [117, 310]], 'CIALLY', 0.7575459439677603), ([[135, 305], [169, 305], [169, 321], [135, 321]], 'NOT', 0.9959849750307945), ([[129, 321], [177, 321], [177, 337], [129, 337]], 'RIGHT', 0.9995954054561486), ([[127, 333], [177, 333], [177, 353], [127, 353]], 'NOW!', 0.210195988438902), ([[856, 684], [916, 684], [916, 716], [856, 716]], 'WHAg"8"', 0.05160071435087026), ([[863, 709], [909, 709], [909, 725], [863, 725]], 'DEAL?', 0.9923019716058654), ([[910, 670], [990, 670], [990, 726], [910, 726]], 'M', 0.24589955352414794), ([[885, 721], [915, 721], [915, 735], [885, 735]], 'NoT', 0.48244070230827474), ([[853, 717], [889, 717], [889, 761], [853, 761]], '8', 0.2884381412756376), ([[885, 733], [915, 733], [915, 747], [885, 747]], 'END', 0.8937912556128735), ([[599, 759], [699, 759], [699, 791], [599, 791]], 'WHAT', 0.9879714846611023), ([[854, 738], [918, 738], [918, 786], [854, 786]], '888', 0.46392334824307774), ([[606, 790], [690, 790], [690, 822], [606, 822]], 'The-', 0.8253455758094788), ([[971, 1143], [1015, 1143], [1015, 1163], [971, 1163]], 'YOU', 0.9950865148837291), ([[954, 1160], [1030, 1160], [1030, 1184], [954, 1184]], 'GROSS', 0.9618647800601449), ([[866, 1170], [896, 1170], [896, 1194], [866, 1194]], 'fissw', 0.13748896454312734), ([[971, 1183], [1015, 1183], [1015, 1203], [971, 1203]], 'PIg!', 0.2871924936771393), ([[958, 1200], [1026, 1200], [1026, 1224], [958, 1224]], 'Drop', 0.7748207449913025), ([[956, 1218], [1030, 1218], [1030, 1244], [956, 1244]], 'DEAD!', 0.8874675728867056), ([[968, 1240], [1018, 1240], [1018, 1264], [968, 1264]], 'Die!', 0.7730517983436584), ([[989, 1369], [1037, 1369], [1037, 1385], [989, 1385]], 'WOAH!', 0.32074044652167333), ([[812, 1412], [866, 1412], [866, 1438], [812, 1438]], 'AH;', 0.5510963211798471), ([[71, 1431], [93, 1431], [93, 1449], [71, 1449]], '12', 0.999992329282188), ([[101.96651299616565, 31.1220578681749], [352.5542609538681, -1.2607022174141438], [362.03348700383435, 147.8779421318251], [111.44573904613193, 181.26070221741415]], 'NWtutt', 0.04879456672531961)]
[([[85, 21], [311, 21], [311, 203], [85, 203]], 'a', 0.12280610168888817), ([[866, 106], [980, 106], [980, 156], [866, 156]], 'OUREELVEL W', 0.22666460300332714), ([[868, 150], [976, 150], [976, 174], [868, 174]], 'EACH OTHERIS', 0.977035297523626), ([[878, 172], [966, 172], [966, 196], [878, 196]], 'BODiEs, AS', 0.5858039409649418), ([[874, 194], [972, 194], [972, 218], [874, 218]], 'ThOUGH OUR', 0.35072612319292695), ([[868, 214], [974, 214], [974, 238], [868, 238]], 'Lives DEpEN-', 0.33347806989051515), ([[882, 236], [962, 236], [962, 260], [882, 260]], 'DED ON it:', 0.5704019723696132), ([[938, 270], [1042, 270], [1042, 346], [938, 346]], 'WA', 0.8452840357096638), ([[848, 324], [1018, 324], [1018, 422], [848, 422]], 'AVHAYL', 0.04087913745343131), ([[944, 400], [1065, 400], [1065, 490], [944, 490]], 'MA', 0.07755039888542928), ([[915, 813], [1001, 813], [1001, 833], [915, 833]], 'I REPEATED-', 0.6700609840909576), ([[559, 813], [609, 813], [609, 853], [559, 853]], 'Sll', 0.2286253552602755), ([[919, 831], [997, 831], [997, 851], [919, 851]], 'Ly EMPTieD', 0.3415876877461075), ([[807, 841], [871, 841], [871, 885], [807, 885]], 'Mhn', 0.9660991096147771), ([[917, 851], [1001, 851], [1001, 869], [917, 869]], 'MYSELF INTO', 0.7250512175237511), ([[748, 858], [816, 858], [816, 910], [748, 910]], 'Khh', 0.7064349248859711), ([[913, 867], [1007, 867], [1007, 887], [913, 887]], 'MANAMI, OvER', 0.33585422272063914), ([[919, 885], [997, 885], [997, 905], [919, 905]], 'AND Over_', 0.5047848829716542), ([[448, 868], [585, 868], [585, 973], [448, 973]], 'W', 0.020220007429262665), ([[925, 903], [995, 903], [995, 943], [925, 943]], 'ANGAWER', 0.27770002933416205), ([[53, 975], [75, 975], [75, 991], [53, 991]], '06', 0.9999700758686951), ([[870, 1202], [902, 1202], [902, 1244], [870, 1244]], 'Re', 0.26893818245865203), ([[131, 1261], [171, 1261], [171, 1361], [131, 1361]], '6', 0.26089064381062954), ([[131.7426694080676, 824.3250759874298], [228.1707565545052, 800.8956346231536], [242.2573305919324, 873.6749240125702], [145.8292434454948, 898.1043653768464]], 'Auh', 0.7793134336337881), ([[894.1830676055473, 1008.0334247876768], [1024.9287683848693, 1068.8085477938157], [985.8169323944527, 1149.966575212323], [855.0712316151307, 1089.1914522061843]], 'Nw', 0.4458136394154508), ([[767.0100505063389, 1374.0703535443718], [820.1304951684997, 1369.7390096630006], [825.9899494936611, 1457.9296464556282], [773.8695048315003, 1462.2609903369994]], '"3', 0.5658093547823747)]
[([[86, 36], [170, 36], [170, 116], [86, 116]], 'Mn', 0.6366848684245588), ([[876, 282], [954, 282], [954, 518], [876, 518]], '"', 0.43961972598117427), ([[75, 547], [125, 547], [125, 567], [75, 567]], 'I RAVA', 0.6434235214876313), ([[69, 567], [133, 567], [133, 587], [69, 587]], 'GED HER', 0.5995807404145406), ([[65, 587], [137, 587], [137, 607], [65, 607]], 'NON-STOp', 0.7849155544807775), ([[64, 604], [138, 604], [138, 628], [64, 628]], 'ALL Night', 0.673062453061461), ([[77, 625], [123, 625], [123, 645], [77, 645]], 'Long', 0.5990849733352661), ([[683, 715], [779, 715], [779, 801], [683, 801]], 'Ls', 0.10785037471287383), ([[819, 1193], [881, 1193], [881, 1235], [819, 1235]], 'CHAU', 0.3587936460971832), ([[885, 1174], [982, 1174], [982, 1242], [885, 1242]], '(huhy', 0.10637594638099096), ([[825, 1231], [883, 1231], [883, 1251], [825, 1251]], 'LIm', 0.22137984745716305), ([[823, 1249], [883, 1249], [883, 1269], [823, 1269]], 'GoinG', 0.8312207514252623), ([[833, 1267], [863, 1267], [863, 1287], [833, 1287]], 'To_', 0.7195367757009838), ([[818, 1284], [874, 1284], [874, 1308], [818, 1308]], 'AGaiN:', 0.30631657643290805), ([[973, 1435], [1005, 1435], [1005, 1455], [973, 1455]], '107', 0.9999930486261803), ([[10.012997197858368, 131.25068907164763], [118.27376432666924, 118.0361425107672], [122.98700280214163, 185.74931092835237], [14.726235673330766, 199.9638574892328]], 'MrIa', 0.3004412353038788), ([[546.1142886264838, 795.0657337974418], [693.9608056110433, 825.3153128690018], [681.8857113735162, 873.9342662025582], [534.0391943889567, 843.6846871309982]], '3xt', 0.07625204438099419), ([[883.2612831448469, 958.0273224554329], [1043.0, 1036.0], [1003.7387168551531, 1112.972677544567], [844.0, 1036.0]], 'dxrL', 0.11464614421129227), ([[698.9438389874929, 1174.104526278738], [803.9811254370342, 1136.7399369507543], [824.0561610125071, 1204.895473721262], [720.0188745629658, 1242.2600630492457]], 'Au', 0.3254798328772691), ([[82.20891722009885, 1394.5805096062275], [207.34369788732727, 1326.51071146107], [232.79108277990116, 1384.4194903937725], [107.65630211267275, 1452.48928853893]], '73', 0.24051292688864134)]
[([[1638, 58], [1702, 58], [1702, 82], [1638, 82]], 'KYOU-', 0.4376150477031524), ([[2029, 53], [2081, 53], [2081, 73], [2029, 73]], 'IMc', 0.4584997025891821), ([[2037, 73], [2077, 73], [2077, 89], [2037, 89]], 'CUM-', 0.38729801944868864), ([[1638, 78], [1702, 78], [1702, 102], [1638, 102]], 'Chani', 0.4360716916932544), ([[2033, 85], [2081, 85], [2081, 105], [2033, 105]], 'Ming!', 0.35734127422403755), ([[1624, 108], [1688, 108], [1688, 132], [1624, 132]], 'KYou-', 0.33598225877021626), ([[75, 80], [316, 80], [316, 203], [75, 203]], 'KKYOU:', 0.5675571413169527), ([[1625, 127], [1690, 127], [1690, 155], [1625, 155]], 'Chani', 0.22386381917616677), ([[1238, 480], [1630, 480], [1630, 799], [1238, 799]], 'Wia', 0.10514762013915373), ([[1673, 717], [1848, 717], [1848, 806], [1673, 806]], '388', 0.734408094856181), ([[29, 1457], [61, 1457], [61, 1477], [29, 1477]], '109', 0.9999655873216236), ([[2096, 1452], [2132, 1452], [2132, 1476], [2096, 1476]], '108', 0.9999980728858172), ([[1129.3777272700588, -47.993545583167915], [1628.2618403412398, 281.38602238862387], [1484.6222727299412, 493.99354558316793], [985.7381596587601, 162.61397761137613]], 'ENM', 0.05464784693543597), ([[104.7751056896261, 198.20806015501836], [347.6042769460485, 172.38312271350856], [351.2248943103739, 274.79193984498164], [107.39572305395147, 299.61687728649144]], 'CHAA S', 0.13213794077692798), ([[123.89051233819612, 295.1868690938982], [357.567268563244, 272.3138031064449], [360.1094876618039, 374.8131309061018], [126.43273143675603, 396.6861968935551]], 'AAAA:', 0.4206749591906597), ([[129.73383127619852, 397.2159226362322], [368.35825123755285, 366.94140021954456], [374.2661687238015, 472.7840773637678], [135.64174876244715, 503.05859978045544]], 'AaNv', 0.1462061107158661), ([[28.562398430198165, 457.3435976452972], [91.19844303542396, 399.0902759662019], [137.43760156980184, 455.6564023547028], [73.80155696457604, 513.9097240337982]], '(L', 0.44395532274158445), ([[1158.314855964253, 927.0392468890013], [1302.0, 977.0], [1282.685144035747, 1025.9607531109987], [1140.0, 977.0]], 'CLcwwl', 0.10972167049643906), ([[1342.1050979013119, 1218.5044699262976], [1572.6484153961403, 1118.0163297119175], [1638.8949020986881, 1313.4955300737024], [1408.3515846038597, 1413.9836702880825]], 'Mi', 0.15637176136726175), ([[429.7095603064832, 1223.2963291646363], [530.8825788331148, 1200.1885929300777], [543.2904396935168, 1278.7036708353637], [443.11742116688515, 1301.8114070699223]], '(lp', 0.1741718673665916), ([[796.0479255086583, 1219.050499781388], [956.788213319151, 1255.0590449111078], [935.9520744913417, 1330.949500218612], [776.211786680849, 1294.9409550888922]], '4483', 0.345314085483551)]
[([[558, 58], [622, 58], [622, 82], [558, 82]], 'KYou-', 0.3192897973997957), ([[949, 53], [1001, 53], [1001, 73], [949, 73]], 'IMc-', 0.2307198941707611), ([[957, 73], [997, 73], [997, 89], [957, 89]], 'CUM-', 0.5274790525436401), ([[558, 78], [622, 78], [622, 102], [558, 102]], 'Chani', 0.4826739599153725), ([[953, 85], [1001, 85], [1001, 105], [953, 105]], 'MinG!', 0.3057252286457544), ([[544, 108], [608, 108], [608, 132], [544, 132]], 'KYou-', 0.4583702403432217), ([[545, 127], [610, 127], [610, 155], [545, 155]], 'Chani', 0.20534055064648518), ([[608, 724], [764, 724], [764, 802], [608, 802]], '288', 0.09287375154458494), ([[289, 1169], [473, 1169], [473, 1397], [289, 1397]], '4', 0.46398556748705744), ([[1017, 1455], [1051, 1455], [1051, 1475], [1017, 1475]], '108', 0.9961733222007751), ([[58.37513558954493, -43.99349170184336], [547.2832132396566, 283.4813020962156], [401.6248644104551, 495.99349170184337], [-86.28321323965655, 168.5186979037844]], 'ENMA', 0.14794443547725677), ([[202.76445298435715, 468.0224570698213], [561.3292307514077, 518.8012726188629], [508.23554701564285, 810.9775429301787], [149.67076924859222, 760.1987273811371]], 'N', 0.7037138584712785), ([[78.31485596425303, 927.0392468890013], [221.99986667111094, 975.9600008888592], [202.685144035747, 1025.9607531109987], [60.00013332888905, 977.0399991111408]], 'GLcwwls', 0.10432082438929496)]
[([[75, 76], [316, 76], [316, 201], [75, 201]], 'KKYOU:', 0.31250147339896134), ([[48, 406], [120, 406], [120, 502], [48, 502]], 'c', 0.07761191965176639), ([[29, 1455], [61, 1455], [61, 1475], [29, 1475]], '109', 0.566437840461731), ([[103.64660637834179, 197.23303189170895], [346.55319258397003, 169.28772144537402], [350.3533936216582, 270.76696810829105], [107.44680741602997, 298.712278554626]], 'ChAA', 0.3039998412132263), ([[122.7338312761985, 295.2159226362322], [354.468347002364, 269.1336799407042], [358.2661687238015, 370.7840773637678], [126.53165299763597, 396.8663200592958]], 'AAAA:', 0.13430838182049443), ([[130.77510568962612, 395.20806015501836], [369.4875748203142, 368.1681242821617], [373.2248943103739, 471.79193984498164], [134.5124251796858, 498.8318757178383]], 'Aanil', 0.10678081828249245), ([[794.043064939372, 1224.0574389967883], [951.7892726239182, 1253.175929828576], [935.956935060628, 1322.9425610032117], [778.2107273760818, 1293.824070171424]], 'Q83', 0.3481369041464248)]
...

2. Caching

Source Data is very dirty, so you need to clean it up. hcache is simple to do this. This tool filters out sentences with low accuracy and combines words that are close to each other to form a complete sentence that will fit into the speech balloon.

Follow example is the cache data of 2282012.

[
  {
    "ArticleId": 2282012,
    "Page": 0,
    "Message": "dojin r18",
    "Score": 0.7390363678204988,
    "Rectangle": [
      916,
      58,
      1016,
      142
    ],
    "MessageRaw": "DOJIN R18"
  },
  {
    "ArticleId": 2282012,
    "Page": 0,
    "Message": "baa",
    "Score": 0.2432820887454194,
    "Rectangle": [
      913,
      183,
      949,
      203
    ],
    "MessageRaw": "BAA"
  },
  {
    "ArticleId": 2282012,
    "Page": 0,
    "Message": "alll",
    "Score": 0.217879056930542,
    "Rectangle": [
      203,
      901,
      369,
      1039
    ],
    "MessageRaw": "alll"
  },
  {
    "ArticleId": 2282012,
    "Page": 0,
    "Message": "ligusa",
    "Score": 0.1794300691674123,
    "Rectangle": [
      328,
      802,
      918,
      1068
    ],
    "MessageRaw": "ligusa"
  },
  {
    "ArticleId": 2282012,
    "Page": 0,
    "Message": "(revised)",
    "Score": 0.4975673224589949,
    "Rectangle": [
      218.31831801500923,
      1046.4275212228624,
      316.6816819849908,
      1102.5724787771376
    ],
    "MessageRaw": "(Revised)"
  },
  {
    "ArticleId": 2282012,
    "Page": 1,
    "Message": "2h",
    "Score": 0.1771801386061562,
    "Rectangle": [
      95,
      27,
      137,
      65
    ],
    "MessageRaw": "2h"
  },
  {
    "ArticleId": 2282012,
    "Page": 1,
    "Message": "urgh!",
    "Score": 0.2645824217379324,
    "Rectangle": [
      333,
      79,
      389,
      99
    ],
    "MessageRaw": "URGH!"
  },
  {
    "ArticleId": 2282012,
    "Page": 1,
    "Message": "how about this?!",
    "Score": 0.6764642525677771,
    "Rectangle": [
      808,
      90,
      904,
      170
    ],
    "MessageRaw": "HOW ABOUT THis?!"
  },
  {
    "ArticleId": 2282012,
    "Page": 1,
    "Message": "hey; tha -",
    "Score": 0.639254090059455,
    "Rectangle": [
      309,
      129,
      349,
      165
    ],
    "MessageRaw": "HEY; THA -"
  },
...

3. Merging Caches

hcache-merger is tool of merging caches. This tool merges all cache information and splits it into one or two or more files. A mandatory parameter of hcache-merger is information on how many merge files are split. Sufficient search performance is guaranteed when the service is divided into at least three instances. Even when running on a CPU with more than 64 cores (r5.metal, c5.metal, m5.metal), it shows lower search performance than running it by splitting it into three instances :(

4. Running

fast-search is the core program for message searching. This tool quickly searches for speech balloons through a fuzzy string search.

A minimum of 2 Core CPU and 16 GB of RAM are required. For AWS, r5.large is recommended. If there is not enough RAM, create a swap.

sudo su
mkdir -p /var/swap
dd if=/dev/zero of=/var/swap/swapfile bs=1M count=4000
mkswap -f /var/swap/swapfile
swapon /var/swap/swapfile
swapon -s

Then, download the split merge file from each instance and start the service.

sudo apt update -y
sudo apt install libgomp1 -y
wget http://1.2.3.4/htext/merged-0.json
wget http://1.2.3.4/htext/fast-search/build/fscm
wget http://1.2.3.4/htext/forever.py
mv merged-0.json merged.json
chmod 777 fscm
nohup ./fscm 0.0.0.0 8864 <your-onw-token> &

or using this.

import sys
import os
import os.path
import time
import shutil
from subprocess import Popen, PIPE
from datetime import datetime

while True:
  process = Popen(['./fscm', '0.0.0.0', '8864', '<your-onw-token>'])
  process.wait()