Commit fd323c3a authored by ana's avatar ana

Adding sources of The Book of Tomorrow in a Bag of Words

parent 642dda93
fiches : 60
revues : 23
documentation : 23
travail : 20
jour : 19
sciences : 18
documents : 15
question : 14
livre : 14
progrès : 13
renseignements : 13
connaissances : 13
fiche : 13
suivant : 13
couleur : 13
vaste : 12
unitaires : 12
matière : 11
articles : 11
diverses : 11
lieu : 11
partie : 10
livres : 10
problème : 10
travaux : 10
scientifique : 10
compilateur : 10
international : 10
nombre : 10
système : 10
éléments : 10
traité : 10
revue : 10
lire : 9
forme : 9
texte : 9
fils : 9
essais : 8
science : 8
temps : 8
publications : 8
chercheur : 8
nouvelles : 8
première : 8
dépouillement : 8
suite : 8
faits : 8
effet : 8
ordre : 8
savoir : 7
humain : 7
savant : 7
spécial : 7
matériaux : 7
besoin : 7
rôle : 7
humaines : 7
bibliographie : 7
objet : 7
relatives : 7
collection : 7
années : 7
solutions : 6
courant : 6
donner : 6
peine : 6
nouveau : 6
plan : 6
méthodes : 6
aujourd’hui : 6
recherches : 6
termes : 6
otlet : 6
l'esprit : 6
vue : 6
réaliser : 6
méthodique : 6
parfaitement : 6
synthèse : 6
dernières : 6
ouvrages : 6
possible : 6
traités : 6
chimie : 6
ouvrage : 6
corps : 6
loi : 6
universel : 6
classification : 6
systématique : 6
électrique : 6
journal : 6
découvrir : 5
lignes : 5
connaître : 5
trouver : 5
solution : 5
portion : 5
compilation : 5
savants : 5
This diff is collapsed.
# The Book of Tomorrow in a Bag of Words
The bag-of-words model is a simplifying representation of text used in Natural Language Processing (NLP). In this model, a text is represented as a collection of its unique words, disregarding grammar, punctuation and even word order. The model transforms the text into a list of words and how many times they're used in the text, or quite literally a bag of words.
This heavy reduction of language was the big shock when beginning to machine learn. Bag of words is often used as a baseline, on which the new model has to perform better. It can understand the subject of a text by recognizing the most frequent or important words. It is often used to measure the similarities of texts by comparing their bags of words.
For this work the article 'Le Livre de Demain' by engineer G. Vander Haeghen, published in 1907 in the Bulletin de l'Institut International de Bibliographie of the Mundaneum, has been literally reduced to a bag of words. You can buy a bag at the reception of Mundaneum.
# Authors
An Mertens
# License
Copyright (C) Algolit, Brussels, 2019
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details: <http://www.gnu.org/licenses/>.
ne : 3
livre : 2
plus : 2
On : 2
peut : 2
à : 2
les : 2
pour : 2
un : 2
Le : 1
subsistera : 1
que : 1
sous : 1
deux : 1
formes : 1
: : 1
le : 1
d’enseignement : 1
élémentaire : 1
et : 1
l : 1
ouvrage : 1
d : 1
imagination. : 1
songer : 1
utiliser : 1
fiches : 1
apprendre : 1
lire : 1
aux : 1
enfants : 1
ni : 1
leur : 1
donner : 1
premières : 1
notions. : 1
non : 1
décomposer : 1
poème : 1
ou : 1
roman : 1
en : 1
ses : 1
éléments : 1
ultimes. : 1
#!/usr/bin/env/ python
# This script creates a sorted frequency dictionary with stopwords
# The output is printed in a txt-file and in a Logbook in Context
# Copyright (C) 2016 Constant, Algolit, An Mertens
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details: <http://www.gnu.org/licenses/>.
from collections import Counter
import string
import nltk
'''
This script creates a frequency dictionary of words used in a text filtering out stopwords
'''
# VARIABLES
# textfiles
source = 'Le livre ne subsistera plus que sous deux formes : le livre d’enseignement élémentaire et \
l ouvrage d imagination. On ne peut songer à utiliser les fiches pour apprendre à lire aux enfants ni \
pour leur donner les premières notions. On ne peut non plus décomposer un poème ou un roman en ses \
éléments ultimes.'
#source = open('Livre_de_demain_clean.txt', 'rt')
destination = open('frequency_livre_de_demain.txt', 'wt')
stopwords = []
with open('stopwords-fr.txt', 'rt') as f:
txt = f.readlines()
for line in txt:
stopwording = line.split(',')
for wording in stopwording:
stopwords.append(wording)
#print(stopwords)
## FUNCTIONS
# PREPROCESSING TEXT FILE
## remove caps + breaks + punctuation
def remove_punct(f):
tokens = (' '.join(line.replace('\n', '') for line in f)).lower()
for c in string.punctuation:
tokens= tokens.replace(c,"")
tokens = tokens.strip()
#print("tokens", type(tokens))
return tokens
# remove stopwords
def remove_stopwords(tokens, stopwords):
tokens = tokens.split(" ")
words =[]
for token in tokens:
if token not in stopwords:
words.append(token)
return words
## create frequency dictionary
def freq_dict(words):
frequency_d = {}
# tokens = tokens.split(" ")
for word in words:
try:
frequency_d[word] += 1
except KeyError:
frequency_d[word] = 1
return frequency_d
## sort words by frequency (import module)
def sort_dict(frequency_d):
c=Counter(frequency_d)
frequency = c.most_common()
return frequency
# write words in text file
def write_to_file(frequency, destination):
for key, value in frequency:
destination.write(("{} : {} \n".format(key, value)))
destination.close()
## SCRIPT
# execute functions
# tokens = remove_punct(source)
words = source.split()
#words = remove_stopwords(tokens, stopwords)
frequency_d = freq_dict(words)
frequency = sort_dict(frequency_d)
write_to_file(frequency, destination)
#source.close()
destination.close()
# -------------------------------------------
Ap., Apr., GHz, MHz, USD, a, afin, ah, ai, aie, aient, aies, ait, alors, après, as, attendu, au, au-delà, au-devant, aucun, aucune, aucuns, audit, auprès, auquel, aura, aurai, auraient, aurais, aurait, auras, aurez, auriez, aurions, aurons, auront, aussi, autour, autre, autres, autrui, aux, auxdites, auxdits, auxquelles, auxquels, avaient, avais, avait, avant, avec, avez, aviez, avions, avoir, avons, ayant, ayez, ayons, b, bah, banco, ben, bien, bon, bé, c, c', c'est, c'était, car, ce, ceci, cela, celle, celle-ci, celle-là, celles, celles-ci, celles-là, celui, celui-ci, celui-là, celà, cent, cents, cependant, certain, certaine, certaines, certains, ces, cet, cette, ceux, ceux-ci, ceux-là, cf., cg, cgr, chacun, chacune, chaque, chez, ci, cinq, cinquante, cinquante-cinq, cinquante-deux, cinquante-et-un, cinquante-huit, cinquante-neuf, cinquante-quatre, cinquante-sept, cinquante-six, cinquante-trois, cl, cm, cm², comme, comment, contre, d, d', d'après, d'un, d'une, dans, de, dedans, dehors, depuis, derrière, des, desdites, desdits, desquelles, desquels, deux, devant, devers, devrait, dg, différentes, différents, divers, diverses, dix, dix-huit, dix-neuf, dix-sept, dl, dm, doit, donc, dont, dos, douze, droite, du, dudit, duquel, durant, dès, début, déjà, e, eh, elle, elles, en, en-dehors, encore, enfin, entre, envers, es, essai, est, et, eu, eue, eues, euh, eurent, eus, eusse, eussent, eusses, eussiez, eussions, eut, eux, eûmes, eût, eûtes, f, fait, faites, fi, flac, fois, font, force, fors, furent, fus, fusse, fussent, fusses, fussiez, fussions, fut, fûmes, fût, fûtes, g, gr, h, ha, han, haut, hein, hem, heu, hg, hl, hm, hm³, holà, hop, hormis, hors, huit, hum, hé, i, ici, il, ils, j, j', j'ai, j'avais, j'étais, jamais, je, jusqu', jusqu'au, jusqu'aux, jusqu'à, jusque, juste, k, kg, km, km², l, l', l'autre, l'on, l'un, l'une, la, laquelle, le, lequel, les, lesquelles, lesquels, leur, leurs, lez, lors, lorsqu', lorsque, lui, là, lès, m, m', ma, maint, mainte, maintenant, maintes, maints, mais, malgré, me, mes, mg, mgr, mil, mille, milliards, millions, mine, ml, mm, mm², moi, moins, mon, mot, moyennant, mt, m², m³, même, mêmes, n, n', n'avait, n'y, ne, neuf, ni, nommés, non, nonante, nonobstant, nos, notre, nous, nouveaux, nul, nulle, nº, néanmoins, o, octante, oh, on, ont, onze, or, ou, outre, où, p, par, par-delà, parbleu, parce, parmi, parole, pas, passé, pendant, personne, personnes, peu, peut, pièce, plupart, plus, plus_d'un, plus_d'une, plusieurs, pour, pourquoi, pourtant, pourvu, près, puisqu', puisque, q, qu, qu', qu'elle, qu'elles, qu'il, qu'ils, qu'on, quand, quant, quarante, quarante-cinq, quarante-deux, quarante-et-un, quarante-huit, quarante-neuf, quarante-quatre, quarante-sept, quarante-six, quarante-trois, quatorze, quatre, quatre-vingt, quatre-vingt-cinq, quatre-vingt-deux, quatre-vingt-dix, quatre-vingt-dix-huit, quatre-vingt-dix-neuf, quatre-vingt-dix-sept, quatre-vingt-douze, quatre-vingt-huit, quatre-vingt-neuf, quatre-vingt-onze, quatre-vingt-quatorze, quatre-vingt-quatre, quatre-vingt-quinze, quatre-vingt-seize, quatre-vingt-sept, quatre-vingt-six, quatre-vingt-treize, quatre-vingt-trois, quatre-vingt-un, quatre-vingt-une, quatre-vingts, que, quel, quelle, quelles, quelqu', quelqu'un, quelqu'une, quelque, quelques, quelques-unes, quelques-uns, quels, qui, quiconque, quinze, quoi, quoiqu', quoique, r, revoici, revoilà, rien, s, s', sa, sans, sauf, se, seize, selon, sept, septante, sera, serai, seraient, serais, serait, seras, serez, seriez, serions, serons, seront, ses, seulement, si, sien, sinon, six, soi, soient, sois, soit, soixante, soixante-cinq, soixante-deux, soixante-dix, soixante-dix-huit, soixante-dix-neuf, soixante-dix-sept, soixante-douze, soixante-et-onze, soixante-et-un, soixante-et-une, soixante-huit, soixante-neuf, soixante-quatorze, soixante-quatre, soixante-quinze, soixante-seize, soixante-sept, soixante-six, soixante-treize, soixante-trois, sommes, son, sont, sous, soyez, soyons, suis, suite, sujet, sur, sus, t, t', ta, tacatac, tandis, te, tel, telle, tellement, telles, tels, tes, toi, ton, toujours, tous, tout, toute, toutefois, toutes, treize, trente, trente-cinq, trente-deux, trente-et-un, trente-huit, trente-neuf, trente-quatre, trente-sept, trente-six, trente-trois, trois, trop, très, tu, u, un, une, unes, uns, v, valeur, vers, via, vingt, vingt-cinq, vingt-deux, vingt-huit, vingt-neuf, vingt-quatre, vingt-sept, vingt-six, vingt-trois, vis-à-vis, voici, voie, voient, voilà, vont, vos, votre, vous, vu, w, x, y, y', z, zéro, à, ç', ça, ès, étaient, étais, était, étant, état, étiez, étions, été, étée, étées, étés, êtes, être, ô
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment