J'ai mis en place une méthode rubis personnalisé qui regroupe un texte similaire en utilisant des boucles,est-ce possible de regrouper un tableau de chaînes en fonction de la similitude de Ruby
array = ["South East Queensland", "Wide Bay Burnett", "Margaret River", "Port Pirie", "Gippsland", "Elizabeth", "Barossa"]
similarity_group = []
similarity_percentage = 60.0
array.each do |first_text|
results.each do |second_text|
result = first_text.upcase.similar(second_text.upcase)
if result >= similarity_percentage
...
...
...
end
end
end
considèrent la mise en œuvre ci-dessus pour l'élément 2000, puis groupe il en coûtera 4000000 itérations, car chaque élément se vérifie les uns les autres.
Y a-t-il une solution ou des gemmes performantes ou une bibliothèque comme grouper un groupement en vrac en fonction de leur similitude.
d'attente(j'utiliser le même élément de tableau pour la vérification de similitude)
exemple: [array1].similarity([array1])
D'où vient le terme «similaire»? Est-ce d'une gemme? Laquelle? –
Remarque: Vous utilisez deux fois first_text. Je suppose que la similarité sera toujours 1 :) Une optimisation évidente serait de vérifier 2 chaînes seulement si 'string1> = string2'. Il coupe les itérations de moitié. –