Advertisement
here2share

# GeneralGuess.py

Nov 17th, 2019
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.60 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. # GeneralGuess.py
  3.  
  4. # Note: Sorry if the data in French is incorrect whereas it was provided by Google Translator.
  5.  
  6. import re
  7.  
  8. WORDS = re.compile(r'\b\w+\b')
  9. all_words = {}
  10.  
  11. class GeneralGuess(object):
  12.     def __init__(self, data):
  13.         if len(data[-1]) > 1:
  14.             self.train(data)
  15.         else:
  16.             self.score(data)
  17.  
  18.     def train(self, training_data):
  19.         for category, message in training_data:
  20.             try:
  21.                 all_words[category]
  22.             except:
  23.                 all_words[category] = []
  24.             cur_dict = all_words[category]
  25.             words = WORDS.findall(message.lower())
  26.             for word in words:
  27.                 if word[:4] not in all_words[category]:
  28.                     all_words[category].append(word[:4])
  29.  
  30.     def score(self, message):
  31.         weights = []
  32.         for category in all_words:
  33.             p = []
  34.             for word in WORDS.findall(message.lower()):
  35.                 p.append(1 if word[:4] in all_words[category] else 0)
  36.        
  37.             try:
  38.                 weights.append([(1.0 / len(p)) * sum(p), category])
  39.             except OverflowError:
  40.                 weights.append([0.0, category])
  41.         weights.sort()
  42.         print ['%s = %s' % (category, p) for p, category in weights[::-1]]
  43. 0
  44. training_data = '''
  45. english: Maybe we both can make a whole lot of money from home with this new idea.
  46. english: That was a very huge house party and thanks again for inviting us.
  47. english: Such the talk went on for over two hours, but we really needed it.
  48. english: They look so much happier right now just to finally be living together.
  49. english: All those years... she never expected he would be the perfect type for her.
  50. english: At what time tomorrow should my friend show up to fix your computer?
  51. french: Peut-être pouvons-nous tous les deux gagner beaucoup d’argent avec cette nouvelle idée.
  52. french: C'était une très grande fête à la maison et merci encore de nous avoir invités.
  53. french: La conversation a duré plus de deux heures, mais nous en avions vraiment besoin.
  54. french: Ils ont l'air tellement plus heureux en ce moment, juste pour enfin vivre ensemble.
  55. french: Toutes ces années... elle ne s'attendait pas à ce qu'il soit le type parfait pour elle.
  56. french: À quelle heure demain mon ami devrait-il se présenter pour réparer votre ordinateur?
  57. '''.strip().splitlines()
  58.  
  59. training_data = [data.split(': ') for data in training_data]
  60.  
  61. GeneralGuess(training_data)
  62.  
  63. print all_words
  64.  
  65. GeneralGuess("Given the very small amount of typical data for training on, this minimalistic algorithm will make an attempt to predict the category set by percentages whereas the application regarding this demo will not recognize a while lot of the words shown in this sample, but should still be impressive enough to take into consideration. Most importantly, I believe this simple project has the potential to handle far more complex tasks such as facial recognition with excellent accuracy and even generate very random photo realistic images, whereas another side feature is the removal of their counterpart similarities.")
  66.  
  67. GeneralGuess("Compte tenu de la très petite quantité de données typiques pour la formation, cet algorithme minimaliste tentera de prédire la catégorie en pourcentage alors que l’application concernant cette démo ne reconnaîtra pas beaucoup de mots affichés dans cet échantillon, mais devrait tout de même être assez impressionnant pour prendre en considération. Plus important encore, je pense que ce projet simple a le potentiel de traiter des tâches beaucoup plus complexes, telles que la reconnaissance faciale, avec une excellente précision, et même de générer des images photoréalistes très aléatoires, tandis qu'un autre aspect parallèle est la suppression des similitudes entre leurs contreparties.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement