infra-ordinaire~20171217-110506.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import nltk
  2. from duckduckpy import query
  3. import random
  4. # ------------------ #
  5. # en-tête du script > déclaration des fonctions
  6. # ------------------ #
  7. # fonction qui extrait les mots et les stockent dans une liste
  8. def words_extract( str ):
  9. tokens = nltk.word_tokenize( str )
  10. words = []
  11. for word, pos in nltk.pos_tag(tokens):
  12. if pos == 'NN':
  13. words.append(word)
  14. return words
  15. # fonction qui génère un nombre aléatoire à partir de la liste de mots pour pouvoir choisir un mot
  16. def rand_words( list ):
  17. list_len = len( list )
  18. ran_num = random.randint(0,list_len-1)
  19. return ran_num
  20. # fonction pour chercher dans duckduckgo
  21. def srch_engine( list, num ):
  22. srch = query(list[num], container='dict')
  23. res = srch['related_topics'][0]['text']
  24. return res
  25. # ------------------ #
  26. # corps du script > appel des fonctions
  27. # ------------------ #
  28. # phrase de départ
  29. sentence = "Encoded inside a beautiful microchip are the blue patterns of my small fingertips"
  30. # ------------------- #
  31. # niveau 1
  32. # ------------------- #
  33. # 1
  34. print('\n')
  35. print('1. ' + sentence)
  36. # extraction des mots de la phrase de départ
  37. words = words_extract( sentence )
  38. # 1.2
  39. print(words)
  40. # 1.3 - génération du nombre pour le choix du mot
  41. ran_num = rand_words( words )
  42. print(ran_num)
  43. # ------------------- #
  44. # niveau 2
  45. # ------------------- #
  46. # 2 - on va chercher une phrase à partir du mot sélectionné
  47. sentence2 = srch_engine(words, ran_num)
  48. print('\t 2. ' + sentence2)
  49. # extraction des mots de la phrase 2
  50. words = words_extract( sentence2 )
  51. # 2.2
  52. print(words)
  53. # 2.3 - génération du nombre pour le choix du mot
  54. ran_num = rand_words( words )
  55. print(ran_num)
  56. # ------------------- #
  57. # niveau 3
  58. # ------------------- #
  59. # 3 - on va chercher une phrase à partir du mot sélectionné
  60. sentence3 = srch_engine(words, ran_num)
  61. print('\t\t 3. ' + sentence3)
  62. # extraction des mots de la phrase 2
  63. words = words_extract( sentence3 )
  64. # 3.2
  65. print(words)
  66. # 3.3 - génération du nombre pour le choix du mot
  67. ran_num = rand_words( words )
  68. print(ran_num)
  69. # ------------------- #
  70. # niveau 4
  71. # ------------------- #
  72. # 4 - on va chercher une phrase à partir du mot sélectionné
  73. sentence4 = srch_engine(words, ran_num)
  74. print('\t\t\t 4. ' + sentence4)
  75. # extraction des mots de la phrase 2
  76. words = words_extract( sentence4 )
  77. # 4.2
  78. print(words)
  79. # 4.3 - génération du nombre pour le choix du mot
  80. ran_num = rand_words( words )
  81. print(ran_num)
  82. # ------------------- #
  83. # niveau 5
  84. # ------------------- #
  85. # 5 - on va chercher une phrase à partir du mot sélectionné
  86. sentence5 = srch_engine(words, ran_num)
  87. print('\t\t\t\t 5. ' + sentence5)
  88. # extraction des mots de la phrase 2
  89. words = words_extract( sentence5 )
  90. # 5.2
  91. print(words)
  92. # 5.3 - génération du nombre pour le choix du mot
  93. ran_num = rand_words( words )
  94. print(ran_num)
  95. # ------------------- #
  96. # écriture du fichier
  97. # ------------------- #
  98. # on ouvre un fichier
  99. file = open('ola#5doc/jeremie_nuel/infra-ordinaire.txt', 'w')
  100. # on l'écrit
  101. file.write('\n 1.' + sentence )
  102. file.write('\n\t 2. ' + sentence2 )
  103. file.write('\n\t\t 3. ' + sentence3 )
  104. file.write('\n\t\t\t 4. ' + sentence4 )
  105. file.write('\n\t\t\t\t 5. ' + sentence5 )
  106. file.close()
  107. print('fichier écrit')