google-local-results-ai-parser 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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