google-local-results-ai-parser 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/google-local-results-ai-parser.rb +44 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f879eea0293f78de7556e0b7b2c899d7c1460ab75955b3e014c9ec8341c183bd
|
4
|
+
data.tar.gz: 5e4b4ba286d337ac577fa2750344d910ec297b981c0b57c53b25cf94be6fb10f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e6b363af552c4bf34da4ac387830720c98bfbc5c1a2331c2fe1fed8c373d3d0f66bb1bd303b8565d2fcaadeeabfca6969fb4f5a13f25c9efc24f2d44923a288
|
7
|
+
data.tar.gz: 801b68771772460632e704cca817d01a2662b8958415510cce48c57af2b37592493e9826d226b4f5bfd67ef5cb432ba8e7fa9b7bac63b84914791ef4a216f1c9
|
@@ -98,6 +98,7 @@ module GoogleLocalResultsAiParser
|
|
98
98
|
results, label_order, duplicates = button_text_as_hours_confusion(results, label_order, duplicates)
|
99
99
|
results, label_order, duplicates = button_text_as_address_confusion(results, label_order, duplicates)
|
100
100
|
results, label_order, duplicates = button_text_as_service_options_confusion(results, label_order, duplicates)
|
101
|
+
results, label_order, duplicates = service_options_as_description_or_type_confusion(results, label_order, duplicates)
|
101
102
|
|
102
103
|
# General clashes
|
103
104
|
line_result = check_if_on_different_lines(results, duplicates, unsplit_text)
|
@@ -437,6 +438,49 @@ module GoogleLocalResultsAiParser
|
|
437
438
|
return results, label_order, duplicates
|
438
439
|
end
|
439
440
|
|
441
|
+
# On-site services, Online appointments
|
442
|
+
# Fixes `On-site services`, `Online appointments`
|
443
|
+
def service_options_as_description_or_type_confusion(results, label_order, duplicates)
|
444
|
+
known_errors = ["On-site services", "On-site services not available", "Online appointments", "Online appointments not available"]
|
445
|
+
caught_results_indices = results.map.with_index {|result, index| index if known_errors.include?(result[:input])}.compact
|
446
|
+
return results, label_order, duplicates if caught_results_indices == []
|
447
|
+
|
448
|
+
not_service_option_duplicate = duplicates.find.with_index do |duplicate, duplicate_index|
|
449
|
+
caught_results_indices.each do |caught_index|
|
450
|
+
if results[caught_index][:result][0][0]["label"] != "service_options"
|
451
|
+
duplicate_index
|
452
|
+
end
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
# Zero out the `type` or `description`, and put it to last position
|
457
|
+
caught_results_indices.each do |caught_index|
|
458
|
+
service_options_hash = results[caught_index][:result][0].find {|hash| hash["label"] == "service options" }
|
459
|
+
service_options_index = results[caught_index][:result][0].index(service_options_hash)
|
460
|
+
old_result_hash = results[caught_index][:result][0][0]
|
461
|
+
results[caught_index][:result][0][0] = {"label" => "service options", "score" => 1.0}
|
462
|
+
results[caught_index][:result][0].delete_at(service_options_index)
|
463
|
+
old_result_hash["score"] = 0.0
|
464
|
+
results[caught_index][:result][0] << old_result_hash
|
465
|
+
end
|
466
|
+
|
467
|
+
# Rearranging `label_order`
|
468
|
+
caught_results_indices.each {|caught_index| label_order[caught_index] = "service_options"}
|
469
|
+
|
470
|
+
# Rearranging duplicates
|
471
|
+
not_service_option_duplicate.each do |duplicate_index|
|
472
|
+
duplicate_arr = duplicates.find{|duplicate| duplicate.include?(2)}
|
473
|
+
last_item = duplicate_arr[-1]
|
474
|
+
duplicates[duplicates.index(duplicate_arr)].delete(last_item)
|
475
|
+
end
|
476
|
+
|
477
|
+
if (duplicate_arr = duplicates[duplicates.index(not_service_option_duplicate)]) && duplicate_arr.size == 1
|
478
|
+
duplicates.delete(duplicate_arr)
|
479
|
+
end
|
480
|
+
|
481
|
+
return results, label_order, duplicates
|
482
|
+
end
|
483
|
+
|
440
484
|
# Takeaway ⋅ Dine-in ...
|
441
485
|
# Fixes `Takeaway`
|
442
486
|
def service_options_as_type_confusion(results, label_order, duplicates)
|