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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2d3d26973c143811af3354af94b83eaf429542cb41dc8e869ee51e933e6f2d7
4
- data.tar.gz: e33c4fe018e422245516cd200f57d4a9e2077a9874b5ba01a3107ce8c2a533d7
3
+ metadata.gz: f879eea0293f78de7556e0b7b2c899d7c1460ab75955b3e014c9ec8341c183bd
4
+ data.tar.gz: 5e4b4ba286d337ac577fa2750344d910ec297b981c0b57c53b25cf94be6fb10f
5
5
  SHA512:
6
- metadata.gz: 9aeaebb296e9940cc2a07f50cff70955c6f4ea40093c21cbe44529e19d329406812fd12fbf25243b65fdc178c752dbe38ffe89c9574b8e5323cea8e4247d13c5
7
- data.tar.gz: 8dd7b93a1683d5fbed86f97a17f6e655769ce2f7b81a2af798519b222a64e526a2b3a153ef1d0863c6c280f8f6388a54cb04f928a813c12c9ae91c1e59312024
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-local-results-ai-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emirhan Akdeniz