DSC Multilingual Mystery 2: Beware, Lee and Quinn!#

DSC M2 book cover

By Lee Skallerup-Bessette and Quinn Dombrowski

February 27, 2020

DOI logo https://doi.org/10.25740/tn079tm0177

Quinn#

The differences leap out at you before you even open any of the books. “Christine a une idée géniale”. Or was the Baby-Sitters Club “L’idée géniale de Valérie:? Does “Bruno aime Mélanie”, or is he instead “Un amoureux pour Anne-Marie”? There’s a case study on the Dutch translation of the Baby-Sitters Club books in Babysitting the reader: translating English narrative fiction for girls into Dutch (1946-1995) by Mieke K T Desmet that gets into strategies for localizing a story that takes place in a different cultural context, and the article “Cultural Understanding in the Indonesian Translation of The Baby-sitters Club” by Halida Aisyah talk about how the Indonesian translation took a different approach, maintaining the protagonists’ foreign names and locations, and only adopting Indonesian cultural references when the American equivalent would’ve been incomprehensible without some kind of extensive explanation. But I hadn’t come across any scholarly literature on translation strategies for The Baby-Sitters Club in French (in any of the translations: Québécois, Belgian, or French from France).

I had questions, and not just “what did they decide to call Mallory?” (Spoiler alert: in Québécois it’s Marjorie, and just like in English, it’s the most frequently screwed up name when OCRing the books.) The ghostwriters in the US were working with an extensive “BSC Bible” that had the description and background of every character in Stoneybrook, and further afield in the BSC universe. (This was adapted and published as The complete guide to The Baby-sitters Club.) But in DSC Mystery #1: Lee and the Missing Metadata, Lee discovered that at least in Quebec, they were throwing Baby-Sitters Club books at multiple translators, who turned them around in no time at all. How careful were the translators about consistency, in terms of what they called various peripheral characters and places? This was the making of another Data-Sitters Club Multilingual Mystery. (Who are the data-sitters? So glad you asked. Check out Chapter 2.)

Lee and I put our heads together about how we’d start looking into this mystery. We needed a book that we had on hand in all the translations: Québécois, Belgian, French from France (the last of these being the source of the recent French re-releases). We settled on Jessi’s Secret Language, on the thought that all the major characters had been established by that point, as well as many peripheral ones. We’d need to compare with some of the other translations, but that would be our starting point.

Here’s the thing, though: Lee reads French. I don’t. I mean, I could probably pick my way through the text and come up with a list of characters and places, but I had other ideas. I wanted to see how French named-entity recognition performed compared to English, when applied to The Baby-Sitters Club.

What’s named-entity recognition?#

Named-entity recognition (often abbreviated NER) is a kind of information extraction task – basically, trying to identify particular things (like names of people, places, and organizations) in unstructured text, like a novel. (Yeah, I know that novels have structure, but your average plain-text file of a novel’s text – even if it maintains chapter headers and such – doesn’t have the kind of structure that a computer can easily read. I mean, it’s not like it’s a spreadsheet or something.) There are two major technical approaches: one uses grammar-based rules to identify the things of interest, and the other uses statistical models like machine learning, and requires a ton of labeled data (e.g. texts where a human has already gone through and correctly identified all the things of interest) upfront. Particularly for statistical models, the more your texts resemble the example texts that the model was trained on, the better the NER will perform. These models are most commonly trained on news corpora, or Wikipedia – not 80’s and 90’s girls’ literature. This sort of thing is a problem in DH more broadly, not just for us Data-Sitters. David Bamman’s LitBank project (a dataset of annotated excerpts from public domain literature) is one example of how DH scholars can significantly improve the effectiveness of natural-language processing (NLP) by training models on data that looks more like what we’re trying to apply it to. But I’ll save the question of how, exactly, one goes about training a model for a future Data-Sitters Club Multilingual Mystery. For the moment, let’s see how some commonly-used tools perform “out of the box”.

The tools#

The two major NLP tools with multilingual coverage are spaCy and Stanford NLP. To use spaCy, you load it into Python and run it that way. While there’s a Python version of Stanford NLP, as of February 2020 it doesn’t cover everything – and entities are one thing that’s currently left out. To get entities with Stanford NLP, you have to run a memory-hungry Java program from the command line, with all the joy that comes from setting that up. To make matters worse, Stanford NLP doesn’t have an NER model for French: just English, Spanish, German, and Chinese. It’s a better comparison to look at English vs. French with the same tool, rather than English with one and French with the other, so for this mystery, we’ll be using spaCy.

The texts#

To make it easier to compare the entities from each text, I split up each translation plus the English original into 15 plain text files, one from every chapter. Everything else I left as I got it from ABBYY FineReader (as discussed in DSC #2: Katia and the Phantom Corpus), plus the corrections to my (often bad) attempt to transcribe the “handwritten text” portions. I didn’t appreciate some implications of that – I’ll get back to it in a bit.

Getting started with spaCy#

SpaCy is run via Python, so it can seem a little intimidating if you’ve never worked with a programming language before. For this mystery, I set up a Jupyter notebook in the Data-Sitters Club GitHub repo that you can download and use for your own texts. (If you’re not familiar with Jupyter notebooks, here’s a Programming Historian tutorial.)

You can’t run the exact same experiment I did without access to the same texts I have (which I can’t share for copyright reasons), but the Jupyter notebook on GitHub has all the output I got running it on the Baby-Sitters Club corpus, so you can see the results of the process one step at a time.

1. Downloading spaCy models#

The first step is to download the spaCy models; this notebook has been updated for spaCy 3. These models have been pre-trained on annotated French and English corpora, respectively. You only have to run these code cells below the first time you run the notebook; after that, you can skip right to step 2 and carry on from there. (If you run them again later, nothing bad will happen; it’ll just download again.) You can also run spaCy in other notebooks on your computer in the future, and you’ll be able to skip the step of downloading the models.

#Imports the module you need to download and install the spaCy French and English models
import sys
#Installs the French spaCy model
!{sys.executable} -m spacy download fr_core_news_sm
#Installs the English spaCy model
!{sys.executable} -m spacy download en_core_web_sm

2. Importing spaCy and setting up NLP#

Run the code cell below to import the spaCy module, and create two functions: one which loads the French model and runs the NLP algorithms ( includes named-entity recognition), and one which does the same for the English.

#Imports spaCy
import spacy
#Imports the French model
import fr_core_news_sm
#Sets up a function so you can run the French model on texts
frnlp = fr_core_news_sm.load()
#Imports the English model
import en_core_web_sm
#Sets up a function so you can run the English model on texts
ennlp = en_core_web_sm.load()

3. Importing other modules#

There’s various other modules that will be useful in this notebook. The code comments explain what each one is for. This code cell imports all of those.

#io is used for opening and writing files
import io
#glob is used to find all the pathnames matching a specified pattern (here, all text files)
import glob
#os is used to navigate your folder directories (e.g. change folders to where you files are stored)
import os

4. Diretory setup#

Assuming you’re running Jupyter Notebook from your computer’s home directory, this code cell gives you the opportunity to change directories, into the directory where you’re keeping your French text files. (This notebook is designed to deal with one language at a time, and assumes your French text files are in one folder, and English are in another.)

Replace /Users/qad/Documents/dsc/dscm2 with the full path to the directory with your files.

For instance, the default path to the Documents directory is (substituting your user name on the computer for YOUR-USER-NAME):

  • On Mac: ‘/Users/YOUR-USER-NAME/Documents’

  • On Windows: ‘C:\Users\YOUR-USER-NAME\Documents’

#Define the file directory here
filedirectory = '/Users/qad/Documents/dsc/dscm2'
#Change the working directory to the one you just defined
os.chdir(filedirectory)

Running spaCy#

5. French NER, first try#

The code cell in step 5 in the Jupyter notebook iterates through the files in the folder you specified up in step 4, after sorting them alphabetically. For every file that ends in .txt (an important limitation – you’ll get an error if you try to have Python open a file that isn’t a text file, including those pesky invisible .DS_STORE files in just about every Mac folder), the code defines an output file name that involves appending ‘_ner_per.txt’ to the end of the input filename.

Opening the input file (i.e. each file in turn, one at a time) and the newly-created, empty output file, the code reads in the text of the input file, and runs the spaCy French NLP. Then, for every word recognized as an entity, as long as it’s an entity labeled ‘PER’ (a person), the entity is written to the screen (with a print command) and to the output file. I thought it’d be easiest to work through the entities one type at a time, starting just with the character names.
I wrote this code, a couple times pulling up previous notebooks I’d written that did similar things, and consulting the spaCy documentation and examples for how to display the entities.

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(filedirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('fr.txt'):
            #Write out below the name of the file
            print(filename)
            #The file name of the output file adds _ner_per to the end of the file name of the input file
            outfilename = filename.replace('.txt', '_ner_per.txt')
            #Open the input filename
            with open(filename, 'r') as f:
                #Create and open the output filename
                with open(outfilename, 'w') as out:
                    #Read the contents of the input file
                    chaptertext = f.read()
                    #Do French NLP on the contents of the input file
                    chapterner = frnlp(chaptertext)
                    #For each recognized entity
                    for ent in chapterner.ents:
                        #If that entity is labeled as a person
                        if ent.label_ == 'PER':
                            #Print the entity, and the label (which should be PER)
                            print(ent.text, ent.label_)
                            #Write the entity to the output file
                            out.write(ent.text)
                            #Write a newline character to the output file
                            out.write('\n')
            
016_01_bg_fr.txt
maman PER
Roseline PER
Victor PER
Gringalet PER
Justine Victoire PER
Johanna PER
Mes PER
Marjorie Levêque PER
Johanna PER
Marjorie PER
maman PER
Roseline PER
Roseline PER
Gringalet PER
Justine PER
Coppélia PER
Roseline PER
Coppélius PER
Franz PER
Roseline PER
continuai-je PER
Franz PER
Franz PER
Coppélia PER
Franz PER
Roseline PER
Maman PER
Merci PER
madame Dillon PER
Roseline PER
Roseline PER
Maman PER
Roseline PER
Pense PER
Roseline PER
Roseline PER
016_01_frmod_fr.txt
Stonebrook PER
maman PER
Oakley PER
Oakley PER
John Philip Ramsey Junior PER
Jessica Ramsey PER
Oakley PER
Keisha PER
Mes PER
Mallory Pike PER
Mallory PER
Bon PER
Oakley PER
mama PER
« baba PER
Jessica PER
Stamford PER
Oakley PER
Coppélius PER
Franz PER
Franz PER
Franz PER
Coppélia PER
Coppélius PER
Franz PER
Maman PER
Merci PER
Mme Noelle PER
Maman PER
maman PER
016_01_qu_fr.txt
maman PER
Oakley PER
Oakley PER
Jean-Philippe PER
Jessica Raymond PER
Jaja PER
Oakley PER
Blancs PER
de Noirs PER
Kara PER
Mes PER
Oakley PER
Marjorie Picard PER
Kara PER
Marjorie PER
Jaja PER
Jaja PER
Jaja PER
Oakley PER
Coppélia PER
Franz PER
Franz PER
Franz PER
-        Merci PER
016_02_bg_fr.txt
Marjorie Levêque PER
Marjorie PER
Valérie PER
Valérie PER
Marjorie PER
Sébastien PER
Madame Demoulin PER
Valérie PER
Mélanie Moreau PER
Julie Kishi PER
Sophie Lambert PER
Sophie PER
Carole Leroy PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Stéphane PER
Sébastien PER
Yvan Arnould PER
Coralie PER
Arnaud PER
Valérie PER
Julie Kishi PER
Mélanie PER
Yvan PER
Demoulin PER
Valérie PER
Valérie PER
Julie PER
Julie Kishi PER
Julie PER
Marjorie PER
Julie PER
Julie PER
Marjorie PER
Julie PER
Laurence PER
Julie PER
Mimi PER
Mélanie Moreau PER
Carole PER
Mélanie PER
Valérie PER
Valérie PER
Mélanie PER
Valérie PER
Mélanie PER
Moreau PER
Sophie Lambert PER
Sophie PER
Valérie PER
Mélanie PER
Marjorie PER
Carole PER
Julie PER
David PER
David PER
Marjorie PER
Marjorie PER
Marjorie PER
Marjorie PER
Bruno Lejeune PER
Mélanie PER
Cécile Gauthier PER
Valérie PER
Marjorie PER
Valérie PER
Valérie PER
Julie PER
Mélanie PER
Marjorie PER
Valérie PER
Valérie raccrocha PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mélanie PER
Julie PER
Valérie PER
Marjorie PER
Marjorie PER
Garder PER
Marjorie PER
Justine PER
016_02_frmod_fr.txt
Mallory Pike PER
Mallory PER
Mallory PER
David Michael PER
Mme Parker PER
Mary Anne Cook PER
Claudia Koshi PER
Lucy MacDouglas PER
Mallory PER
Carla Schafer PER
Claudia PER
Mary Anne PER
Carla PER
Mallory PER
Samuel PER
Charlie PER
David Michael PER
Jim Lelland PER
Karen PER
Claudia Koshi PER
Claudia PER
Mary Anne PER
Jim PER
Parker PER
Jim PER
Jim PER
Samuel PER
Claudia PER
Mary Anne PER
Claudia PER
Mallory PER
Claudia PER
Claudia PER
Mallory PER
Claudia PER
Mallory PER
Mary Anne PER
Claudia PER
Mallory PER
Claudia PER
Jane PER
Claudia PER
Claudia PER
Mimi PER
Mary Anne PER
Carla PER
Mary Anne PER
Mary Anne PER
Mary Anne PER
Claudia PER
Mary Anne PER
M. Cook PER
Lucy MacDouglas PER
Ramsey PER
Carla Schafer PER
Carla PER
Mary Anne PER
Carla PER
Claudia PER
David PER
David PER
Mallory PER
Mallory PER
Mallory PER
Logan Rinaldi PER
Mary Anne PER
Louisa Kilbourne PER
Mallory PER
Mme Braddock PER
Helen PER
Mme Braddock PER
Mary PER
Anne PER
Claudia PER
Mallory PER
Mallory PER
Garder PER
Mallory PER
Jessica PER
016_02_qu_fr.txt
Christine Thomas PER
Soulagée PER
Marjorie Picard PER
Christine Thomas PER
Marjorie PER
David PER
Sophie Ménard PER
Anne-Marie Lapierre PER
Claudia Kishi PER
Sophie PER
Marjorie PER
Diane Dubreuil PER
Claudia PER
Anne-Marie PER
Diane PER
Marjorie PER
Charles PER
Sébastien PER
David PER
Guillaume PER
Karen PER
Claudia PER
Anne-Marie PER
Guillaume PER
Guillaume PER
Charles PER
Anne-Marie PER
Claudia Kishi PER
Marjo PER
Marjo PER
Claudia PER
Claudia PER
Claudia PER
Marjorie PER
Claudia PER
Marjorie PER
Anne-Marie PER
Claudia PER
Claudia PER
Josée PER
Claudia PER
Mimi PER
Anne-Marie Lapierre PER
Diane PER
Anne-Marie PER
Anne-Marie PER
Claudia PER
Monsieur PER
Lapierre PER
Sophie Ménard PER
Diane PER
Diane PER
Anne-Marie PER
Marjorie PER
Diane PER
Julien PER
Julien PER
Diane PER
Marjorie PER
Marjorie PER
Marjorie PER
Louis Brunet PER
Anne-Marie PER
Chantal Chrétien PER
Diane PER
Marjorie PER
Claudia PER
Anne-Marie PER
Diane PER
Marjorie PER
-        Allô PER
madame Biron PER
Matthieu PER
Madame Biron PER
Matthieu PER
Madame Biron PER
Diane PER
Anne-Marie PER
Claudia PER
Marjorie PER
Popote Roulante PER
madame Biron PER
Marjorie PER
-        Bonne PER
-        Merci PER
016_03_bg_fr.txt
Jacqué PER
Pliez PER
madame Dillon PER
madame Dillon PER
Coppélia PER
Maman PER
Madame Dillon PER
Hélène PER
Catherine PER
Hélène PER
Catherine PER
Victor PER
Mademoiselle Victor PER
Victoire PER
madame Dillon PER
Catherine PER
Madame Dillon PER
Hélène PER
Catherine PER
Madame Dillon PER
Madame Dillon PER
Hélène PER
Catherine PER
madame Dillon PER
Madame Dillon PER
Marie Bernstein PER
Lise Jacqué PER
Carine Schmitt PER
Hélène PER
Catherine PER
Coppélia PER
Madame Dillon PER
Hélène PER
Catherine PER
Coppélia PER
Noirs PER
Dillon PER
Justine Victor PER
Dillon PER
Justine Victor PER
Justine Victoire PER
Justine PER
Justine PER
madame Dillon PER
jean PER
Félicitations PER
Justine PER
Marie Bernstein PER
Lise Jacqué PER
Félicitations PER
Justine PER
Marie PER
Lise PER
Hélène PER
Catherine PER
Coppélia PER
Catherine PER
Catherine PER
Coppélia PER
Catherine PER
Hélène PER
Hélène PER
Catherine PER
madame Dillon PER
Catherine PER
Hélène PER
Avais-je PER
madame Dillon PER
016_03_frmod_fr.txt
Jones PER
Pliez PER
Mme Noelle PER
Mme Noelle PER
Coppélia PER
Maman PER
Mme Noelle PER
Romsey PER
Mlle Romsey PER
Ramsey PER
Mme Noelle PER
Mme Noelle PER
Mme Noelle PER
Sachant PER
Mme Noelle PER
Mme Noelle PER
Mary Bramstedt PER
Lisa Jones PER
Carrie Steinfeld PER
Coppélia PER
Mme Noelle PER
Coppélia PER
Mme Noelle PER
Mlle Jessica Romsey PER
Jessica Romsey PER
Jessica Ramsey PER
Jessica PER
Jessica PER
Mme Noelle PER
jean PER
Jessica PER
Mary Bramstedt PER
Lisa Jones PER
Jessica PER
Mary PER
Coppélia PER
Mme Noelle PER
acquiescé Katie PER
Avais-je PER
Mme Noelle PER
016_03_qu_fr.txt
Marcil PER
Pliez PER
Mademoiselle PER
Mes PER
Mademoiselle Noëlle PER
Catherine PER
Raymond! PER
Mademoiselle Raymond PER
Catherine PER
Élizabeth PER
Mademoiselle PER
Catherine PER
Catherine PER
Mademoiselle PER
Marie Brazeau PER
Lise Jordan PER
Carole St-Onge PER
Catherine PER
Élizabeth PER
Catherine PER
Jessica Raymond PER
Jessica Raymond PER
Jessica PER
Jessica PER
jean PER
-        Félicitations PER
Marie PER
Lise PER
-        Merci PER
-        Félicitations PER
Marie PER
Lise PER
Catherine PER
-        Félicitations PER
Coppélia PER
Élizabeth PER
Coppélia PER
Catherine PER
Catherine PER
016_04_bg_fr.txt
Gringalet PER
madame Dillon PER
madame Dillon PER
Hélène PER
Catherine PER
Mathieu Brinbeuf PER
Mathieu PER
Agnès PER
Justine PER
Agnès PER
madame Brinbeuf PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Justine PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Roseline PER
madame Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Justine PER
Mathieu PER
Madame Brinbeuf PER
M PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Demande PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
madame Brinbeuf PER
Madame Brinbeuf PER
016_04_frmod_fr.txt
Coppélia PER
Stamford PER
Mme Noelle PER
Voilà PER
Matthew Braddock PER
Helen PER
Jessica PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Matthew grandira PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Matthew PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
016_04_qu_fr.txt
Jaja PER
-         PER
mademoiselle Noëlle PER
-        Merci PER
Catherine PER
madame Biron PER
Matthieu PER
Matthieu PER
Lundi PER
Jessica PER
Hélène PER
Marjorie PER
Gougeon PER
madame Biron PER
madame Biron PER
Matthieu PER
Hélène PER
madame Biron PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Madame Biron PER
Hélène PER
-        Oh PER
-         PER
Biron PER
Matthieu PER
Biron PER
Matthieu PER
madame Biron PER
Madame Biron PER
Matthieu PER
madame Biron PER
Matthieu PER
M PER
Matthieu PER
H PER
Madame Biron PER
Hélène PER
Biron PER
Madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
-         PER
Hélène PER
Matthieu PER
madame Biron PER
Madame Biron PER
016_05_bg_fr.txt
Mercredi PER
Aurélie PER
Justine PER
Aurélie PER
Mélanie Moreau PER
Aurélie Precisio PER
Mélanie PER
Mélanie PER
Madame Precisio PER
Mélanie PER
Aurélie PER
Roseline PER
Roseline PER
Aurélie PER
Aurélie PER
Aurélie PER
Madame Precisio PER
Mélanie PER
Aurélie PER
Termine PER
Aurélie PER
Mélanie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Mélanie PER
Aurélie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Aurélie PER
Aurélie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mathieu PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Mélanie PER
Agnès PER
Mathieu PER
Aurélie PER
Agnès PER
Mathieu PER
Aurélie PER
Mathieu PER
Mathieu PER
Agnès PER
Aurélie PER
Mathieu PER
Aurélie PER
Aurélie PER
Agnès PER
Mathieu PER
Aurélie PER
Agnès PER
Agnès PER
Justine PER
Mélanie PER
Agnès PER
Mathieu PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
016_05_frmod_fr.txt
Mercredi



Bon PER
Jenny PER
Jessica PER
Jenny PER
Mary Anne Cook PER
Jenny Prezzioso PER
Mary Anne PER
Jenny PER
Mary PER
Mme Prezzioso PER
Jenny PER
Jenny PER
Jenny PER
Mme Prezzioso PER
Mary Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Mary Anne PER
Jenny PER
Mary PER
Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Jenny PER
Mary Anne PER
Mme Braddock PER
Mary Anne PER
Helen PER
Jenny PER
Jenny PER
Helen PER
Jenny PER
Mary Anne PER
Helen PER
Helen PER
Jessica PER
Mary Anne PER
Helen PER
Évidemment PER
016_05_qu_fr.txt
Mercredi PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Jeanne Prieur PER
Anne-Marie PER
Jeanne PER
madame Prieur PER
Jeanne PER
Connaissez PER
Jeanne PER
Jeanne PER
Jeanne PER
madame Prieur PER
Anne-Marie PER
Jeanne PER
Jeanne PER
-        Je mange PER
Jeanne PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Matthieu PER
madame Biron PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Hélène PER
Jeanne PER
Jeanne PER
Matthieu PER
Matthieu PER
Hélène PER
Jeanne PER
Jeanne PER
Jeanne PER
Matthieu PER
Jeanne PER
Anne-Marie PER
Hélène PER
Anne-Marie PER
Hélène PER
Matthieu PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
016_06_bg_fr.txt
Agnès PER
Mathieu PER
Coppélia PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
madame
Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
Madame Brinbeuf PER
madame Brinbeuf PER
V PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Agnès PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Agnès PER
Justine PER
Madame Brinbeuf PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Agnès PER
Mélanie PER
Aurélie Precisio PER
Agnès PER
Mathieu PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
Marjorie PER
Antoine PER
Elodie PER
Agnès PER
Mathieu PER
Marjorie PER
madame Levêque PER
Agnès PER
Marjorie PER
Mathieu PER
Marjorie PER
Laurent PER
Vanessa PER
Agnès PER
Juliette PER
Mathieu PER
Juliette PER
Agnès PER
Juliette PER
Mathieu PER
Agnès PER
Mathieu PER
Antoine Godefroid PER
Agnès PER
Mathieu PER
Antoine PER
Mathieu PER
Marjorie PER
Tes PER
Marjorie PER
Marjorie PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
016_06_frmod_fr.txt
Coppélia PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
madame Braddock PER
Helen PER
Helen PER
Mme Braddock PER
Jessica PER
Helen PER
Mme Braddock PER
Mary Anne PER
Jenny Prezzioso PER
Helen PER
Charlotte Johanssen PER
Helen PER
Helen PER
Helen PER
Mallory PER
Barrett PER
Buddy PER
Barrett PER
Helen PER
Mallory PER
Matthew PER
Margot PER
Mallory PER
Helen PER
Claire PER
Buddy Barrett PER
Helen PER
Buddy PER
Mallory PER
Tes PER
Mme Braddock PER
Helen PER
016_06_qu_fr.txt
Coppélia PER
Matthieu PER
Matthieu PER
Matthieu PER
madame Biron PER
-        Sois PER
Matthieu PER
autos PER
Madame Biron PER
Biron PER
V PER
madame Biron PER
Matthieu PER
Hélène PER
Biron PER
Matthieu PER
madame Biron PER
madame Biron PER
Matthieu PER
Matthieu PER
madame Biron PER
Matthieu PER
Jeanne Prieur PER
Matthieu PER
Hélène PER
Charlotte PER
Picard PER
Matthieu PER
Hélène PER
Hélène PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
Matthieu PER
Marjorie PER
Matthieu PER
Marjorie PER
Picard PER
Hélène PER
Matthieu PER
Margot PER
Marjorie PER
-        Imaginez PER
Vanessa PER
Hélène PER
Matthieu PER
Claire PER
Picard PER
Claire PER
Hélène PER
Hélène PER
Bruno Barrette PER
Hélène PER
Bruno PER
Matthieu PER
-        Que PER
Marjorie PER
Marjorie PER
madame Biron PER
Hélène PER
Matthieu PER
016_07_bg_fr.txt
Justine PER
Marjorie PER
---
Bon PER
Justine PER
Majorie PER
Monsieur PER
madame Levêque PER
Marjorie PER
Carole PER
Marjorie PER
Alain PER
Loïc PER
Samuel PER
Laurent PER
Anaïs PER
Juliette PER
madame Levêque PER
madame Levêque PER
madame Levêque PER
Marjorie PER
Carole PER
madame Levêque PER
Vanessa PER
Anaïs PER
Juliette PER
Marjorie PER
Carole PER
Alain PER
Alain PER
Juliette PER
Alain PER
Alain PER
Marjorie PER
Loïc PER
Samuel PER
Carole PER
Marjorie PER
Marjorie PER
Alain PER
Marjorie PER
Carole PER
Marjorie PER
Carole PER
Laurent PER
Marjorie PER
Laurent PER
Marjorie PER
Carole PER
Anaïs PER
Anaïs PER
Carole PER
Samuel PER
Marjorie PER
Anaïs PER
Vanessa PER
Alain PER
Anaïs PER
Anaïs PER
Anaïs PER
Laurent PER
Carole PER
Marjorie PER
Laurent PER
Carole PER
Marjorie PER
Vanessa PER
Laurent PER
Samuel PER
Juliette PER
Carole PER
Marjorie PER
Marjorie PER
Anaïs PER
Vanessa PER
Marjorie PER
Carole PER
Marjorie PER
Carole PER
Marjorie PER
Agnès PER
Mathieu PER
Marjorie PER
Mathieu PER
Marjorie PER
Mathieu PER
Agnès PER
Agnès PER
016_07_frmod_fr.txt
Jessica PER
Mallory PER
Carla PER
Mallory PER
Mallory PER
Mme Pike PER
Byron PER
Adam PER
Jordan PER
Claire PER
M. PER
Mme Pike PER
Mme Pike PER
Mallory PER
Claire PER
Mallory PER
Adam PER
Adam PER
Jordan PER
Claire PER
Adam PER
Adam PER
Mallory PER
Byron PER
Jordan PER
Carla PER
Mallory PER
Adam PER
Mallory PER
Carla PER
Carla PER
Mallory PER
Carla PER
Byron PER
gémi Margot PER
Vanessa PER
Adam PER
Margot PER
hein PER
Margot PER
Moui PER
Carla PER
Mallory PER
Mallory PER
Jordan PER
Claire PER
Carla PER
Mallory PER
Jordan PER
Mallory PER
Mallory PER
Mallory PER
Mallory PER
Helen PER
Helen PER
016_07_qu_fr.txt
Marjorie PER
---
Bon PER
Picard PER
---
Bon PER
Diane PER
Monsieur PER
madame Picard PER
Diane PER
Marjorie PER
Picard PER
Antoine PER
Claire PER
Diane PER
madame Picard PER
madame Picard PER
Marjorie PER
Diane PER
Marjorie PER
Diane PER
Picard PER
Diane PER
Antoine PER
Antoine PER
Claire PER
Antoine PER
Antoine PER
Marjorie PER
-        Hé! PER
Antoine PER
Donne PER
Diane PER
Antoine PER
Marjorie PER
Marjorie PER
Antoine PER
Diane PER
Marjorie PER
Marjorie PER
Diane PER
Diane PER
hurle Margot PER
Vanessa PER
Antoine PER
Margot PER
Diane PER
Marjorie PER
Diane PER
Diane PER
Picard PER
Marjorie PER
Diane PER
Diane PER
Claire PER
Diane PER
Marjorie PER
Marjorie PER
Margot PER
-        Sorcière PER
Vanessa PER
Joël PER
Marjorie PER
Diane PER
Marjorie PER
Diane PER
-        Tu PER
Diane PER
Marjorie PER
Diane PER
Matthieu PER
Marjorie PER
Picard PER
Matthieu PER
Hélène PER
Hélène PER
016_08_bg_fr.txt
madame Dillon PER
Mademoiselle Perron PER
Mademoiselle Bersnstein PER
Victor PER
Prochaine PER
madame Dillon PER
Catherine PER
Hélène PER
Catherine PER
Catherine PER
Catherine PER
Catherine PER
Agnès PER
Catherine PER
Roseline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
madame Dillon PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Catherine PER
Roseline PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Mathieu PER
Mathieu PER
Adeline PER
Mathieu PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Regarde PER
Adeline PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Adeline PER
Catherine PER
Johanna PER
Marjorie PER
Justine PER
Arnaud PER
Valérie PER
Valérie PER
Stéphane PER
Coralie PER
016_08_frmod_fr.txt
Mme Noelle PER
Mademoiselle Bramstedt PER
Romsey PER
Prochaine PER
Mme Noelle PER
Adèle PER
Adèle PER
Mme Noelle PER
Mes PER
Essaie PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Regarde PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
016_08_qu_fr.txt
Répétition PER
Noëlle PER
Mademoiselle Croteau PER
Marie PER
Mademoiselle Raymond PER
Soulagée PER
Élizabeth PER
Catherine PER
-        Bon PER
Catherine PER
Élizabeth PER
Hélène PER
Adèle PER
-        Bonjour PER
Adèle PER
Adèle PER
mademoiselle Noëlle PER
Mes PER
Adèle PER
Adèle PER
Surprise PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Mes PER
Matthieu PER
Adèle PER
Matthieu PER
-        Tu sais PER
-        Que PER
Matthieu PER
Adèle PER
Regarde PER
Adèle PER
Adèle PER
Hélène PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Kara PER
Marjorie PER
016_09_bg_fr.txt
Justine PER
Coralie Arnaud PER
Valérie PER
Valérie PER
Stéphane PER
Coraline PER
Mathieu PER
Julie PER
Arnaud PER
Julie PER
Julie PER
Valérie PER
Julie PER
Julie sonna PER
Coralie PER
Yvan PER
Arnaud PER
Coralie PER
Arnaud PER
Rensonnet PER
Benoît Arnould PER
Arnaud PER
Coralie PER
Coralie PER
Arnaud PER
Valérie PER
Stéphane PER
Valérie PER
Julie PER
Valérie PER
Stéphane PER
Julie PER
Valérie PER
Coralie PER
Julie PER
Julie PER
Valérie PER
Arnaud PER
Monsieur Arnaud PER
Oh PER
Edith PER
Arnaud PER
madame Arnaud PER
Valérie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Coralie PER
Arnaud PER
madame Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Arnaud PER
Sébastien PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Julie PER
Arnaud PER
Coralie PER
Sébastien PER
Coralie PER
Julie PER
Julie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Sébastien PER
Julie PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Justine Victoire PER
Julie PER
Roseline PER
Julie PER
Julie PER
Marjorie PER
Coralie PER
Coralie PER
Julie PER
Coralie PER
Berk PER
Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Arnaud PER
Arnaud PER
Coralie PER
Julie PER
Julie PER
Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Julie PER
Julie PER
Mademoiselle Minet PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Justine PER
Arnaud PER
Julie PER
Coralie PER
Julie sourit PER
Arnaud PER
016_09_frmod_fr.txt
Jessica PER
Karen PER
David Michael PER
Samuel PER
Charlie PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Jim PER
Karen PER
Karen PER
Mme Porter PER
Ben Lelland PER
Karen PER
Claudia PER
Karen PER
David Michael PER
Charlie PER
Samuel PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Mme Lelland PER
Jim PER
Edith PER
Karen PER
Mme Lelland PER
Claudia PER
Karen PER
David Michael PER
Karen PER
Claudia PER
Karen PER
David Michael PER
Mme Lelland PER
Claudia PER
Papadakis PER
Karen PER
Claudia PER
Andrew PER
David Michael PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Lego PER
Karen PER
David Michael PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Andrew PER
David Michael PER
Karen PER
David Michael PER
Claudia PER
Karen PER
Jessica Ramsey PER
Claudia PER
Claudia PER
Claudia PER
Mallory PER
Karen PER
Karen PER
Raconter PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Tickly PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Jessica PER
Claudia PER
Karen PER
Claudia PER
David Michael PER
016_09_qu_fr.txt
Karen PER
Sébastien PER
Charles PER
Karen PER
Matthieu PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Karen PER
madame Portai PER
Destinée Morbide PER
Ben PER
Karen PER
Claudia PER
Karen PER
Karen PER
-        Salut! PER
Karen PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Claudia PER
madame Marchand PER
Guillaume PER
Karen PER
Karen PER
David PER
Karen PER
Claudia PER
Guillaume PER
Papadakis PER
Karen PER
Claudia PER
David PER
Claudia PER
David PER
Karen PER
Claudia PER
Lego PER
Claudia PER
David PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
David PER
-         PER
Karen PER
David PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Jessie Raymond PER
Claudia PER
Claudia PER
Marjorie PER
Karen PER
Karen PER
Mimer PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
madame PER
Karen PER
Claudia PER
-        Honnêtement PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Karen PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
David PER
Claudia PER
016_10_bg_fr.txt
Mathieu PER
Agnès PER
madame Brinbeuf PER
Agnès PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Aurélie Precisio PER
Mathieu PER
Vanessa Levêque PER
Vanessa PER
Agnès PER
Laurent PER
Mathieu PER
Antoine Godefroid PER
Agnès PER
Mathieu PER
Mathieu PER
Antoine Godefroid PER
Mathieu PER
Agnès PER
Laurent PER
Agnès PER
Agnès PER
Antoine PER
Laurent PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
maman PER
Gringalet PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Mathieu PER
Laurent PER
Alain PER
Agnès PER
Justine PER
Agnès PER
Roseline PER
Roseline PER
Roseline PER
Roseline PER
Agnès PER
Aubrives PER
Regarde PER
Agnès PER
Mathieu PER
Mathieu PER
Roseline PER
maman PER
Roseline PER
Roseline PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Adeline PER
madame Dillon PER
madame Dillon PER
Agnès PER
madame Dillon PER
016_10_frmod_fr.txt
Braddock PER
Mme Braddock PER
Helen PER
Mme Braddock PER
Jenny Prezzioso PER
Vanessa Pike PER
Vanessa PER
Helen PER
Buddy Barrett PER
Helen PER
Buddy Barrett PER
Helen PER
Buddy PER
Jordan PER
Helen PER
ai-je répondu PER
Matthew PER
Helen PER
maman PER
Helen PER
Byron PER
Helen PER
Jessica PER
Helen PER
Stonebrook PER
Stamford PER
Regarde PER
H PER
maman PER
Helen Keller PER
Matthew PER
Helen PER
Adèle PER
Mme Noelle PER
Mme Noelle PER
016_10_qu_fr.txt
Madame Biron PER
Hélène PER
Madame Biron PER
Matthieu PER
Matthieu PER
Jeanne Prieur PER
Matthieu PER
Matthieu PER
Vanessa PER
Vanessa PER
Bruno Barrette PER
Hélène PER
Matthieu PER
Bruno Barrette PER
Matthieu PER
Hélène PER
Hélène PER
Bruno PER
Matthieu PER
Matthieu PER
Hélène PER
Hélène sourit PER
Matthieu PER
Sinon PER
-        Ah PER
Hélène PER
Matthieu PER
Hélène PER
Matthieu PER
Hélène PER
maman PER
Jaja PER
Matthieu PER
Regarde Matthieu PER
Matthieu PER
Matthieu PER
Hélène PER
Jaja PER
Jaja PER
Hélène PER
Regarde PER
H gravé dessus PER
Matthieu PER
Matthieu PER
maman PER
Jaja PER
Ga-zi PER
Hélène PER
Matthieu PER
Hélène PER
Helen Keller PER
Hélène PER
Adèle PER
Noëlle PER
mademoiselle Noëlle PER
016_11_bg_fr.txt
madame Dillon PER
madame Brinbeuf PER
Julie PER
Mes PER
madame Dillon PER
Valérie PER
Marjorie PER
Valérie PER
Marjorie PER
Marjorie PER
Julie PER
Julie PER
Valérie PER
Marjorie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Marjorie PER
Valérie PER
Mélanie PER
Valérie PER
Mélanie PER
Valérie PER
Justine PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Julie PER
Valérie PER
J PER
Carole décrocha PER
Bruno PER
Bruno PER
Mélanie PER
Mélanie PER
Bruno PER
Justine PER
taquina Julie PER
Mélanie PER
Valérie PER
Avez PER
Mélanie PER
Bruno PER
Mélanie PER
Savez PER
Valérie PER
maman PER
Valérie acquiesça PER
Julie PER
Carole PER
Valérie PER
Marjorie PER
Julie PER
Marjorie PER
Allô PER
Marjorie PER
Bonjour madame Brinbeuf PER
Marjorie PER
Mathieu PER
Vas-tu PER
Valérie PER
Mélanie PER
Marjorie PER
Aller PER
016_11_frmod_fr.txt
Mme Noelle PER
Mme Braddock PER
Claudia PER
Mes PER
Mme Noelle PER
Mallory PER
Mary Anne PER
Carla PER
Claudia PER
Mallory PER
Mallory PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
Samuel PER
Claudia PER
Mallory PER
Mary Anne PER
Jessica PER
Helen PER
Claudia PER
Braddock PER
J PER
Carla PER
Mary Anne PER
Mary Anne PER
Mary Anne PER
Logan PER
Jessica PER
Claudia PER
Mary Anne PER
Carla PER
Mary Anne PER
Logan PER
Mary Anne PER
Claudia PER
Samuel PER
Claudia PER
Mallory PER
madame Braddock PER
Mallory PER
Oh PER
Mary Anne PER
Mallory PER
Stamford PER
016_11_qu_fr.txt
madame Biron PER
Claudia PER
Marjorie PER
Anne-Marie PER
Claudia PER
Diane PER
Marjorie PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
-        Un PER
Claudia PER
-        Un PER
Claudia PER
Diane PER
Christine
 PER
Charles PER
-         PER
Charles PER
Trousses PER
Diane PER
Claudia PER
Diane PER
Anne-Marie PER
Matthieu PER
Hélène PER
Matthieu PER
Anne-Marie PER
Christine PER
Claudia PER
Marjorie PER
Diane PER
Claudia PER
Matthieu PER
Anne-Marie PER
Claudia PER
Louis PER
Louis PER
Anne-Marie PER
Anne-Marie PER
-        Louis PER
Claudia PER
Anne-Marie PER
Diane PER
Diane PER
Anne-Marie PER
Avez PER
Diane PER
Louis PER
Anne-Marie PER
-        Savez PER
-        Un bébé PER
Claudia PER
Charles PER
Diane PER
Dring PER
Marjorie PER
Claudia PER
Marjorie PER
-        Allô PER
-        Oh PER
madame Biron PER
Marjorie PER
-        Pourquoi PER
Marjorie PER
Cappella PER
-         PER
Aller PER
016_12_bg_fr.txt
madame Brinbeuf PER
Madame Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Justine PER
Mathieu PER
Madame Brinbeuf PER
Mathieu PER
Bonjour madame Brinbeuf PER
Justine PER
Franck PER
Mathieu PER
Merci PER
madame Brinbeuf PER
madame Brinbeuf PER
Franck PER
Mathieu PER
Madame Franck PER
Madame Brinbeuf PER
Franck PER
Franck PER
Madame Franck PER
Franck PER
Justine Victoire PER
Mathieu PER
Franck PER
Madame Franck PER
Justine PER
Mathieu Brinbeuf PER
Franck PER
madame Brinbeuf PER
Mathieu PER
Madame Franck PER
Coppélia PER
Mathieu PER
Vendredi PER
Franck PER
Madame Franck PER
Franck PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
016_12_frmod_fr.txt
maman PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Mme Braddock PER
madame Braddock PER
Jessica PER
Mme Franck PER
Mme Braddock PER
Mme Franck PER
Jessica Ramsey PER
Mme Franck PER
Matthew Braddock PER
Mme Franck PER
Mme Braddock PER
Mme Franck PER
Coppélia PER
Mme Franck PER
Mme Franck PER
Mme Braddock PER
Jessica PER
016_12_qu_fr.txt
Ma mère PER
madame Biron PER
madame Biron PER
Madame Biron PER
madame Biron PER
Matthieu PER
madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
-         PER
professeur de PER
Matthieu PER
Madame Biron PER
madame Biron PER
madame Biron PER
Madame Biron PER
Madame Biron PER
Raymond PER
Matthieu Biron PER
Matthieu PER
Coppélia PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
016_13_bg_fr.txt
Mercredi PER
Justine PER
Gringalet PER
Roseline PER
Justine PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Charlotte PER
Valérie PER
Roseline PER
Sophie Lambert PER
maman PER
Gringalet PER
Roseline PER
Roseline PER
Roseline PER
Roseline PER
Gringalet PER
Valérie PER
Viens PER
Roseline PER
Roseline PER
Valérie PER
Gringalet PER
Roseline PER
Roseline PER
Hé PER
Roseline PER
Valérie PER
Roseline PER
Gringalet PER
Roseline PER
Valérie habilla Gringalet PER
Gringalet PER
Roseline PER
Valérie PER
Valérie PER
Roseline PER
Valérie PER
Valérie PER
Roseline PER
Roseline PER
Valérie PER
Mathieu PER
Roseline PER
Roseline PER
Ma mère PER
snobs PER
Japonaise PER
Valérie PER
Roseline PER
Charlotte PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Charlotte PER
Roseline PER
Charlotte PER
Sophie Lambert PER
Sophie PER
Roseline PER
Sophie PER
Charlotte PER
Roseline PER
Charlotte PER
Neuville PER
Roseline PER
Charlotte PER
Charlotte PER
Roseline PER
Charlotte PER
Valérie PER
Charlotte PER
Charlotte PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Justine PER
Valérie PER
Roseline PER
Valérie PER
Justine PER
Roseline PER
Charlotte PER
Gringalet PER
Valérie PER
Gringalet PER
Valérie PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Valérie PER
Charlotte PER
Roseline PER
Charlotte PER
Valérie PER
madame Brinbeuf PER
Valérie Demoulin PER
016_13_frmod_fr.txt
Mercredi



Salut PER
Jessica PER
Jessica PER
Charlotte PER
Lucy MacDouglas PER
maman PER
Stamford PER
maman PER
Viens PER
Ga PER
Stonebrook PER
Ma mère PER
snobs PER
Japonaise PER
Charlotte PER
Charlotte Johanssen PER
Ma PER
Charlotte PER
Lucy MacDouglas PER
Charlotte PER
Charlotte PER
Stonebrook PER
Charlotte PER
Charlotte PER
Charlotte PER
Jessica PER
Charlotte PER
Jessica PER
Jessica PER
Coppélia PER
Jessica PER
Charlotte PER
Charlotte PER
Jessica PER
Charlotte PER
Charlotte PER
Mme Braddock PER
Kristy Parker PER
016_13_qu_fr.txt
Mercredi
Salut PER
Charlotte Jasmin PER
Sophie PER
Maman PER
Oakley PER
Jaja PER
Jaja PER
-        Bonjour PER
Jaja PER
Jaja PER
Christine habille Jaja PER
Matthieu PER
Ma mère PER
snobs PER
-         PER
Charlotte Jasmin PER
Charlotte PER
Charlotte PER
Sophie PER
Sophie PER
Charlotte PER
Charlotte PER
Charlotte PER
Charlotte PER
Charlotte PER
Christinel PER
Charlotte PER
Polanski PER
Jaja PER
Jaja PER
Jaja PER
Polanski PER
-        Oh PER
Charlotte PER
madame Biron PER
Christine Thomas PER
016_14_bg_fr.txt
Coppélia PER
madame Brinbeuf PER
madame Dillon PER
Franck PER
Mathieu PER
Roseline PER
Charlotte PER
Valérie PER
Mathieu PER
Mélanie PER
Valérie PER
Roseline PER
Julie PER
Marjorie PER
Bruno Lejeune PER
Mélanie PER
Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Coppélius PER
madame Dillon PER
madame Dillon PER
Justine PER
madame Brinbeuf PER
Agnès PER
Agnès PER
Agnès PER
madame Brinbeuf PER
madame Brinbeuf PER
Madame Brinbeuf PER
Caroline Brinbeuf PER
Agnès PER
Agnès PER
Coppélia PER
Agnès PER
Agnès PER
Mathieu PER
Dillon PER
Catherine PER
madame Dillon PER
Catherine PER
Mathieu PER
Catherine PER
Mathieu PER
Maman PER
Adeline PER
Catherine PER
Agnès PER
madame Brinbeuf PER
Coppelius PER
Coppélius PER
Agnès PER
Agnès PER
madame Brinbeuf PER
madame Brinbeuf PER
Agnès PER
Christophe Gélin PER
Franz PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
Christophe PER
Mathieu PER
Adeline PER
Catherine PER
Catherine PER
Catherine PER
Adeline PER
Christophe PER
Catherine PER
Mathieu PER
Adeline PER
016_14_frmod_fr.txt
Mme Braddock PER
Mme Noelle PER
Mme Franck PER
Charlotte PER
Mary Anne PER
Mary Anne PER
Claudia PER
Mallory PER
Logan Rinaldi PER
Mary Anne PER
Braddock PER
Mme Braddock PER
Coppélius PER
Mme Noelle PER
Mme Braddock PER
Helen PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
Helen PER
Helen PER
Coppélia PER
Helen PER
Mme Noelle PER
Adèle PER
Maman PER
Adèle PER
Helen PER
Mme Braddock PER
Coppélius PER
Coppélius PER
Helen PER
Helen PER
Mme Braddock PER
Christopher Gerber PER
Franz PER
Christopher PER
Adèle PER
Oh PER
Adèle PER
Christopher PER
Adèle PER
016_14_qu_fr.txt
Matthieu PER
Charlotte PER
Louis Brunet PER
Jaja PER
Biron PER
Matthieu PER
Biron PER
Hélène PER
Coppélia PER
Noëlle PER
Noëlle PER
-        Bon PER
vas-y. PER
madame Biron PER
Hélène PER
Hélène PER
Hélène PER
madame Biron PER
-         PER
Madame Biron PER
Hélène PER
Hélène PER
Noëlle PER
Adèle PER
Matthieu PER
Matthieu PER
Mes PER
Adèle PER
-         PER
Franz PER
Hélène PER
Hélène PER
madame Biron PER
Christophe Baril PER
Franz PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Adèle PER
Matthieu PER
Oh PER
Élizabeth PER
-        Voici PER
Adèle PER
Christophe PER
Matthieu PER
Adèle PER
016_15_bg_fr.txt
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Justine PER
Catherine PER
Catherine PER
jean PER
Justine PER
Justine PER
Roseline PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Justine PER
Marjorie PER
Marjorie PER
Justine PER
Avais-je PER
Johanna PER
Johanna PER
Marjorie PER
Marjorie PER
Johanna PER
Marjorie PER
Johanna PER
Tes PER
Oh PER
Johanna PER
Johanna PER
Catherine PER
Adeline PER
Johanna PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Catherine PER
Johanna PER
Johanna PER
Marjorie PER
Justine PER
Marjorie PER
Marjorie PER
Johanna PER
Johanna PER
Marjorie PER
Johanna PER
Marjorie PER
Johanna PER
Justine PER
Johanna PER
Oh PER
Marjorie PER
Mathieu PER
Marjorie PER
Johanna PER
Maman PER
Mes PER
Catherine PER
Adeline PER
Johanna PER
Adeline PER
Mathieu PER
Catherine PER
Catherine PER
Johanna PER
Justine PER
madame Dillon PER
Franz PER
Catherine PER
sainte nitouche PER
Catherine PER
sainte nitouche PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Mathieu PER
Justine PER
Maman PER
Roseline PER
Johanna PER
Marjorie PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Agnès PER
Melba PER
Julie PER
Pêche Melba PER
Justine PER
Julie PER
Mélanie PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
016_15_frmod_fr.txt
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Jessica PER
Adèle PER
jean PER
Carla PER
Mary Anne PER
Mallory PER
Jessica PER
Mallory PER
Mallory PER
Keisha PER
Tes PER
Adèle PER
Mme Braddock PER
Mallory PER
Pardon PER
Mallory PER
Mallory PER
Mallory PER
Mallory PER
Maman PER
Katie PER
Adèle PER
Adèle PER
Adèle PER
Jessica PER
Mme Noelle PER
Franz PER
Bêbête PER
Adèle PER
Adèle PER
Matthew PER
Maman PER
Mary Anne PER
Claudia PER
M. PER
Mme Braddock PER
Charley PER
Helen PER
Claudia PER
Claudia PER
Jessica PER
Claudia PER
Claudia PER
Mary Anne PER
Helen PER
Helen PER
016_15_qu_fr.txt
Élizabeth PER
Adèle PER
tu sois PER
Adèle PER
Adèle PER
Élizabeth PER
Adèle PER
Élizabeth PER
Matthieu PER
Félicitations PER
Marjorie PER
-        Merci PER
Marjorie PER
Kara PER
Kara PER
Kara PER
Marjorie PER
Kara PER
Tes PER
-        Oh PER
Kara PER
Kara PER
Kara PER
Marjorie PER
Marjorie PER
Marjorie PER
Kara PER
Marjorie PER
Marjorie PER
Marjorie PER
Kara PER
Marjorie PER
Marjorie PER
Matthieu PER
-        Fameux! PER
Élizabeth PER
Adèle PER
Matthieu PER
Adèle PER
-        Dès PER
Ma cousine PER
Noëlle PER
Franz PER
-        Coupable PER
Adèle PER
Matthieu PER
Gaston PER
Hélène PER
Claudia PER
Claudia PER
Anne-Marie PER
Claudia PER
Matthieu PER

And it worked… mostly? It was super weird that J’ai kept getting listed, but I wasn’t too worried. A quirk of the model, plus the source text! Probably the model wasn’t trained on first-person narratives like The Baby-Sitters Club. Yeah, there was also an example of C’ that was harder to explain, but it wasn’t until I saw an example of a double-curly-quote character (”) identified as an entity that I started getting suspicious. Could those be messing things up somehow?

(Note from July 19, 2021: these were errors that the spaCy 2 French model made. Almost all disappeared by spaCy 3, which is the source of the results you see above.)

6. Data cleaning#

Time for some data cleaning! When Lee brought the ABBYY FineReader output .txt files into Word to correct my bad transcriptions, Word “helpfully” replaced all the regular, straight single and double quotes with their curly equivalents.

I wrote some code that opened every text file in my folder, searched for opening and closing curly quotes and replaced them with the “straight quote” character (a quotation mark that doesn’t differentiate opening and closing quotes). While I was at it, I saw that some of the texts weren’t using the straight single quote for the apostrophe, so I put that in there, too. This code overwrites the text files in the folder (rather than creating a new version) so if you want to keep your originals, make sure you have a copy elsewhere.

# Look for files in the source directory that end in .txt
for filename in os.listdir(filedirectory):
    if filename.endswith("fr.txt"):
        
        #Open each file that ends in .txt
        f = open(filename, 'r')
        #Read the text
        text = f.read()
        #Replace curly double-quote with straight double-quote
        lines = text.replace("“", '"')
        lines = lines.replace('”', '"')
        #Replace curly singl-quote with straight single-quote
        lines = lines.replace('’', "'")

        #Write output to a new file with the same name as the original, overwriting the original file.
        with open(filename, 'w') as out:
            out.writelines(lines)

7. French NER, second try#

I didn’t make any changes to the code from step 5, but check out the difference in the results. Gone are those quotation marks as so-called entities – along with all the examples of j’ai, c’, etc. All of those were showing up because they were using the curly single quote character, and that was messing up spaCy’s model.

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(filedirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('fr.txt'):
            #Write out below the name of the file
            print(filename)
            #The file name of the output file adds _ner_per to the end of the file name of the input file
            outfilename = filename.replace('.txt', '_ner_per.txt')
            #Open the infput filename
            with open(filename, 'r') as f:
                #Create and open the output filename
                with open(outfilename, 'w') as out:
                    #Read the contents of the input file
                    chaptertext = f.read()
                    #Do French NLP on the contents of the input file
                    chapterner = frnlp(chaptertext)
                    #For each recognized entity
                    for ent in chapterner.ents:
                        #If that entity is labeled as a person
                        if ent.label_ == 'PER':
                            #Print the entity, and the label (which should be PER)
                            print(ent.text, ent.label_)
                            #Write the entity to the output file
                            out.write(ent.text)
                            #Write a newline character to the output file
                            out.write('\n')
016_01_bg_fr.txt
maman PER
Roseline PER
Victor PER
Gringalet PER
Justine Victoire PER
Johanna PER
Mes PER
Marjorie Levêque PER
Johanna PER
Marjorie PER
maman PER
Roseline PER
Roseline PER
Gringalet PER
Justine PER
Coppélia PER
Roseline PER
Coppélius PER
Franz PER
Roseline PER
continuai-je PER
Franz PER
Franz PER
Coppélia PER
Franz PER
Roseline PER
Maman PER
Merci PER
madame Dillon PER
Roseline PER
Roseline PER
Maman PER
Roseline PER
Pense PER
Roseline PER
Roseline PER
016_01_frmod_fr.txt
Stonebrook PER
maman PER
Oakley PER
Oakley PER
John Philip Ramsey Junior PER
Jessica Ramsey PER
Oakley PER
Keisha PER
Mes PER
Mallory Pike PER
Mallory PER
Bon PER
Oakley PER
mama PER
« baba PER
Jessica PER
Stamford PER
Oakley PER
Coppélius PER
Franz PER
Franz PER
Franz PER
Coppélia PER
Coppélius PER
Franz PER
Maman PER
Merci PER
Mme Noelle PER
Maman PER
maman PER
016_01_qu_fr.txt
maman PER
Oakley PER
Oakley PER
Jean-Philippe PER
Jessica Raymond PER
Jaja PER
Oakley PER
Blancs PER
de Noirs PER
Kara PER
Mes PER
Oakley PER
Marjorie Picard PER
Kara PER
Marjorie PER
Jaja PER
Jaja PER
Jaja PER
Oakley PER
Coppélia PER
Franz PER
Franz PER
Franz PER
-        Merci PER
016_02_bg_fr.txt
Marjorie Levêque PER
Marjorie PER
Valérie PER
Valérie PER
Marjorie PER
Sébastien PER
Madame Demoulin PER
Valérie PER
Mélanie Moreau PER
Julie Kishi PER
Sophie Lambert PER
Sophie PER
Carole Leroy PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Stéphane PER
Sébastien PER
Yvan Arnould PER
Coralie PER
Arnaud PER
Valérie PER
Julie Kishi PER
Mélanie PER
Yvan PER
Demoulin PER
Valérie PER
Valérie PER
Julie PER
Julie Kishi PER
Julie PER
Marjorie PER
Julie PER
Julie PER
Marjorie PER
Julie PER
Laurence PER
Julie PER
Mimi PER
Mélanie Moreau PER
Carole PER
Mélanie PER
Valérie PER
Valérie PER
Mélanie PER
Valérie PER
Mélanie PER
Moreau PER
Sophie Lambert PER
Sophie PER
Valérie PER
Mélanie PER
Marjorie PER
Carole PER
Julie PER
David PER
David PER
Marjorie PER
Marjorie PER
Marjorie PER
Marjorie PER
Bruno Lejeune PER
Mélanie PER
Cécile Gauthier PER
Valérie PER
Marjorie PER
Valérie PER
Valérie PER
Julie PER
Mélanie PER
Marjorie PER
Valérie PER
Valérie raccrocha PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mélanie PER
Julie PER
Valérie PER
Marjorie PER
Marjorie PER
Garder PER
Marjorie PER
Justine PER
016_02_frmod_fr.txt
Mallory Pike PER
Mallory PER
Mallory PER
David Michael PER
Mme Parker PER
Mary Anne Cook PER
Claudia Koshi PER
Lucy MacDouglas PER
Mallory PER
Carla Schafer PER
Claudia PER
Mary Anne PER
Carla PER
Mallory PER
Samuel PER
Charlie PER
David Michael PER
Jim Lelland PER
Karen PER
Claudia Koshi PER
Claudia PER
Mary Anne PER
Jim PER
Parker PER
Jim PER
Jim PER
Samuel PER
Claudia PER
Mary Anne PER
Claudia PER
Mallory PER
Claudia PER
Claudia PER
Mallory PER
Claudia PER
Mallory PER
Mary Anne PER
Claudia PER
Mallory PER
Claudia PER
Jane PER
Claudia PER
Claudia PER
Mimi PER
Mary Anne PER
Carla PER
Mary Anne PER
Mary Anne PER
Mary Anne PER
Claudia PER
Mary Anne PER
M. Cook PER
Lucy MacDouglas PER
Ramsey PER
Carla Schafer PER
Carla PER
Mary Anne PER
Carla PER
Claudia PER
David PER
David PER
Mallory PER
Mallory PER
Mallory PER
Logan Rinaldi PER
Mary Anne PER
Louisa Kilbourne PER
Mallory PER
Mme Braddock PER
Helen PER
Mme Braddock PER
Mary PER
Anne PER
Claudia PER
Mallory PER
Mallory PER
Garder PER
Mallory PER
Jessica PER
016_02_qu_fr.txt
Christine Thomas PER
Soulagée PER
Marjorie Picard PER
Christine Thomas PER
Marjorie PER
David PER
Sophie Ménard PER
Anne-Marie Lapierre PER
Claudia Kishi PER
Sophie PER
Marjorie PER
Diane Dubreuil PER
Claudia PER
Anne-Marie PER
Diane PER
Marjorie PER
Charles PER
Sébastien PER
David PER
Guillaume PER
Karen PER
Claudia PER
Anne-Marie PER
Guillaume PER
Guillaume PER
Charles PER
Anne-Marie PER
Claudia Kishi PER
Marjo PER
Marjo PER
Claudia PER
Claudia PER
Claudia PER
Marjorie PER
Claudia PER
Marjorie PER
Anne-Marie PER
Claudia PER
Claudia PER
Josée PER
Claudia PER
Mimi PER
Anne-Marie Lapierre PER
Diane PER
Anne-Marie PER
Anne-Marie PER
Claudia PER
Monsieur PER
Lapierre PER
Sophie Ménard PER
Diane PER
Diane PER
Anne-Marie PER
Marjorie PER
Diane PER
Julien PER
Julien PER
Diane PER
Marjorie PER
Marjorie PER
Marjorie PER
Louis Brunet PER
Anne-Marie PER
Chantal Chrétien PER
Diane PER
Marjorie PER
Claudia PER
Anne-Marie PER
Diane PER
Marjorie PER
-        Allô PER
madame Biron PER
Matthieu PER
Madame Biron PER
Matthieu PER
Madame Biron PER
Diane PER
Anne-Marie PER
Claudia PER
Marjorie PER
Popote Roulante PER
madame Biron PER
Marjorie PER
-        Bonne PER
-        Merci PER
016_03_bg_fr.txt
Jacqué PER
Pliez PER
madame Dillon PER
madame Dillon PER
Coppélia PER
Maman PER
Madame Dillon PER
Hélène PER
Catherine PER
Hélène PER
Catherine PER
Victor PER
Mademoiselle Victor PER
Victoire PER
madame Dillon PER
Catherine PER
Madame Dillon PER
Hélène PER
Catherine PER
Madame Dillon PER
Madame Dillon PER
Hélène PER
Catherine PER
madame Dillon PER
Madame Dillon PER
Marie Bernstein PER
Lise Jacqué PER
Carine Schmitt PER
Hélène PER
Catherine PER
Coppélia PER
Madame Dillon PER
Hélène PER
Catherine PER
Coppélia PER
Noirs PER
Dillon PER
Justine Victor PER
Dillon PER
Justine Victor PER
Justine Victoire PER
Justine PER
Justine PER
madame Dillon PER
jean PER
Félicitations PER
Justine PER
Marie Bernstein PER
Lise Jacqué PER
Félicitations PER
Justine PER
Marie PER
Lise PER
Hélène PER
Catherine PER
Coppélia PER
Catherine PER
Catherine PER
Coppélia PER
Catherine PER
Hélène PER
Hélène PER
Catherine PER
madame Dillon PER
Catherine PER
Hélène PER
Avais-je PER
madame Dillon PER
016_03_frmod_fr.txt
Jones PER
Pliez PER
Mme Noelle PER
Mme Noelle PER
Coppélia PER
Maman PER
Mme Noelle PER
Romsey PER
Mlle Romsey PER
Ramsey PER
Mme Noelle PER
Mme Noelle PER
Mme Noelle PER
Sachant PER
Mme Noelle PER
Mme Noelle PER
Mary Bramstedt PER
Lisa Jones PER
Carrie Steinfeld PER
Coppélia PER
Mme Noelle PER
Coppélia PER
Mme Noelle PER
Mlle Jessica Romsey PER
Jessica Romsey PER
Jessica Ramsey PER
Jessica PER
Jessica PER
Mme Noelle PER
jean PER
Jessica PER
Mary Bramstedt PER
Lisa Jones PER
Jessica PER
Mary PER
Coppélia PER
Mme Noelle PER
acquiescé Katie PER
Avais-je PER
Mme Noelle PER
016_03_qu_fr.txt
Marcil PER
Pliez PER
Mademoiselle PER
Mes PER
Mademoiselle Noëlle PER
Catherine PER
Raymond! PER
Mademoiselle Raymond PER
Catherine PER
Élizabeth PER
Mademoiselle PER
Catherine PER
Catherine PER
Mademoiselle PER
Marie Brazeau PER
Lise Jordan PER
Carole St-Onge PER
Catherine PER
Élizabeth PER
Catherine PER
Jessica Raymond PER
Jessica Raymond PER
Jessica PER
Jessica PER
jean PER
-        Félicitations PER
Marie PER
Lise PER
-        Merci PER
-        Félicitations PER
Marie PER
Lise PER
Catherine PER
-        Félicitations PER
Coppélia PER
Élizabeth PER
Coppélia PER
Catherine PER
Catherine PER
016_04_bg_fr.txt
Gringalet PER
madame Dillon PER
madame Dillon PER
Hélène PER
Catherine PER
Mathieu Brinbeuf PER
Mathieu PER
Agnès PER
Justine PER
Agnès PER
madame Brinbeuf PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Justine PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Roseline PER
madame Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Justine PER
Mathieu PER
Madame Brinbeuf PER
M PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Demande PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
madame Brinbeuf PER
Madame Brinbeuf PER
016_04_frmod_fr.txt
Coppélia PER
Stamford PER
Mme Noelle PER
Voilà PER
Matthew Braddock PER
Helen PER
Jessica PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Matthew grandira PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Matthew PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
016_04_qu_fr.txt
Jaja PER
-         PER
mademoiselle Noëlle PER
-        Merci PER
Catherine PER
madame Biron PER
Matthieu PER
Matthieu PER
Lundi PER
Jessica PER
Hélène PER
Marjorie PER
Gougeon PER
madame Biron PER
madame Biron PER
Matthieu PER
Hélène PER
madame Biron PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Madame Biron PER
Hélène PER
-        Oh PER
-         PER
Biron PER
Matthieu PER
Biron PER
Matthieu PER
madame Biron PER
Madame Biron PER
Matthieu PER
madame Biron PER
Matthieu PER
M PER
Matthieu PER
H PER
Madame Biron PER
Hélène PER
Biron PER
Madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
-         PER
Hélène PER
Matthieu PER
madame Biron PER
Madame Biron PER
016_05_bg_fr.txt
Mercredi PER
Aurélie PER
Justine PER
Aurélie PER
Mélanie Moreau PER
Aurélie Precisio PER
Mélanie PER
Mélanie PER
Madame Precisio PER
Mélanie PER
Aurélie PER
Roseline PER
Roseline PER
Aurélie PER
Aurélie PER
Aurélie PER
Madame Precisio PER
Mélanie PER
Aurélie PER
Termine PER
Aurélie PER
Mélanie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Mélanie PER
Aurélie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mélanie PER
Aurélie PER
Aurélie PER
Aurélie PER
Aurélie PER
Mélanie PER
Aurélie PER
Mathieu PER
Agnès PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Mélanie PER
Agnès PER
Mathieu PER
Aurélie PER
Agnès PER
Mathieu PER
Aurélie PER
Mathieu PER
Mathieu PER
Agnès PER
Aurélie PER
Mathieu PER
Aurélie PER
Aurélie PER
Agnès PER
Mathieu PER
Aurélie PER
Agnès PER
Agnès PER
Justine PER
Mélanie PER
Agnès PER
Mathieu PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
016_05_frmod_fr.txt
Mercredi



Bon PER
Jenny PER
Jessica PER
Jenny PER
Mary Anne Cook PER
Jenny Prezzioso PER
Mary Anne PER
Jenny PER
Mary PER
Mme Prezzioso PER
Jenny PER
Jenny PER
Jenny PER
Mme Prezzioso PER
Mary Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Mary Anne PER
Jenny PER
Mary PER
Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Mary Anne PER
Mary Anne PER
Jenny PER
Jenny PER
Mary Anne PER
Mme Braddock PER
Mary Anne PER
Helen PER
Jenny PER
Jenny PER
Helen PER
Jenny PER
Mary Anne PER
Helen PER
Helen PER
Jessica PER
Mary Anne PER
Helen PER
Évidemment PER
016_05_qu_fr.txt
Mercredi PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Jeanne Prieur PER
Anne-Marie PER
Jeanne PER
madame Prieur PER
Jeanne PER
Connaissez PER
Jeanne PER
Jeanne PER
Jeanne PER
madame Prieur PER
Anne-Marie PER
Jeanne PER
Jeanne PER
-        Je mange PER
Jeanne PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Matthieu PER
madame Biron PER
Anne-Marie PER
Jeanne PER
Anne-Marie PER
Jeanne PER
Jeanne PER
Anne-Marie PER
Hélène PER
Jeanne PER
Jeanne PER
Matthieu PER
Matthieu PER
Hélène PER
Jeanne PER
Jeanne PER
Jeanne PER
Matthieu PER
Jeanne PER
Anne-Marie PER
Hélène PER
Anne-Marie PER
Hélène PER
Matthieu PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
016_06_bg_fr.txt
Agnès PER
Mathieu PER
Coppélia PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
madame
Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
Madame Brinbeuf PER
madame Brinbeuf PER
V PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Agnès PER
Madame Brinbeuf PER
Mathieu PER
Mathieu PER
Agnès PER
Justine PER
Madame Brinbeuf PER
Agnès PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Agnès PER
Mélanie PER
Aurélie Precisio PER
Agnès PER
Mathieu PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
Marjorie PER
Antoine PER
Elodie PER
Agnès PER
Mathieu PER
Marjorie PER
madame Levêque PER
Agnès PER
Marjorie PER
Mathieu PER
Marjorie PER
Laurent PER
Vanessa PER
Agnès PER
Juliette PER
Mathieu PER
Juliette PER
Agnès PER
Juliette PER
Mathieu PER
Agnès PER
Mathieu PER
Antoine Godefroid PER
Agnès PER
Mathieu PER
Antoine PER
Mathieu PER
Marjorie PER
Tes PER
Marjorie PER
Marjorie PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
016_06_frmod_fr.txt
Coppélia PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
madame Braddock PER
Helen PER
Helen PER
Mme Braddock PER
Jessica PER
Helen PER
Mme Braddock PER
Mary Anne PER
Jenny Prezzioso PER
Helen PER
Charlotte Johanssen PER
Helen PER
Helen PER
Helen PER
Mallory PER
Barrett PER
Buddy PER
Barrett PER
Helen PER
Mallory PER
Matthew PER
Margot PER
Mallory PER
Helen PER
Claire PER
Buddy Barrett PER
Helen PER
Buddy PER
Mallory PER
Tes PER
Mme Braddock PER
Helen PER
016_06_qu_fr.txt
Coppélia PER
Matthieu PER
Matthieu PER
Matthieu PER
madame Biron PER
-        Sois PER
Matthieu PER
autos PER
Madame Biron PER
Biron PER
V PER
madame Biron PER
Matthieu PER
Hélène PER
Biron PER
Matthieu PER
madame Biron PER
madame Biron PER
Matthieu PER
Matthieu PER
madame Biron PER
Matthieu PER
Jeanne Prieur PER
Matthieu PER
Hélène PER
Charlotte PER
Picard PER
Matthieu PER
Hélène PER
Hélène PER
Matthieu PER
Hélène PER
Matthieu PER
Matthieu PER
Matthieu PER
Marjorie PER
Matthieu PER
Marjorie PER
Picard PER
Hélène PER
Matthieu PER
Margot PER
Marjorie PER
-        Imaginez PER
Vanessa PER
Hélène PER
Matthieu PER
Claire PER
Picard PER
Claire PER
Hélène PER
Hélène PER
Bruno Barrette PER
Hélène PER
Bruno PER
Matthieu PER
-        Que PER
Marjorie PER
Marjorie PER
madame Biron PER
Hélène PER
Matthieu PER
016_07_bg_fr.txt
Justine PER
Marjorie PER
---
Bon PER
Justine PER
Majorie PER
Monsieur PER
madame Levêque PER
Marjorie PER
Carole PER
Marjorie PER
Alain PER
Loïc PER
Samuel PER
Laurent PER
Anaïs PER
Juliette PER
madame Levêque PER
madame Levêque PER
madame Levêque PER
Marjorie PER
Carole PER
madame Levêque PER
Vanessa PER
Anaïs PER
Juliette PER
Marjorie PER
Carole PER
Alain PER
Alain PER
Juliette PER
Alain PER
Alain PER
Marjorie PER
Loïc PER
Samuel PER
Carole PER
Marjorie PER
Marjorie PER
Alain PER
Marjorie PER
Carole PER
Marjorie PER
Carole PER
Laurent PER
Marjorie PER
Laurent PER
Marjorie PER
Carole PER
Anaïs PER
Anaïs PER
Carole PER
Samuel PER
Marjorie PER
Anaïs PER
Vanessa PER
Alain PER
Anaïs PER
Anaïs PER
Anaïs PER
Laurent PER
Carole PER
Marjorie PER
Laurent PER
Carole PER
Marjorie PER
Vanessa PER
Laurent PER
Samuel PER
Juliette PER
Carole PER
Marjorie PER
Marjorie PER
Anaïs PER
Vanessa PER
Marjorie PER
Carole PER
Marjorie PER
Carole PER
Marjorie PER
Agnès PER
Mathieu PER
Marjorie PER
Mathieu PER
Marjorie PER
Mathieu PER
Agnès PER
Agnès PER
016_07_frmod_fr.txt
Jessica PER
Mallory PER
Carla PER
Mallory PER
Mallory PER
Mme Pike PER
Byron PER
Adam PER
Jordan PER
Claire PER
M. PER
Mme Pike PER
Mme Pike PER
Mallory PER
Claire PER
Mallory PER
Adam PER
Adam PER
Jordan PER
Claire PER
Adam PER
Adam PER
Mallory PER
Byron PER
Jordan PER
Carla PER
Mallory PER
Adam PER
Mallory PER
Carla PER
Carla PER
Mallory PER
Carla PER
Byron PER
gémi Margot PER
Vanessa PER
Adam PER
Margot PER
hein PER
Margot PER
Moui PER
Carla PER
Mallory PER
Mallory PER
Jordan PER
Claire PER
Carla PER
Mallory PER
Jordan PER
Mallory PER
Mallory PER
Mallory PER
Mallory PER
Helen PER
Helen PER
016_07_qu_fr.txt
Marjorie PER
---
Bon PER
Picard PER
---
Bon PER
Diane PER
Monsieur PER
madame Picard PER
Diane PER
Marjorie PER
Picard PER
Antoine PER
Claire PER
Diane PER
madame Picard PER
madame Picard PER
Marjorie PER
Diane PER
Marjorie PER
Diane PER
Picard PER
Diane PER
Antoine PER
Antoine PER
Claire PER
Antoine PER
Antoine PER
Marjorie PER
-        Hé! PER
Antoine PER
Donne PER
Diane PER
Antoine PER
Marjorie PER
Marjorie PER
Antoine PER
Diane PER
Marjorie PER
Marjorie PER
Diane PER
Diane PER
hurle Margot PER
Vanessa PER
Antoine PER
Margot PER
Diane PER
Marjorie PER
Diane PER
Diane PER
Picard PER
Marjorie PER
Diane PER
Diane PER
Claire PER
Diane PER
Marjorie PER
Marjorie PER
Margot PER
-        Sorcière PER
Vanessa PER
Joël PER
Marjorie PER
Diane PER
Marjorie PER
Diane PER
-        Tu PER
Diane PER
Marjorie PER
Diane PER
Matthieu PER
Marjorie PER
Picard PER
Matthieu PER
Hélène PER
Hélène PER
016_08_bg_fr.txt
madame Dillon PER
Mademoiselle Perron PER
Mademoiselle Bersnstein PER
Victor PER
Prochaine PER
madame Dillon PER
Catherine PER
Hélène PER
Catherine PER
Catherine PER
Catherine PER
Catherine PER
Agnès PER
Catherine PER
Roseline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
madame Dillon PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Catherine PER
Roseline PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Catherine PER
Catherine PER
Mathieu PER
Mathieu PER
Adeline PER
Mathieu PER
Adeline PER
Catherine PER
Catherine PER
Adeline PER
Regarde PER
Adeline PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Adeline PER
Catherine PER
Johanna PER
Marjorie PER
Justine PER
Arnaud PER
Valérie PER
Valérie PER
Stéphane PER
Coralie PER
016_08_frmod_fr.txt
Mme Noelle PER
Mademoiselle Bramstedt PER
Romsey PER
Prochaine PER
Mme Noelle PER
Adèle PER
Adèle PER
Mme Noelle PER
Mes PER
Essaie PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Regarde PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
016_08_qu_fr.txt
Répétition PER
Noëlle PER
Mademoiselle Croteau PER
Marie PER
Mademoiselle Raymond PER
Soulagée PER
Élizabeth PER
Catherine PER
-        Bon PER
Catherine PER
Élizabeth PER
Hélène PER
Adèle PER
-        Bonjour PER
Adèle PER
Adèle PER
mademoiselle Noëlle PER
Mes PER
Adèle PER
Adèle PER
Surprise PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Mes PER
Matthieu PER
Adèle PER
Matthieu PER
-        Tu sais PER
-        Que PER
Matthieu PER
Adèle PER
Regarde PER
Adèle PER
Adèle PER
Hélène PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Kara PER
Marjorie PER
016_09_bg_fr.txt
Justine PER
Coralie Arnaud PER
Valérie PER
Valérie PER
Stéphane PER
Coraline PER
Mathieu PER
Julie PER
Arnaud PER
Julie PER
Julie PER
Valérie PER
Julie PER
Julie sonna PER
Coralie PER
Yvan PER
Arnaud PER
Coralie PER
Arnaud PER
Rensonnet PER
Benoît Arnould PER
Arnaud PER
Coralie PER
Coralie PER
Arnaud PER
Valérie PER
Stéphane PER
Valérie PER
Julie PER
Valérie PER
Stéphane PER
Julie PER
Valérie PER
Coralie PER
Julie PER
Julie PER
Valérie PER
Arnaud PER
Monsieur Arnaud PER
Oh PER
Edith PER
Arnaud PER
madame Arnaud PER
Valérie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Coralie PER
Arnaud PER
madame Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Arnaud PER
Sébastien PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Julie PER
Arnaud PER
Coralie PER
Sébastien PER
Coralie PER
Julie PER
Julie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Arnaud PER
Coralie PER
Julie PER
Sébastien PER
Julie PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Justine Victoire PER
Julie PER
Roseline PER
Julie PER
Julie PER
Marjorie PER
Coralie PER
Coralie PER
Julie PER
Coralie PER
Berk PER
Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Arnaud PER
Arnaud PER
Coralie PER
Julie PER
Julie PER
Arnaud PER
Julie PER
Arnaud PER
Arnaud PER
Julie PER
Julie PER
Mademoiselle Minet PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Coralie PER
Julie PER
Justine PER
Arnaud PER
Julie PER
Coralie PER
Julie sourit PER
Arnaud PER
016_09_frmod_fr.txt
Jessica PER
Karen PER
David Michael PER
Samuel PER
Charlie PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Jim PER
Karen PER
Karen PER
Mme Porter PER
Ben Lelland PER
Karen PER
Claudia PER
Karen PER
David Michael PER
Charlie PER
Samuel PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Mme Lelland PER
Jim PER
Edith PER
Karen PER
Mme Lelland PER
Claudia PER
Karen PER
David Michael PER
Karen PER
Claudia PER
Karen PER
David Michael PER
Mme Lelland PER
Claudia PER
Papadakis PER
Karen PER
Claudia PER
Andrew PER
David Michael PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Lego PER
Karen PER
David Michael PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Andrew PER
David Michael PER
Karen PER
David Michael PER
Claudia PER
Karen PER
Jessica Ramsey PER
Claudia PER
Claudia PER
Claudia PER
Mallory PER
Karen PER
Karen PER
Raconter PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Tickly PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Jessica PER
Claudia PER
Karen PER
Claudia PER
David Michael PER
016_09_qu_fr.txt
Karen PER
Sébastien PER
Charles PER
Karen PER
Matthieu PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Karen PER
madame Portai PER
Destinée Morbide PER
Ben PER
Karen PER
Claudia PER
Karen PER
Karen PER
-        Salut! PER
Karen PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Claudia PER
madame Marchand PER
Guillaume PER
Karen PER
Karen PER
David PER
Karen PER
Claudia PER
Guillaume PER
Papadakis PER
Karen PER
Claudia PER
David PER
Claudia PER
David PER
Karen PER
Claudia PER
Lego PER
Claudia PER
David PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Claudia PER
David PER
-         PER
Karen PER
David PER
Claudia PER
Claudia PER
Karen PER
Karen PER
Claudia PER
Jessie Raymond PER
Claudia PER
Claudia PER
Marjorie PER
Karen PER
Karen PER
Mimer PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
madame PER
Karen PER
Claudia PER
-        Honnêtement PER
Claudia PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
Karen PER
Karen PER
Karen PER
Claudia PER
Karen PER
Claudia PER
Claudia PER
Karen PER
Claudia PER
David PER
Claudia PER
016_10_bg_fr.txt
Mathieu PER
Agnès PER
madame Brinbeuf PER
Agnès PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Aurélie Precisio PER
Mathieu PER
Vanessa Levêque PER
Vanessa PER
Agnès PER
Laurent PER
Mathieu PER
Antoine Godefroid PER
Agnès PER
Mathieu PER
Mathieu PER
Antoine Godefroid PER
Mathieu PER
Agnès PER
Laurent PER
Agnès PER
Agnès PER
Antoine PER
Laurent PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
maman PER
Gringalet PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Mathieu PER
Laurent PER
Alain PER
Agnès PER
Justine PER
Agnès PER
Roseline PER
Roseline PER
Roseline PER
Roseline PER
Agnès PER
Aubrives PER
Regarde PER
Agnès PER
Mathieu PER
Mathieu PER
Roseline PER
maman PER
Roseline PER
Roseline PER
Agnès PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Mathieu PER
Agnès PER
Agnès PER
Adeline PER
madame Dillon PER
madame Dillon PER
Agnès PER
madame Dillon PER
016_10_frmod_fr.txt
Braddock PER
Mme Braddock PER
Helen PER
Mme Braddock PER
Jenny Prezzioso PER
Vanessa Pike PER
Vanessa PER
Helen PER
Buddy Barrett PER
Helen PER
Buddy Barrett PER
Helen PER
Buddy PER
Jordan PER
Helen PER
ai-je répondu PER
Matthew PER
Helen PER
maman PER
Helen PER
Byron PER
Helen PER
Jessica PER
Helen PER
Stonebrook PER
Stamford PER
Regarde PER
H PER
maman PER
Helen Keller PER
Matthew PER
Helen PER
Adèle PER
Mme Noelle PER
Mme Noelle PER
016_10_qu_fr.txt
Madame Biron PER
Hélène PER
Madame Biron PER
Matthieu PER
Matthieu PER
Jeanne Prieur PER
Matthieu PER
Matthieu PER
Vanessa PER
Vanessa PER
Bruno Barrette PER
Hélène PER
Matthieu PER
Bruno Barrette PER
Matthieu PER
Hélène PER
Hélène PER
Bruno PER
Matthieu PER
Matthieu PER
Hélène PER
Hélène sourit PER
Matthieu PER
Sinon PER
-        Ah PER
Hélène PER
Matthieu PER
Hélène PER
Matthieu PER
Hélène PER
maman PER
Jaja PER
Matthieu PER
Regarde Matthieu PER
Matthieu PER
Matthieu PER
Hélène PER
Jaja PER
Jaja PER
Hélène PER
Regarde PER
H gravé dessus PER
Matthieu PER
Matthieu PER
maman PER
Jaja PER
Ga-zi PER
Hélène PER
Matthieu PER
Hélène PER
Helen Keller PER
Hélène PER
Adèle PER
Noëlle PER
mademoiselle Noëlle PER
016_11_bg_fr.txt
madame Dillon PER
madame Brinbeuf PER
Julie PER
Mes PER
madame Dillon PER
Valérie PER
Marjorie PER
Valérie PER
Marjorie PER
Marjorie PER
Julie PER
Julie PER
Valérie PER
Marjorie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Valérie PER
Marjorie PER
Valérie PER
Mélanie PER
Valérie PER
Mélanie PER
Valérie PER
Justine PER
Mathieu PER
Mathieu PER
Agnès PER
Agnès PER
Mathieu PER
Julie PER
Valérie PER
J PER
Carole décrocha PER
Bruno PER
Bruno PER
Mélanie PER
Mélanie PER
Bruno PER
Justine PER
taquina Julie PER
Mélanie PER
Valérie PER
Avez PER
Mélanie PER
Bruno PER
Mélanie PER
Savez PER
Valérie PER
maman PER
Valérie acquiesça PER
Julie PER
Carole PER
Valérie PER
Marjorie PER
Julie PER
Marjorie PER
Allô PER
Marjorie PER
Bonjour madame Brinbeuf PER
Marjorie PER
Mathieu PER
Vas-tu PER
Valérie PER
Mélanie PER
Marjorie PER
Aller PER
016_11_frmod_fr.txt
Mme Noelle PER
Mme Braddock PER
Claudia PER
Mes PER
Mme Noelle PER
Mallory PER
Mary Anne PER
Carla PER
Claudia PER
Mallory PER
Mallory PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
Samuel PER
Claudia PER
Mallory PER
Mary Anne PER
Jessica PER
Helen PER
Claudia PER
Braddock PER
J PER
Carla PER
Mary Anne PER
Mary Anne PER
Mary Anne PER
Logan PER
Jessica PER
Claudia PER
Mary Anne PER
Carla PER
Mary Anne PER
Logan PER
Mary Anne PER
Claudia PER
Samuel PER
Claudia PER
Mallory PER
madame Braddock PER
Mallory PER
Oh PER
Mary Anne PER
Mallory PER
Stamford PER
016_11_qu_fr.txt
madame Biron PER
Claudia PER
Marjorie PER
Anne-Marie PER
Claudia PER
Diane PER
Marjorie PER
Claudia PER
Claudia PER
Claudia PER
Claudia PER
-        Un PER
Claudia PER
-        Un PER
Claudia PER
Diane PER
Christine
 PER
Charles PER
-         PER
Charles PER
Trousses PER
Diane PER
Claudia PER
Diane PER
Anne-Marie PER
Matthieu PER
Hélène PER
Matthieu PER
Anne-Marie PER
Christine PER
Claudia PER
Marjorie PER
Diane PER
Claudia PER
Matthieu PER
Anne-Marie PER
Claudia PER
Louis PER
Louis PER
Anne-Marie PER
Anne-Marie PER
-        Louis PER
Claudia PER
Anne-Marie PER
Diane PER
Diane PER
Anne-Marie PER
Avez PER
Diane PER
Louis PER
Anne-Marie PER
-        Savez PER
-        Un bébé PER
Claudia PER
Charles PER
Diane PER
Dring PER
Marjorie PER
Claudia PER
Marjorie PER
-        Allô PER
-        Oh PER
madame Biron PER
Marjorie PER
-        Pourquoi PER
Marjorie PER
Cappella PER
-         PER
Aller PER
016_12_bg_fr.txt
madame Brinbeuf PER
Madame Brinbeuf PER
madame Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Madame Brinbeuf PER
Justine PER
Mathieu PER
Madame Brinbeuf PER
Mathieu PER
Bonjour madame Brinbeuf PER
Justine PER
Franck PER
Mathieu PER
Merci PER
madame Brinbeuf PER
madame Brinbeuf PER
Franck PER
Mathieu PER
Madame Franck PER
Madame Brinbeuf PER
Franck PER
Franck PER
Madame Franck PER
Franck PER
Justine Victoire PER
Mathieu PER
Franck PER
Madame Franck PER
Justine PER
Mathieu Brinbeuf PER
Franck PER
madame Brinbeuf PER
Mathieu PER
Madame Franck PER
Coppélia PER
Mathieu PER
Vendredi PER
Franck PER
Madame Franck PER
Franck PER
madame Brinbeuf PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
016_12_frmod_fr.txt
maman PER
Mme Braddock PER
Mme Braddock PER
Mme Braddock PER
Jessica PER
Mme Braddock PER
madame Braddock PER
Jessica PER
Mme Franck PER
Mme Braddock PER
Mme Franck PER
Jessica Ramsey PER
Mme Franck PER
Matthew Braddock PER
Mme Franck PER
Mme Braddock PER
Mme Franck PER
Coppélia PER
Mme Franck PER
Mme Franck PER
Mme Braddock PER
Jessica PER
016_12_qu_fr.txt
Ma mère PER
madame Biron PER
madame Biron PER
Madame Biron PER
madame Biron PER
Matthieu PER
madame Biron PER
Matthieu PER
Matthieu PER
Matthieu PER
-         PER
professeur de PER
Matthieu PER
Madame Biron PER
madame Biron PER
madame Biron PER
Madame Biron PER
Madame Biron PER
Raymond PER
Matthieu Biron PER
Matthieu PER
Coppélia PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
016_13_bg_fr.txt
Mercredi PER
Justine PER
Gringalet PER
Roseline PER
Justine PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Charlotte PER
Valérie PER
Roseline PER
Sophie Lambert PER
maman PER
Gringalet PER
Roseline PER
Roseline PER
Roseline PER
Roseline PER
Gringalet PER
Valérie PER
Viens PER
Roseline PER
Roseline PER
Valérie PER
Gringalet PER
Roseline PER
Roseline PER
Hé PER
Roseline PER
Valérie PER
Roseline PER
Gringalet PER
Roseline PER
Valérie habilla Gringalet PER
Gringalet PER
Roseline PER
Valérie PER
Valérie PER
Roseline PER
Valérie PER
Valérie PER
Roseline PER
Roseline PER
Valérie PER
Mathieu PER
Roseline PER
Roseline PER
Ma mère PER
snobs PER
Japonaise PER
Valérie PER
Roseline PER
Charlotte PER
Roseline PER
Charlotte Cuvelier PER
Roseline PER
Charlotte PER
Roseline PER
Charlotte PER
Sophie Lambert PER
Sophie PER
Roseline PER
Sophie PER
Charlotte PER
Roseline PER
Charlotte PER
Neuville PER
Roseline PER
Charlotte PER
Charlotte PER
Roseline PER
Charlotte PER
Valérie PER
Charlotte PER
Charlotte PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Justine PER
Valérie PER
Roseline PER
Valérie PER
Justine PER
Roseline PER
Charlotte PER
Gringalet PER
Valérie PER
Gringalet PER
Valérie PER
Roseline PER
Charlotte PER
Justine PER
Roseline PER
Valérie PER
Charlotte PER
Roseline PER
Charlotte PER
Valérie PER
madame Brinbeuf PER
Valérie Demoulin PER
016_13_frmod_fr.txt
Mercredi



Salut PER
Jessica PER
Jessica PER
Charlotte PER
Lucy MacDouglas PER
maman PER
Stamford PER
maman PER
Viens PER
Ga PER
Stonebrook PER
Ma mère PER
snobs PER
Japonaise PER
Charlotte PER
Charlotte Johanssen PER
Ma PER
Charlotte PER
Lucy MacDouglas PER
Charlotte PER
Charlotte PER
Stonebrook PER
Charlotte PER
Charlotte PER
Charlotte PER
Jessica PER
Charlotte PER
Jessica PER
Jessica PER
Coppélia PER
Jessica PER
Charlotte PER
Charlotte PER
Jessica PER
Charlotte PER
Charlotte PER
Mme Braddock PER
Kristy Parker PER
016_13_qu_fr.txt
Mercredi
Salut PER
Charlotte Jasmin PER
Sophie PER
Maman PER
Oakley PER
Jaja PER
Jaja PER
-        Bonjour PER
Jaja PER
Jaja PER
Christine habille Jaja PER
Matthieu PER
Ma mère PER
snobs PER
-         PER
Charlotte Jasmin PER
Charlotte PER
Charlotte PER
Sophie PER
Sophie PER
Charlotte PER
Charlotte PER
Charlotte PER
Charlotte PER
Charlotte PER
Christinel PER
Charlotte PER
Polanski PER
Jaja PER
Jaja PER
Jaja PER
Polanski PER
-        Oh PER
Charlotte PER
madame Biron PER
Christine Thomas PER
016_14_bg_fr.txt
Coppélia PER
madame Brinbeuf PER
madame Dillon PER
Franck PER
Mathieu PER
Roseline PER
Charlotte PER
Valérie PER
Mathieu PER
Mélanie PER
Valérie PER
Roseline PER
Julie PER
Marjorie PER
Bruno Lejeune PER
Mélanie PER
Brinbeuf PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Coppélius PER
madame Dillon PER
madame Dillon PER
Justine PER
madame Brinbeuf PER
Agnès PER
Agnès PER
Agnès PER
madame Brinbeuf PER
madame Brinbeuf PER
Madame Brinbeuf PER
Caroline Brinbeuf PER
Agnès PER
Agnès PER
Coppélia PER
Agnès PER
Agnès PER
Mathieu PER
Dillon PER
Catherine PER
madame Dillon PER
Catherine PER
Mathieu PER
Catherine PER
Mathieu PER
Maman PER
Adeline PER
Catherine PER
Agnès PER
madame Brinbeuf PER
Coppelius PER
Coppélius PER
Agnès PER
Agnès PER
madame Brinbeuf PER
madame Brinbeuf PER
Agnès PER
Christophe Gélin PER
Franz PER
Mathieu PER
Mathieu PER
Mathieu PER
Mathieu PER
Christophe PER
Mathieu PER
Adeline PER
Catherine PER
Catherine PER
Catherine PER
Adeline PER
Christophe PER
Catherine PER
Mathieu PER
Adeline PER
016_14_frmod_fr.txt
Mme Braddock PER
Mme Noelle PER
Mme Franck PER
Charlotte PER
Mary Anne PER
Mary Anne PER
Claudia PER
Mallory PER
Logan Rinaldi PER
Mary Anne PER
Braddock PER
Mme Braddock PER
Coppélius PER
Mme Noelle PER
Mme Braddock PER
Helen PER
Helen PER
Helen PER
Mme Braddock PER
Mme Braddock PER
Helen PER
Helen PER
Coppélia PER
Helen PER
Mme Noelle PER
Adèle PER
Maman PER
Adèle PER
Helen PER
Mme Braddock PER
Coppélius PER
Coppélius PER
Helen PER
Helen PER
Mme Braddock PER
Christopher Gerber PER
Franz PER
Christopher PER
Adèle PER
Oh PER
Adèle PER
Christopher PER
Adèle PER
016_14_qu_fr.txt
Matthieu PER
Charlotte PER
Louis Brunet PER
Jaja PER
Biron PER
Matthieu PER
Biron PER
Hélène PER
Coppélia PER
Noëlle PER
Noëlle PER
-        Bon PER
vas-y. PER
madame Biron PER
Hélène PER
Hélène PER
Hélène PER
madame Biron PER
-         PER
Madame Biron PER
Hélène PER
Hélène PER
Noëlle PER
Adèle PER
Matthieu PER
Matthieu PER
Mes PER
Adèle PER
-         PER
Franz PER
Hélène PER
Hélène PER
madame Biron PER
Christophe Baril PER
Franz PER
Matthieu PER
Matthieu PER
Matthieu PER
Matthieu PER
Adèle PER
Matthieu PER
Oh PER
Élizabeth PER
-        Voici PER
Adèle PER
Christophe PER
Matthieu PER
Adèle PER
016_15_bg_fr.txt
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Justine PER
Catherine PER
Catherine PER
jean PER
Justine PER
Justine PER
Roseline PER
madame Brinbeuf PER
Agnès PER
Mathieu PER
Justine PER
Marjorie PER
Marjorie PER
Justine PER
Avais-je PER
Johanna PER
Johanna PER
Marjorie PER
Marjorie PER
Johanna PER
Marjorie PER
Johanna PER
Tes PER
Oh PER
Johanna PER
Johanna PER
Catherine PER
Adeline PER
Johanna PER
Mathieu PER
madame Brinbeuf PER
Agnès PER
Catherine PER
Johanna PER
Johanna PER
Marjorie PER
Justine PER
Marjorie PER
Marjorie PER
Johanna PER
Johanna PER
Marjorie PER
Johanna PER
Marjorie PER
Johanna PER
Justine PER
Johanna PER
Oh PER
Marjorie PER
Mathieu PER
Marjorie PER
Johanna PER
Maman PER
Mes PER
Catherine PER
Adeline PER
Johanna PER
Adeline PER
Mathieu PER
Catherine PER
Catherine PER
Johanna PER
Justine PER
madame Dillon PER
Franz PER
Catherine PER
sainte nitouche PER
Catherine PER
sainte nitouche PER
Catherine PER
Adeline PER
Catherine PER
Adeline PER
Mathieu PER
Justine PER
Maman PER
Roseline PER
Johanna PER
Marjorie PER
madame Brinbeuf PER
Mathieu PER
Agnès PER
Agnès PER
Melba PER
Julie PER
Pêche Melba PER
Justine PER
Julie PER
Mélanie PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
Agnès PER
Mathieu PER
Mathieu PER
016_15_frmod_fr.txt
Adèle PER
Adèle PER
Adèle PER
Adèle PER
Jessica PER
Adèle PER
jean PER
Carla PER
Mary Anne PER
Mallory PER
Jessica PER
Mallory PER
Mallory PER
Keisha PER
Tes PER
Adèle PER
Mme Braddock PER
Mallory PER
Pardon PER
Mallory PER
Mallory PER
Mallory PER
Mallory PER
Maman PER
Katie PER
Adèle PER
Adèle PER
Adèle PER
Jessica PER
Mme Noelle PER
Franz PER
Bêbête PER
Adèle PER
Adèle PER
Matthew PER
Maman PER
Mary Anne PER
Claudia PER
M. PER
Mme Braddock PER
Charley PER
Helen PER
Claudia PER
Claudia PER
Jessica PER
Claudia PER
Claudia PER
Mary Anne PER
Helen PER
Helen PER
016_15_qu_fr.txt
Élizabeth PER
Adèle PER
tu sois PER
Adèle PER
Adèle PER
Élizabeth PER
Adèle PER
Élizabeth PER
Matthieu PER
Félicitations PER
Marjorie PER
-        Merci PER
Marjorie PER
Kara PER
Kara PER
Kara PER
Marjorie PER
Kara PER
Tes PER
-        Oh PER
Kara PER
Kara PER
Kara PER
Marjorie PER
Marjorie PER
Marjorie PER
Kara PER
Marjorie PER
Marjorie PER
Marjorie PER
Kara PER
Marjorie PER
Marjorie PER
Matthieu PER
-        Fameux! PER
Élizabeth PER
Adèle PER
Matthieu PER
Adèle PER
-        Dès PER
Ma cousine PER
Noëlle PER
Franz PER
-        Coupable PER
Adèle PER
Matthieu PER
Gaston PER
Hélène PER
Claudia PER
Claudia PER
Anne-Marie PER
Claudia PER
Matthieu PER

It’s not perfect: chapter 1 of the Quebec translation flags “mange Julie” (Julie eats) as a person instead of a name and noun. But it’s a lot better.

8. French NER for places#

I moved all the _ner_per.txt files into their own folder, so that spaCy wouldn’t try to run NER on text files of its own NER results, and would instead just use the files with the chapter texts as the objects of investigation.

I changed the code from step 7 (and 5) to replace PER with LOC and ran it again to get location entities.

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(filedirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('fr.txt'):
        if not filename.endswith('_ner_loc.txt'):
            #Write out below the name of the file
            print(filename)
            #The file name of the output file adds _ner_lov to the end of the file name of the input file
            outfilename = filename.replace('.txt', '_ner_loc.txt')
            #Open the infput filename
            with open(filename, 'r') as f:
                #Create and open the output filename
                with open(outfilename, 'w') as out:
                    #Read the contents of the input file
                    chaptertext = f.read()
                    #Do French NLP on the contents of the input file
                    chapterner = frnlp(chaptertext)
                    #For each recognized entity
                    for ent in chapterner.ents:
                        #If that entity is labeled as a person
                        if ent.label_ == 'LOC':
                            #Print the entity, and the label (which should be PER)
                            print(ent.text, ent.label_)
                            #Write the entity to the output file
                            out.write(ent.text)
                            #Write a newline character to the output file
                            out.write('\n')
016_01_bg_fr.txt
Espagne LOC
Neuville LOC
Maman LOC
Neuville LOC
Burkina Faso LOC
Neuville LOC
Gringalet LOC
Ouagadougou LOC
Burkina Faso LOC
France LOC
Neuville LOC
Aubrives LOC
Neuville LOC
Neuville LOC
Noirs LOC
Gringalet LOC
Oh-bla LOC
Gringalet LOC
Gringalet LOC
Aubrives LOC
Swanilda LOC
Coppé-lius LOC
Allez LOC
016_01_frmod_fr.txt
Mexique LOC
Connecticut LOC
Stonebrook LOC
New Jersey LOC
Becca LOC
New Jersey LOC
Noirs LOC
Stamford LOC
Connecticut LOC
Stonebrook LOC
Stamford LOC
Stonebrook LOC
Noirs LOC
Keisha LOC
Ooh bla LOC
Becca LOC
Swanilda LOC
Allez LOC
– Pense LOC
016_01_qu_fr.txt
Mexique LOC
Nouville LOC
Nouville LOC
États-Unis LOC
New Jersey LOC
Becca LOC
Jessie LOC
Becca LOC
Nouville LOC
Noire LOC
Noirs LOC
Lentement LOC
Becca LOC
-Oui LOC
-        Tu LOC
Nouville LOC
Becca LOC
Becca LOC
Noëlle LOC
-        Hé LOC
Becca LOC
Becca LOC
-        Becca LOC
-        Pense LOC
Becca LOC
Becca LOC
016_02_bg_fr.txt
Valérie LOC
Valérie LOC
Valérie LOC
Valérie LOC
groupa LOC
Neuville LOC
Marjorie LOC
Valérie LOC
Valérie LOC
Valérie LOC
Julie LOC
Yvan LOC
Yvan LOC
Neuville LOC
Mélanie LOC
Valérie LOC
Mélanie LOC
Paris LOC
Carole LOC
Provence LOC
Neuville LOC
Provence LOC
Carole LOC
Carole LOC
Julie LOC
Brinbeuf LOC
016_02_frmod_fr.txt
Kristy LOC
Stonebrook LOC
Kristy LOC
Kristy LOC
Mallory LOC
Kristy LOC
Kristy LOC
Lucy LOC
Stonebrook LOC
Kristy LOC
Notre LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Stonebrook LOC
Kristy LOC
baby-sitting LOC
queue-de-cheval LOC
orne LOC
Kristy LOC
Kristy LOC
Tigrou LOC
New York LOC
Lucy LOC
Californie LOC
Kristy LOC
Carla LOC
Californienne LOC
Californie LOC
week-end LOC
Kristy LOC
Carla LOC
Kristy LOC
Bonjour LOC
Kristy LOC
Matthew LOC
Braddock LOC
Matthew LOC
Kristy LOC
016_02_qu_fr.txt
Nouville LOC
II LOC
Marjo LOC
Agenda LOC
Tigrou LOC
Toronto LOC
de Californie LOC
Californienne LOC
Californie LOC
Biron LOC
Nouville LOC
Maijorie LOC
La réunion LOC
016_03_bg_fr.txt
Allez LOC
Poupée Chinoise LOC
Poupée Chinoise LOC
Franz LOC
Poupée Chinoise LOC
Ouais LOC
016_03_frmod_fr.txt
Parfois LOC
Hilary LOC
Hilary LOC
Hilary LOC
Katie LOC
Allez LOC
Hilary LOC
Hilary LOC
Swanilda LOC
Franz LOC
Hilary LOC
Coppélia LOC
Hilary LOC
Katie LOC
Ouais LOC
Hilary LOC
016_03_qu_fr.txt
Becca LOC
Élizabeth LOC
réprimande LOC
Élizabeth LOC
Poupée chinoise LOC
Mademoiselle LOC
Poupée chinoise LOC
Europe LOC
Lorsque LOC
Franz LOC
Poupée chinoise LOC
Élizabeth LOC
-        Allez LOC
-        Non LOC
Élizabeth LOC
Élizabeth LOC
016_04_bg_fr.txt
Aubrives LOC
Crois-tu LOC
Brinbeuf LOC
Voudrais LOC
Brinbeuf LOC
016_04_frmod_fr.txt
Matthew LOC
Braddock LOC
Braddock LOC
Bonjour LOC
Helen LOC
Helen LOC
– Matthew LOC
Matthew LOC
Helen LOC
Helen LOC
Helen LOC
Matthew LOC
Helen LOC
Voudrais LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Matthew LOC
M de Matthew LOC
Helen LOC
Matthew LOC
Braddock LOC
Demande LOC
Matthew LOC
Helen LOC
Helen LOC
Matthew LOC
Lire LOC
Matthew LOC
Matthew LOC
Helen LOC
016_04_qu_fr.txt
-Oui LOC
mademoiselle Noëlle LOC
-         LOC
Élizabeth LOC
Biron LOC
Biron LOC
-        Bonjour LOC
Jessie LOC
-        Est LOC
-        Est LOC
Jessie LOC
Biron LOC
-         LOC
Becca LOC
Jessie LOC
-        Montre LOC
Jessie LOC
016_05_bg_fr.txt
Brinbeuf LOC
Precisio LOC
smocks LOC
Precisio LOC
Hippo gloutons LOC
Ricky LOC
Ecureuil LOC
Mélanie LOC
Mélanie LOC
Aurélie LOC
Mélanie LOC
Mélanie LOC
Brinbeuf LOC
Brinbeuf LOC
Mélanie LOC
Brinbeuf LOC
Neuville LOC
016_05_frmod_fr.txt
smocks LOC
Désolée LOC
Bambi LOC
Jenny LOC
– Non LOC
– Non LOC
Matthew LOC
Helen LOC
Braddock LOC
Braddock LOC
Matthew LOC
Helen LOC
Matthew LOC
– Matthew LOC
Matthew LOC
Jenny LOC
Matthew LOC
Jenny LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Braddock LOC
Helen LOC
Matthew LOC
016_05_qu_fr.txt
Biron LOC
Becca LOC
Prieur LOC
-        Bon! LOC
Serpents LOC
Échelles LOC
Caillou LOC
-        Non LOC
-         LOC
-        Non LOC
-        Tu LOC
-        Tu aimerais LOC
-        Maintenant LOC
Biron LOC
Biron LOC
-        Salut LOC
Biron LOC
Biron LOC
Biron LOC
-         LOC
-        Tu LOC
-         LOC
-        Tu sais LOC
-         LOC
Biron LOC
Noire LOC
Nouville LOC
016_06_bg_fr.txt
Brinbeuf LOC
Sois LOC
Agnès LOC
P LOC
P LOC
Levêque LOC
Vanessa LOC
Dis- LOC
Levêque LOC
Levêque LOC
Levêque LOC
Marjorie LOC
Ouais LOC
Marseille LOC
Monaco LOC
mienne LOC
Levêque LOC
jura LOC
016_06_frmod_fr.txt
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Sois LOC
Matthew LOC
J LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Matthew LOC
Matthew LOC
P LOC
Matthew LOC
Matthew LOC
Helen LOC
Helen LOC
– Est LOC
Helen LOC
Matthew LOC
Matthew LOC
Vanessa LOC
Matthew LOC
Matthew LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Mallory LOC
Waouh LOC
Vanessa LOC
Matthew LOC
Helen LOC
Matthew LOC
Helen LOC
Matthew LOC
mienne LOC
Helen LOC
Matthew LOC
Matthew LOC
016_06_qu_fr.txt
Biron LOC
-Oui LOC
J-E-S-S-I-E. C' LOC
-        Oui LOC
Regardez LOC
paume de ma main LOC
-        Tu parles! LOC
Becca LOC
Nouville LOC
Becca LOC
-        Est LOC
-Oui LOC
-        Non LOC
Vanessa LOC
Matthieu LOC
Venez LOC
Maijorie LOC
Maijorie LOC
-        Pas LOC
Soulagées LOC
016_07_bg_fr.txt
Levêque hier LOC
les Levêque LOC
Alon LOC
Levêque LOC
Vanessa LOC
Carole LOC
Levêque LOC
les Levêque LOC
Levêque LOC
Loïc LOC
Levêque LOC
Tenez LOC
Levêque LOC
Carole LOC
Levêque LOC
Loïc LOC
Carole LOC
Levêque LOC
016_07_frmod_fr.txt
Carla LOC
Mallory LOC
Carla LOC
Mallory LOC
Vanessa LOC
Margot LOC
Carla LOC
Carla LOC
Vanessa LOC
Margot LOC
Carla LOC
Mallory LOC
Nicky LOC
Mallory LOC
Margot LOC
Margot LOC
vire LOC
Carla LOC
Tenez LOC
Carla LOC
Carla LOC
Carla LOC
Vanessa LOC
– Pas LOC
Margot LOC
Allons LOC
Margot LOC
Vanessa LOC
Carla LOC
Carla LOC
Helen LOC
Matthew LOC
Matthew LOC
Carla LOC
Matthew LOC
016_07_qu_fr.txt
Jessie LOC
Maijorie LOC
Joël LOC
Vanessa LOC
Margot LOC
Mathurin LOC
Joël LOC
-         LOC
-         LOC
-        Marjorie LOC
crie Margot LOC
Margot LOC
Arrêtez LOC
Margot LOC
Silence LOC
Margot LOC
Vanessa LOC
-        Non LOC
Margot LOC
-         LOC
-        Non LOC
-        Es LOC
016_08_bg_fr.txt
PER-FEC-CHI-ONNE LOC
OK LOC
Ouais LOC
Adeline LOC
sauta LOC
Brinbeuf LOC
Coraline LOC
Coralie LOC
016_08_frmod_fr.txt
per-fec-tion LOC
per-fec-tion LOC
Hilary LOC
Ouais LOC
Assise LOC
Helen LOC
Bonjour LOC
Massachusetts LOC
Matthew LOC
Matthew LOC
Braddock LOC
Matthew LOC
Keisha LOC
Mallory LOC
016_08_qu_fr.txt
per-fec-ti-on LOC
per-fec-ti-on LOC
Pellerin LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Becca LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Essaye LOC
Élizabeth LOC
Becca LOC
Élizabeth LOC
Élizabeth LOC
-        Tu LOC
-        Non LOC
Élizabeth LOC
-        Non LOC
Élizabeth LOC
-        Est LOC
Élizabeth LOC
-        Non LOC
Biron LOC
Matthieu LOC
Élizabeth LOC
Élizabeth LOC
connais-tu cette langue? LOC
Élizabeth LOC
Neuf LOC
Élizabeth LOC
Pellerin LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
Élizabeth LOC
016_09_bg_fr.txt
Coraline LOC
Valérie LOC
Coralie LOC
Coralie LOC
Valérie LOC
Coralie LOC
Coralie LOC
Vieille Sorcière LOC
Coralie LOC
Coralie LOC
Coralie LOC
Dumont LOC
Coralie LOC
Coralie LOC
Coralie LOC
Coralie LOC
Coralie LOC
Appelle LOC
Coralie LOC
approuva Coralie LOC
Julie LOC
Coralie LOC
Coralie LOC
016_09_frmod_fr.txt
Matthew LOC
Kristy LOC
Karen LOC
Kristy LOC
Lelland LOC
Kristy LOC
Kristy LOC
Bonjour LOC
Bonjour LOC
Kristy LOC
Kristy LOC
Lelland LOC
Lego LOC
Calmez LOC
Lelland LOC
Lelland LOC
Bof ! LOC
Karen LOC
Attends LOC
Karen LOC
Merci LOC
Appelle LOC
Moosie LOC
Héloïse LOC
Moosie LOC
Tickly LOC
Claudia LOC
016_09_qu_fr.txt
Jessie LOC
Karen LOC
Marchand LOC
-        Bonsoir LOC
Marchand LOC
Lego LOC
-        Salut LOC
-        Salut! LOC
-        Veux-tu LOC
-        Non LOC
-        Probablement LOC
Venez LOC
-        Quel LOC
Heureusement LOC
Karen LOC
-        Tu crois LOC
-Oui LOC
-         LOC
Bou! LOC
-        Appelle LOC
-        Oui LOC
-        Oui LOC
016_10_bg_fr.txt
Brinbeuf LOC
Brinbeuf LOC
Neuville LOC
Levêque LOC
Levêque LOC
Brinbeuf LOC
Vanessa LOC
Loïc LOC
Ouais LOC
Neuville LOC
A LOC
Gringalet LOC
Coppélia LOC
016_10_frmod_fr.txt
Matthew LOC
Helen LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Helen LOC
Nicky LOC
Matthew LOC
Matthew LOC
Matthew LOC
Braddock LOC
Bonjour ! LOC
Vanessa LOC
Helen LOC
Nicky LOC
Hors-jeu LOC
– Pas LOC
Helen LOC
Matthew LOC
Helen LOC
Matthew LOC
Matthew LOC
Ouais LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Nicky LOC
Matthew LOC
Helen LOC
Helen LOC
Matthew LOC
Helen LOC
Helen LOC
Matthew LOC
– Matthew LOC
Helen LOC
016_10_qu_fr.txt
Biron LOC
Biron LOC
Centre communautaire LOC
Biron LOC
Barrette LOC
-        Salut! LOC
Vanessa LOC
Joël LOC
-        Non LOC
-        Que LOC
-        Tu LOC
-        Non LOC
-        Tu LOC
-        Non LOC
-         LOC
-        Pas LOC
-        Oui LOC
Becca LOC
Becca LOC
Becca LOC
somme LOC
-        Oui LOC
Becca LOC
Becca LOC
Biron LOC
Noëlle LOC
016_11_bg_fr.txt
Julie LOC
Valérie LOC
Exact LOC
Brinbeuf LOC
Brinbeuf LOC
Provence LOC
Crois-tu LOC
Carole LOC
Gringalet LOC
Provence LOC
Valérie LOC
Ouais LOC
Aubrives LOC
016_11_frmod_fr.txt
Bonjour LOC
Kristy LOC
Désolée LOC
Kristy LOC
Kristy LOC
Mallory LOC
Kristy LOC
Carla LOC
Kristy LOC
Kristy LOC
Carla LOC
Kristy LOC
Kristy LOC
Kristy LOC
Matthew LOC
Matthew LOC
Helen LOC
Matthew LOC
Kristy LOC
Braddock LOC
de Californie LOC
Kristy LOC
Carla LOC
Californie LOC
Tigrou LOC
Carla LOC
Kristy LOC
Kristy LOC
Kristy LOC
Ouais LOC
Carla LOC
Kristy LOC
Mallory LOC
Mallory LOC
Kristy LOC
016_11_qu_fr.txt
mademoiselle Noëlle LOC
-        Salut! LOC
-        Non LOC
Trousses LOC
-         LOC
Maijorie LOC
Jessie LOC
-        Est LOC
de Californie LOC
Californie LOC
-        Tigrou LOC
-        Est LOC
-        Non LOC
-        Quel âge LOC
-        Tu LOC
-Oui LOC
-        Tu LOC
016_12_bg_fr.txt
Principal LOC
Aubrives LOC
J-U-S-T-I-N-E V LOC
Voulez LOC
016_12_frmod_fr.txt
Stamford LOC
Matthew LOC
Matthew LOC
Matthew LOC
Matthew LOC
Bonjour LOC
Matthew LOC
Matthew LOC
Matthew LOC
Voulez LOC
Matthew LOC
Matthew LOC
Vendredi LOC
Matthew LOC
Matthew LOC
Matthew LOC
016_12_qu_fr.txt
-         LOC
France LOC
France LOC
France LOC
France LOC
France LOC
France LOC
J-E-S-S-I-E R-A-Y-M-O-N-D.
Matthieu LOC
épelle B-A-L-L-E-T LOC
France LOC
Voulez LOC
France LOC
-        Vendredi LOC
de France LOC
France LOC
France LOC
Soudain LOC
016_13_bg_fr.txt
Gringalet LOC
Brinbeuf LOC
Gringalet LOC
Aubrives LOC
Valérie LOC
Valérie LOC
Ouais LOC
Valérie LOC
Gringalet LOC
Gringalet LOC
Aubrives LOC
Neuville LOC
Valérie LOC
Bonjour Charlotte LOC
Coppernicus LOC
Gringalet LOC
Valérie LOC
Valérie LOC
Gringalet LOC
Valérie LOC
016_13_frmod_fr.txt
Braddock LOC
Kristy LOC
Kristy LOC
Kristy LOC
Ouais LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Matthew LOC
Kristy LOC
Lucy LOC
Kristy LOC
Kristy LOC
Coppernicus LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
Kristy LOC
016_13_qu_fr.txt
Jessie LOC
Becca LOC
Biron LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
-        Tu LOC
-         LOC
Nouville LOC
-        Tu sais LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Becca LOC
Jessie LOC
Becca LOC
Copemicus LOC
Becca LOC
016_14_bg_fr.txt
Marjorie LOC
Aubrives LOC
Valérie LOC
Carole LOC
Mélanie LOC
Devinez LOC
Gringalet LOC
allons-y. LOC
Allez LOC
Aubrives LOC
Adeline LOC
Franz LOC
Franz LOC
016_14_frmod_fr.txt
Matthew LOC
Mallory LOC
Kristy LOC
Stamford LOC
Matthew LOC
Kristy LOC
New Jersey LOC
Kristy LOC
Carla LOC
Devinez LOC
Matthew LOC
Helen LOC
Coppélia LOC
allons-y.

 LOC
– Jessica LOC
Allez LOC
Stamford LOC
Helen LOC
Matthew LOC
week-end LOC
Matthew LOC
Matthew LOC
Franz LOC
Franz LOC
Helen LOC
Matthew LOC
Matthew LOC
Matthew LOC
Matthew LOC
Katie LOC
Matthew LOC
016_14_qu_fr.txt
Biron LOC
France LOC
mademoiselle Noëlle LOC
Becca LOC
Mes LOC
Arrivées LOC
Nouville LOC
Élizabeth LOC
-        Tu LOC
Élizabeth LOC
Élizabeth LOC
Franz LOC
016_15_bg_fr.txt
Adeline LOC
Valérie LOC
Julie LOC
Carole LOC
Mélanie LOC
France LOC
France LOC
Adeline LOC
Valérie LOC
Carole LOC
Mélanie LOC
Brinbeuf LOC
Julie LOC
Chantilly LOC
016_15_frmod_fr.txt
Katie LOC
Katie LOC
Braddock LOC
Helen LOC
Kristy LOC
Claudia LOC
Bonjour LOC
Keisha LOC
Keisha LOC
Keisha LOC
Keisha LOC
Matthew LOC
Helen LOC
Keisha LOC
Keisha LOC
cousine de Jessica LOC
Mallory LOC
Keisha LOC
Keisha LOC
Mallory LOC
Keisha LOC
Keisha LOC
Matthew LOC
Mallory LOC
Keisha LOC
Keisha LOC
Matthew LOC
Keisha LOC
Keisha LOC
Mallory LOC
Kristy LOC
Carla LOC
Matthew LOC
Helen LOC
Braddock LOC
banana LOC
Mmm LOC
banana LOC
Chantilly LOC
Kristy LOC
Matthew LOC
Matthew LOC
Matthew LOC
016_15_qu_fr.txt
Élizabeth LOC
-        Tu LOC
-        Salut! LOC
Élizabeth LOC
Kara LOC
-        Es LOC
Jessie LOC
Kara LOC
Regardez LOC
Kara LOC
Élizabeth LOC
-        Que LOC
Élizabeth LOC
-         LOC
Élizabeth LOC
Nous montons LOC
-         LOC
-        Heureux LOC

Skimming the results, it was interesting to see how much worse it performed than the person entity recognition. It feels like a minority of the results are legit places, and most of the results are people’s names.

9. French NER for orgs#

I was curious what I’d get by looking for entities flagged as organizations. I mean, this entire book series is about an organization: would that get flagged correctly? (Once again, I moved the _ner_loc.txt files into their own folder first.)

The verdict: Club des Baby (France-French translation) and Club des baby (Quebec translation) get marked as organizations; the “sitters” gets lost when “Baby-sitters” gets separated at the hyphen. There’s also various things that are most definitely not organizations that get tagged, like “Bonjour!” in Belgian ch. 10, or “PLIÉ” in Quebec ch. 3 (maybe spaCy thought it was an acronym and not a yelling dance teacher?)

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(filedirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('fr.txt'):
            #Write out below the name of the file
            print(filename)
            #The file name of the output file adds _ner_org to the end of the file name of the input file
            outfilename = filename.replace('.txt', '_ner_org.txt')
            #Open the infput filename
            with open(filename, 'r') as f:
                #Create and open the output filename
                with open(outfilename, 'w') as out:
                    #Read the contents of the input file
                    chaptertext = f.read()
                    #Do French NLP on the contents of the input file
                    chapterner = frnlp(chaptertext)
                    #For each recognized entity
                    for ent in chapterner.ents:
                        #If that entity is labeled as a person
                        if ent.label_ == 'ORG':
                            #Print the entity, and the label (which should be PER)
                            print(ent.text, ent.label_)
                            #Write the entity to the output file
                            out.write(ent.text)
                            #Write a newline character to the output file
                            out.write('\n')
016_01_bg_fr.txt
Coppélia ORG
016_01_frmod_fr.txt
Club des Baby-Sitters ORG
Coppélia ORG
Coppélia ORG
Club des Baby-Sitters ORG
016_01_qu_fr.txt
Club des baby-sitters ORG
Coppélia ORG
Coppélia ORG
Coppélia ORG
Club des baby-sitters ORG
016_02_bg_fr.txt
016_02_frmod_fr.txt
Club des Baby-Sitters ORG
Club des Baby-Sitters ORG
Mallory ORG
Club des Baby-Sitters ! ORG
016_02_qu_fr.txt
Club des baby-sitters c'est tout ça ORG
Club des baby-sitters il y ORG
Club des baby-sitters ORG
Croyez ORG
Club des baby-sitters ORG
016_03_bg_fr.txt
PLIE ORG
016_03_frmod_fr.txt
Coppélia ORG
016_03_qu_fr.txt
Coppélia ORG
Coppélia ORG
016_04_bg_fr.txt
016_04_frmod_fr.txt
016_04_qu_fr.txt
016_05_bg_fr.txt
016_05_frmod_fr.txt
016_05_qu_fr.txt
016_06_bg_fr.txt
BERK! ORG
LAURENT ORG
016_06_frmod_fr.txt
Patriots ORG
016_06_qu_fr.txt
Observer ORG
016_07_bg_fr.txt
016_07_frmod_fr.txt
Nicky ORG
Nicky ORG
Nicky ORG
Nicky ORG
Nicky ORG
016_07_qu_fr.txt
016_08_bg_fr.txt
Perron ORG
Sébastien ORG
016_08_frmod_fr.txt
Coppélia ORG
016_08_qu_fr.txt
Coppélia ORG
016_09_bg_fr.txt
Sébastien ORG
Revenons-en ORG
Arnould ORG
Sébastien ORG
Sébastien ORG
Arnould ORG
Aimeriez ORG
Sébastien ORG
Probablement ORG
Sébastien ORG
016_09_frmod_fr.txt
Club des Baby-Sitters ORG
016_09_qu_fr.txt
016_10_bg_fr.txt
016_10_frmod_fr.txt
Nicky ORG
Nicky ORG
Nicky ORG
Coppélia ORG
016_10_qu_fr.txt
Coppélia ORG
016_11_bg_fr.txt
croyez ORG
016_11_frmod_fr.txt
Club des Baby-Sitters ORG
016_11_qu_fr.txt
Perplexe ORG
Club des baby-sitters ORG
016_12_bg_fr.txt
Coppélia ORG
Coppélia ORG
016_12_frmod_fr.txt
Coppélia ORG
Coppélia ORG
016_12_qu_fr.txt
École des sourds ORG
Coppélia ORG
Coppélia ORG
016_13_bg_fr.txt
Coppélia ORG
016_13_frmod_fr.txt
Club des Baby-Sitters ORG
016_13_qu_fr.txt
Club des baby-sitters ORG
Miss Nouville ORG
Coppélia ORG
016_14_bg_fr.txt
Coppélia ORG
Coppélia ORG
016_14_frmod_fr.txt
Coppélia ORG
016_14_qu_fr.txt
Coppélia ORG
016_15_bg_fr.txt
016_15_frmod_fr.txt
Keisha ORG
Keisha ORG
016_15_qu_fr.txt

10. French NER for misc#

The French entity model also has a “MISC” type, so for the sake of completeness, I couldn’t not try it. And the results are as advertised. Lots of names. Lots of “Ça”. There’s a “Tu es atroce” (You’re excruciating) from Ch. 5 of the France French version. “Le Langage Secret” in Ch. 6 of the Belgian translation gets flagged, and “P’tit” makes an appearance more than once. Only in the France French version do “Noirs” (Black people) and “Noire de mon école” (Black person in my school) get flagged.

(July 19, 2021 note: this is clearly another area where there’s been a lot of improvement between spaCy 2 and spaCy 3. There’s still some weird stuff, like “Oh!” and “Salut”, but overall a lot fewer results and a lot less garbage.)

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(filedirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('fr.txt'):
            #Write out below the name of the file
            print(filename)
            #The file name of the output file adds _ner_misc to the end of the file name of the input file
            outfilename = filename.replace('.txt', '_ner_misc.txt')
            #Open the infput filename
            with open(filename, 'r') as f:
                #Create and open the output filename
                with open(outfilename, 'w') as out:
                    #Read the contents of the input file
                    chaptertext = f.read()
                    #Do French NLP on the contents of the input file
                    chapterner = frnlp(chaptertext)
                    #For each recognized entity
                    for ent in chapterner.ents:
                        #If that entity is labeled as a person
                        if ent.label_ == 'MISC':
                            #Print the entity, and the label (which should be PER)
                            print(ent.text, ent.label_)
                            #Write the entity to the output file
                            out.write(ent.text)
                            #Write a newline character to the output file
                            out.write('\n')
016_01_bg_fr.txt
Ouagadougou MISC
Bonjour MISC
Oh-ada-ada MISC
Coppélia MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
016_01_frmod_fr.txt
Si MISC
Rebecca MISC
P'tit Bout MISC
Si MISC
Rebecca MISC
P'tit Bout MISC
P'tit Bout MISC
Bonjour ! MISC
Rebecca MISC
P'tit Bout sur elle. MISC
P'tit Bout MISC
Aah-ada-dada MISC
Rebecca MISC
P'tit Bout MISC
– Oui MISC
Coppélia MISC
Rebecca MISC
Ça MISC
Rebecca MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
016_01_qu_fr.txt
Rebecca MISC
Jaja MISC
Noirs MISC
Noirs MISC
Becca MISC
Jessie MISC
Dr Coppélius MISC
Swanilda MISC
Swanilda MISC
Dr Coppélius MISC
Swanilda MISC
016_02_bg_fr.txt
Salut! MISC
Excusez MISC
Nicolas MISC
Nicolas MISC
Julie MISC
Carole MISC
Carole MISC
Merci MISC
Oh MISC
Merci MISC
016_02_frmod_fr.txt
Kristy MISC
Andrew MISC
Kristy MISC
Kristy MISC
Kristy MISC
– Oui MISC
Merci MISC
Merci ! MISC
016_02_qu_fr.txt
Ça MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Une fois par semaine MISC
Je sais MISC
Christine MISC
Christine MISC
André MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Et je suis d'accord MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Merci MISC
Christine MISC
Hélène MISC
Matthieu MISC
Christine MISC
Christine MISC
Jessie MISC
016_03_bg_fr.txt
Hélène MISC
Coppélia MISC
Danse des Heures MISC
Coppélia MISC
Swanilda MISC
Swanilda MISC
MOI! MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Merci MISC
Oh MISC
Coppélia MISC
016_03_frmod_fr.txt
J'attendais MISC
Katie MISC
Katie MISC
Coppélia MISC
Katie MISC
Valse des heures MISC
Katie MISC
Hilary MISC
Katie MISC
XIXe MISC
Coppélia MISC
Swanilda MISC
Swanilda MISC
Moi ! MISC
Swanilda MISC
Swanilda MISC
Lisa MISC
Katie MISC
Katie MISC
Katie MISC
Hilary MISC
016_03_qu_fr.txt
PLIÉ MISC
Coppélia MISC
Ça MISC
Élizabeth MISC
Danse des heures MISC
Elizabeth MISC
Coppélia MISC
Swanilda MISC
MOI! MISC
Swanilda MISC
Jessie MISC
Jessie MISC
Élizabeth MISC
016_04_bg_fr.txt
Merci MISC
Bonjour MISC
C. Le livre me fit MISC
lettre C MISC
Oh, j'ai compris! MISC
Ça MISC
Ça MISC
016_04_frmod_fr.txt
Hilary MISC
Katie MISC
Formidable !

 MISC
Rebecca MISC
lettre C MISC
Ça MISC
Ça MISC
016_04_qu_fr.txt
Les Petits Chaussons MISC
Oh! MISC
Hélène MISC
Jessie MISC
Hélène MISC
Jessica MISC
Hélène MISC
Hélène MISC
Hélène MISC
Hélène MISC
Clé MISC
Ça MISC
Matthieu MISC
Hélène MISC
comète de Halley MISC
Qu'en pensez-vous? MISC
Hélène MISC
Hélène MISC
Hélène MISC
Hélène MISC
016_05_bg_fr.txt
Veux-tu MISC
Ça MISC
Salut! MISC
Partons MISC
INFECT MISC
Ah! MISC
016_05_frmod_fr.txt
Braddock ! MISC
Prezzioso MISC
Prezzioso MISC
Termine ton gâteau MISC
Jen MISC
Jen MISC
N'oubliez pas MISC
– Bon MISC
– Bon MISC
– Bon MISC
Matthew ! MISC
Ah ! MISC
Stonebrook MISC
016_05_qu_fr.txt
Jessie MISC
Prieur MISC
Prieur MISC
Pensez MISC
Hélène MISC
Matthieu MISC
Hélène MISC
Hélène MISC
Jessie MISC
Matthieu! MISC
Bien sûr MISC
Hélène et Matthieu MISC
Hélène MISC
016_06_bg_fr.txt
Merci MISC
Bonjour! MISC
P. C' MISC
Les Godefroid MISC
Godefroid MISC
Le Langage Secret MISC
Anaïs MISC
016_06_frmod_fr.txt
– Oui MISC
J avec mes doigts MISC
V MISC
– Bon… MISC
Bonjour ! MISC
P. C' MISC
Rebecca MISC
Rebecca MISC
Pike MISC
N-I-C-K-Y.

Nous arrivions chez les MISC
Pike MISC
Liz quatre MISC
Pike MISC
Le Langage secret MISC
Pike MISC
Super Bowl MISC
Pike MISC
016_06_qu_fr.txt
Hélène et Matthieu MISC
Hélène MISC
Hélène MISC
Rappelle-toi MISC
Je sais MISC
Oh! MISC
J MISC
Jessie MISC
Un J qui danse! MISC
Hélène MISC
Jessie MISC
Hélène MISC
Un signe et un sourire MISC
Super! mime Matthieu MISC
Hélène MISC
Hélène MISC
Hélène MISC
N-I-C-O-L-A-S.
 MISC
Picard MISC
Hélène et Matthieu MISC
Langage secret! MISC
Nicolas MISC
Génial! MISC
Patriotes MISC
Hélène MISC
Hélène et Matthieu MISC
016_07_bg_fr.txt
Pas moi! MISC
Hé MISC
Laurent! MISC
Oh non MISC
Carole MISC
Carole MISC
Plie tes doigts MISC
Si MISC
Swanilda MISC
016_07_frmod_fr.txt
Pike MISC
Pike MISC
Pas moi MISC
Pike MISC
– Bon MISC
Pike MISC
Pike MISC
Pike MISC
Pike MISC
Nicky ! MISC
Carla ! MISC
Ça MISC
Pike MISC
Swanilda MISC
Pike MISC
016_07_qu_fr.txt
Vendredi
Oh MISC
Jessie MISC
Pas moi MISC
Journal de bord MISC
Bernard MISC
Nicolas MISC
Picard MISC
Ça MISC
Bernard MISC
Joël MISC
Nicolas MISC
Nicolas MISC
Nicolas! MISC
Nicolas MISC
Bernard MISC
verdir MISC
Oh non! MISC
Nicolas MISC
Nicolas MISC
Nicolas MISC
Nicolas MISC
Ça MISC
Bernard MISC
Jessie MISC
Hélène et Matthieu MISC
Swanilda MISC
Ça MISC
016_08_bg_fr.txt
Mes os MISC
Swanilda MISC
Swanilda MISC
Hélène MISC
Je souris MISC
Oh MISC
Oh MISC
Perron MISC
Nicolas MISC
016_08_frmod_fr.txt
Mes os MISC
Swanilda MISC
Katie MISC
Swanilda MISC
Katie MISC
– Bon travail MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Rebecca MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Rebecca MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
Katie MISC
016_08_qu_fr.txt
Mes os MISC
Mes muscles MISC
Swanilda MISC
Merci MISC
Swanilda MISC
Super! MISC
Merci! MISC
-À MISC
Ça MISC
016_09_bg_fr.txt
Nicolas MISC
Julie MISC
Julie MISC
Nicolas MISC
Nicolas MISC
Valérie! MISC
Bonjour MISC
Bonjour Julie MISC
Merci MISC
Super MISC
Sébastien MISC
Coralie et Julie MISC
Bonjour MISC
Bonjour MISC
Julie MISC
Ça MISC
Julie MISC
Arnould MISC
Hum MISC
Julie aux enfants MISC
Attends MISC
Je souris MISC
Julie aux enfants MISC
Julie MISC
Merci Julie MISC
HOU MISC
Oh MISC
Julie MISC
Bonne nuit MISC
Doudou MISC
Flocon MISC
Mon voisin MISC
Julie MISC
Doudou et son Flocon MISC
Bonne nuit MISC
016_09_frmod_fr.txt
Andrew MISC
Kristy MISC
Andrew MISC
Kristy MISC
Andrew MISC
Morbidda Destiny MISC
Andrew MISC
Andrew MISC
Kristy MISC
Kristy ! MISC
Bonjour MISC
Andrew MISC
– Bon MISC
Andrew MISC
Super ! MISC
Merci ! MISC
Ça MISC
Andrew MISC
– Bon MISC
Andrew MISC
Andrew MISC
Rebecca MISC
Andrew MISC
Andrew MISC
Andrew MISC
Andrew MISC
Bonne nuit MISC
Andrew MISC
Tiens MISC
Bonne nuit MISC
Andrew MISC
Andrew MISC
016_09_qu_fr.txt
André MISC
David MISC
Christine MISC
Christine MISC
André MISC
Christine MISC
Christine MISC
André MISC
Christine MISC
André MISC
André MISC
David MISC
Christine MISC
Christine! MISC
Christine MISC
Christine MISC
André MISC
Christine MISC
André MISC
Merci!
-        Maintenant MISC
Christine MISC
André MISC
André MISC
André MISC
André MISC
Ça MISC
André MISC
Karen MISC
André MISC
Christine MISC
André MISC
André MISC
André MISC
André MISC
André MISC
André MISC
Jessie MISC
André MISC
016_10_bg_fr.txt
Je souris MISC
Bonjour! MISC
Je souris MISC
Noël MISC
Dada Bo MISC
016_10_frmod_fr.txt
Pike MISC
Nicky Pike MISC
Matthew de la main MISC
P'tit Bout MISC
Adam MISC
Rebecca MISC
Rebecca MISC
P'tit Bout aussi MISC
Rebecca MISC
Rebecca MISC
Noël MISC
Je connaissais ça MISC
Rebecca MISC
P'tit Bout pendant MISC
Rebecca MISC
Rebecca MISC
P'tit Bout MISC
016_10_qu_fr.txt
Hélène MISC
Picard MISC
Hélène MISC
Nicolas MISC
Hélène MISC
Matthieu MISC
Nicolas MISC
Été! MISC
Nicolas MISC
Hélène MISC
Nicolas MISC
Nicolas MISC
Nicolas MISC
Hélène MISC
Hélène MISC
soeur de MISC
Hélène MISC
Hélène MISC
fond Matthieu MISC
Nicolas MISC
Antoine MISC
Nicolas MISC
Antoine MISC
Hélène MISC
Jessie MISC
Becca MISC
Noël MISC
Jaja MISC
Ça MISC
Hélène MISC
Hélène MISC
Je sais MISC
Hélène MISC
016_11_bg_fr.txt
Mon idée MISC
Bonjour MISC
Excusez MISC
Carole MISC
Julie MISC
Julie MISC
Je souris MISC
Julie MISC
Carole MISC
Nicolas MISC
Carole inquiète MISC
Julie MISC
Mélanie MISC
mur MISC
Carole MISC
Carole MISC
Nicolas MISC
Hum MISC
Coppélia MISC
016_11_frmod_fr.txt
– Bon MISC
Kristy MISC
Logan !

Logan MISC
mur MISC
P'tit Bout vivaient MISC
Hum MISC
croyez-moi ! MISC
Bonjour MISC
Coppélia MISC
016_11_qu_fr.txt
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Hélène MISC
Christine MISC
Christine MISC
Jaja MISC
Christine MISC
Christine MISC
Christine MISC
Bonjour MISC
Christine MISC
Becca MISC
016_12_bg_fr.txt
Prête MISC
Nous atteignîmes la dernière porte du couloir MISC
Assieds-toi MISC
Merci MISC
Ah bon MISC
Merci MISC
016_12_frmod_fr.txt
– Prête MISC
classe de Matthew MISC
Les enfants MISC
Merci MISC
016_12_qu_fr.txt
Nous atteignons la dernière porte MISC
Jessie MISC
classe de Matthieu MISC
Jessie MISC
Ça MISC
Jessie MISC
Jessie MISC
Un petit garçon assis MISC
Merci MISC
016_13_bg_fr.txt
Bonjour MISC
Livre du Chat MISC
Aga! MISC
Oh! MISC
Oh! MISC
Merci! MISC
Ah! MISC
Oh, super! MISC
Bonjour Valérie! MISC
Oh! MISC
016_13_frmod_fr.txt
Rebecca MISC
Rebecca MISC
Rebecca MISC
P'tit Bout MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Livre du chat MISC
P'tit Bout de sa chambre MISC
Oh ! MISC
P'tit Bout MISC
Kristy MISC
Rebecca MISC
Oh ! MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
P'tit Bout MISC
Rebecca MISC
P'tit Bout MISC
P'tit Bout MISC
Rebecca MISC
Kristy MISC
Merci !

– Mais vraiment gentille MISC
Rebecca MISC
Rebecca MISC
Stonebrook MISC
Ça MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
ça MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Rebecca MISC
Kristy ! MISC
Rebecca MISC
Rebecca MISC
Bout et moi allons jouer là-haut MISC
Rebecca MISC
P'tit Bout MISC
P'tit Bout MISC
Rebecca MISC
Ma sœur a souri MISC
Oh ! MISC
– Oui MISC
Rebecca MISC
016_13_qu_fr.txt
Jaja! MISC
Jessie MISC
Christine MISC
Jaja MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Becca MISC
Jaja MISC
Christine MISC
Merci! MISC
Christine MISC
Christine MISC
Christine MISC
Christine MISC
Japonaise MISC
Christine MISC
Becca MISC
Jessie MISC
Jessie MISC
Christine MISC
Jessie MISC
Christine MISC
Ça MISC
Christine MISC
Christine MISC
Christine MISC
016_14_bg_fr.txt
Dieu MISC
Swanilda MISC
Prête MISC
Excusez MISC
Prête MISC
Merci MISC
Swanilda MISC
Swanilda MISC
Je souris et la remerciai MISC
Swanilda MISC
acte II MISC
acte III MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Je souris MISC
Swanilda MISC
Swanilda MISC
016_14_frmod_fr.txt
Seigneur ! MISC
Rebecca MISC
Rebecca MISC
P'tit Bout MISC
Swanilda MISC
– Prête MISC
Une main MISC
– Prête MISC
Swanilda MISC
Katie MISC
Swanilda MISC
Swanilda MISC
Katie MISC
Katie MISC
Katie MISC
acte II MISC
acte III MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Katie MISC
Katie MISC
Katie MISC
016_14_qu_fr.txt
Dr Coppélius MISC
Swanilda MISC
Une main touche MISC
Hélène MISC
Merci MISC
Hélène MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
acte II MISC
Hélène MISC
acte III MISC
Swanilda MISC
Dr Coppélius MISC
Swanilda MISC
Dr Coppélius MISC
Swanilda MISC
Je souris MISC
Swanilda MISC
Swanilda MISC
016_15_bg_fr.txt
Bonjour MISC
Félicitations MISC
Je souris MISC
Merci MISC
Bonjour MISC
Oh! MISC
Excusez MISC
Hé! MISC
Chérie MISC
Ça MISC
Super! MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
hein MISC
Julie MISC
Taverne des Pêcheurs MISC
Julie MISC
016_15_frmod_fr.txt
Katie MISC
Katie MISC
Katie MISC
C'était papa MISC
Rebecca MISC
Jessi ! MISC
Félicitations MISC
Katie MISC
Katie MISC
Oh ! MISC
J'ai acquiescé MISC
Jessica et moi MISC
Oh, merci MISC
Mallory MISC
Hé ! MISC
Super ! MISC
– Oui MISC
Mes amies MISC
Katie MISC
Katie MISC
Swanilda MISC
Swanilda MISC
Katie MISC
Swanilda MISC
Katie MISC
Katie MISC
Katie MISC
Rebecca MISC
– Bon d'accord MISC
016_15_qu_fr.txt
Jessie MISC
Bonjour MISC
Félicitations! MISC
Jessie MISC
Oh! MISC
Kara MISC
Jessie MISC
Merci MISC
Mes amies MISC
Jessie MISC
Swanilda MISC
Swanilda MISC
Swanilda MISC
Fleur bleue MISC
Jessie MISC
Christine MISC
Jessie MISC
Hélène MISC

Let’s do it all again for English#

The steps below in the notebook basically repeat the process described above, but using the spaCy model for English instead of French. At first, I just copied over the code cells from the French section (switching out enfiledirectory for filedirectory in the first line so it looked in the right place for the English files), but kept getting some bizarre output: namely, it wasn’t able to find any entities labeled PER or LOC.

To figure out what was going on, I removed the line if ent.label_ == 'PER': and un-indented the code nested inside it, to avoid Python indentation errors, then commented-out the following out.write lines by putting a # in front of them. I didn’t want to write any results, I just wanted to see what entities it found.

Lo and behold, there were lots of entities, with more different entity labels than available for French. There’s GPE (geopolitical entity, AKA location, but not any of the locations that are like “so-and-so’s room”), DATE, CARDINAL (number type), LANGUAGE (seems relevant for Jessi’s Secret Language), TIME (e.g. “the morning of the day”), DATE (things like “a few weeks”, or, strangely, “eight-year-old”), PERSON (not PER).

First, we have to put in the path to the English files, then change to that directory:

#Put in the path here, using the same conventions as described above in step 4
enfiledirectory = '/Users/qad/Documents/dsc/dscm2/en'
os.chdir(enfiledirectory)

11. English NER for people#

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(enfiledirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('en.txt'):
        #Write out below the name of the file
        print(filename)
        #The file name of the output file adds _ner_per to the end of the file name of the input file
        outfilename = filename.replace('.txt', '_ner_per.txt')
        #Open the infput filename
        with open(filename, 'r') as f:
            #Create and open the output filename
            with open(outfilename, 'w') as out:
                #Read the contents of the input file
                chaptertext = f.read()
                #Do English NLP on the contents of the input file
                chapterner = ennlp(chaptertext)
                #For each recognized entity
                for ent in chapterner.ents:
                    #If that entity is labeled as a person
                    if ent.label_ == 'PERSON':
                        #Print the entity, and the label (which should be PER)
                        print(ent.text, ent.label_)
                        #Write the entity to the output file
                        out.write(ent.text)
                        #Write a newline character to the output file
                        out.write('\n')
016_01_en.txt
chuck PERSON
Becca PERSON
John Philip Ramsey, Jr. PERSON
Jessi Ramsey PERSON
Jessica Davis Ramsey PERSON
Becca PERSON
Oakley PERSON
Oakley Elementary PERSON
Keisha PERSON
Oakley PERSON
Mallory Pike PERSON
Barre PERSON
Mama PERSON
Jessi PERSON
Mama PERSON
Jessi PERSON
Becca PERSON
Coppelius PERSON
Becca PERSON
Franz PERSON
Swanilda PERSON
Swanilda PERSON
Coppelius PERSON
Franz PERSON
Becca PERSON
Noelle PERSON
016_02_en.txt
Kristy Thomas PERSON
Mallory Pike PERSON
Kristy PERSON
Kristy PERSON
Mal PERSON
Kristy PERSON
David Michael PERSON
Thomas PERSON
Kristy PERSON
Mary Anne Spier PERSON
Claudia Kishi PERSON
Stacey McGill PERSON
Stacey PERSON
Mal PERSON
Dawn Schafer PERSON
Kristy PERSON
Mary Anne PERSON
Dawn PERSON
Mal PERSON
Kristy PERSON
Kristy PERSON
Sam PERSON
Charlie PERSON
David Michael PERSON
Watson Brewer PERSON
Karen PERSON
Andrew PERSON
Kristy PERSON
Claudia Kishi PERSON
Mary Anne Spier PERSON
Watson PERSON
Brewer PERSON
Kristy PERSON
Charlie PERSON
Mary Anne PERSON
Claudia Kishi PERSON
Once Mal PERSON
Mary Anne PERSON
Mal PERSON
Janine PERSON
Mimi PERSON
Mary Anne Spier PERSON
Dawn Schafer's PERSON
Mary Anne PERSON
Kristy PERSON
Mary Anne PERSON
Mary Anne PERSON
Mary Anne PERSON
Claudia PERSON
Mary Anne PERSON
Tigger PERSON
Spier PERSON
Stacey McGill PERSON
Stacey PERSON
Dawn Schafer PERSON
Dawn PERSON
Mary Anne PERSON
Dawn PERSON
Jeff PERSON
Jeff PERSON
Schafer PERSON
Dawn PERSON
Dawn PERSON
Mal PERSON
Mal PERSON
Mal PERSON
Mal PERSON
Logan Bruno PERSON
Mary Anne's PERSON
Dawn PERSON
Mal PERSON
Kristy PERSON
Mary Anne PERSON
Dawn PERSON
Mal PERSON
Kristy PERSON
Braddock PERSON
Haley PERSON
Matthew PERSON
Braddocks PERSON
Matthew PERSON
Ameslan PERSON
Ameslan PERSON
Braddock PERSON
Dawn PERSON
Mary Anne PERSON
Kristy PERSON
Mal PERSON
Mal PERSON
Kristy PERSON
Braddock PERSON
Mal PERSON
Jessi PERSON
016_03_en.txt
plié PERSON
PLIÉ PERSON
Mme Noelle PERSON
Mme Noelle PERSON
Mme Noelle PERSON
Katie Beth PERSON
Katie Beth PERSON
Mademoiselle Romsey PERSON
Mademoiselle Romsey PERSON
Ramsey PERSON
Mme Noelle's PERSON
Hilary PERSON
Katie Beth PERSON
Katie Beth PERSON
Mme Noelle PERSON
Mme Noelle PERSON
Hilary PERSON
Katie Beth PERSON
Mary Bramstedt PERSON
Lisa Jones PERSON
Katie Beth PERSON
Coppélia PERSON
Hilary PERSON
Katie Beth PERSON
Mme Noelle PERSON
Jessica Romsey PERSON
Jessica Romsey PERSON
Jessica Ramsey PERSON
Mme Noelle PERSON
Closs PERSON
Jessi PERSON
Mary Bramstedt PERSON
Lisa Jones PERSON
Jessi PERSON
Mary PERSON
Lisa PERSON
Hilary PERSON
Katie Beth PERSON
Katie Beth PERSON
Katie Beth PERSON
Katie Beth PERSON
Hilary PERSON
Hilary PERSON
Katie PERSON
Katie Beth PERSON
Hilary PERSON
016_04_en.txt
Mama PERSON
Mama PERSON
Noelle PERSON
Mama PERSON
Katie Beth PERSON
Matthew Braddock PERSON
Ameslan PERSON
Matthew PERSON
Ameslan PERSON
Ameslan PERSON
Matt PERSON
Braddocks PERSON
Haley PERSON
Jessica PERSON
Jessi PERSON
Haley PERSON
Geiger PERSON
Braddock PERSON
Jessica PERSON
Jessi PERSON
Mommy PERSON
Haley PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Braddock PERSON
Mommy PERSON
Haley PERSON
Braddock PERSON
Matt PERSON
Jessi PERSON
Haley PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Braddocks PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Haley PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Braddocks PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Jessi PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Haley PERSON
Matt PERSON
Braddock PERSON
Braddpck PERSON
Matt PERSON
Haley PERSON
Braddocks PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Braddock PERSON
Braddock PERSON
016_05_en.txt
Brat PERSON
Jenny PERSON
Braddocks PERSON
Jenny PERSON
Mary Anne Spier PERSON
Jenny Prezzioso PERSON
Mary Anne's PERSON
Jenny PERSON
Mary Anne's PERSON
Prezziosos PERSON
P. PERSON
Mary Anne PERSON
Jenny PERSON
Becca PERSON
Jenny PERSON
Mary Anne PERSON
Prezziosos PERSON
Mary Janes PERSON
Jenny PERSON
Jenny PERSON
Prezziosos PERSON
Jenny PERSON
Prezzioso PERSON
Mary Anne PERSON
Jenny PERSON
Jen PERSON
Mary Anne PERSON
Jenny PERSON
Jen PERSON
Jenny PERSON
Mary Anne PERSON
Jenny PERSON
Mary Anne PERSON
Jenny PERSON
Jenny PERSON
Mary Anne PERSON
Candy Land PERSON
Jenny PERSON
Squirrel Nutkin PERSON
Jenny PERSON
Mary Anne PERSON
Jenny PERSON
Mary Anne PERSON
Jenny PERSON
Mary Anne PERSON
Mary Anne PERSON
Jenny PERSON
Mary Anne PERSON
Mary Anne PERSON
Mary Anne PERSON
Jenny PERSON
Jenny PERSON
Jenny PERSON
Jenny PERSON
Mary Anne PERSON
Jenny PERSON
Mary Anne PERSON
Matt PERSON
Haley PERSON
Braddocks PERSON
Braddocks PERSON
Braddock PERSON
Matt PERSON
Haley PERSON
Mary Anne PERSON
Jenny PERSON
Braddocks PERSON
Mary Anne PERSON
Braddocks PERSON
Jenny PERSON
Braddocks PERSON
Jenny PERSON
Mary Anne PERSON
Haley PERSON
Matt PERSON
Jenny PERSON
Haley PERSON
Matt PERSON
Jenny PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Jenny PERSON
Matt PERSON
Jenny PERSON
Jenny PERSON
Haley PERSON
Matt PERSON
Jenny PERSON
Mary Anne PERSON
Haley PERSON
Haley PERSON
Mary Anne PERSON
Jessi PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Braddocks PERSON
Haley PERSON
Matt PERSON
Braddocks PERSON
Haley PERSON
Matt PERSON
016_06_en.txt
Haley PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Braddock PERSON
Braddocks PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Jessi PERSON
Braddock PERSON
Haley PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Braddocks PERSON
Mary Anne PERSON
Jenny Prezzioso PERSON
Matt PERSON
Haley PERSON
Charlotte Johanssen PERSON
Matt PERSON
Haley PERSON
Pikes PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Vanessa PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Pikes PERSON
Matt PERSON
Barretts PERSON
Matt PERSON
Pikes PERSON
Pike PERSON
Pikes PERSON
Barretts PERSON
Haley PERSON
Matt PERSON
Margo PERSON
Mom PERSON
Dad PERSON
Nicky PERSON
Vanessa PERSON
Haley PERSON
Claire PERSON
Matt PERSON
Claire PERSON
Haley PERSON
Claire PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Buddy Barrett PERSON
Haley PERSON
Matt PERSON
Buddy PERSON
Matt PERSON
Pikes PERSON
Braddock PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Pikes PERSON
016_07_en.txt
Jessi PERSON
Jessi PERSON
Mal PERSON
Mal PERSON
Dawn PERSON
Pike PERSON
Adam PERSON
Claire PERSON
Dawn PERSON
Pike PERSON
Pike PERSON
Pike PERSON
Dawn PERSON
Pikes PERSON
Pikes PERSON
Pike PERSON
Claire PERSON
Dawn PERSON
Pike PERSON
Dawn PERSON
Adam PERSON
Adam PERSON
Claire PERSON
Adam PERSON
bush PERSON
Adam PERSON
Adam PERSON
Jordan PERSON
Dawn PERSON
Adam PERSON
Dawn PERSON
Dawn PERSON
Vanessa Pike PERSON
Adam PERSON
Margo PERSON
Dawn PERSON
Dawn PERSON
Pikes PERSON
Mal PERSON
Dawn PERSON
Dawn PERSON
Vanessa PERSON
Margo PERSON
Claire PERSON
Dawn PERSON
Mal PERSON
Vanessa PERSON
Jordan PERSON
Mal PERSON
Dawn PERSON
Dawn PERSON
Jessi PERSON
Dawn PERSON
Haley PERSON
Matt PERSON
Dawn PERSON
Matt PERSON
Pikes PERSON
Matt PERSON
Haley PERSON
016_08_en.txt
Noelle PERSON
Katie Beth PERSON
Mademoiselle Bramstedt PERSON
Mary PERSON
Mademoiselle Romsey PERSON
Katie Beth PERSON
Katie Beth PERSON
Hilary PERSON
Katie Beth PERSON
Katie Beth PERSON
Katie Beth PERSON
Katie PERSON
Katie PERSON
Becca PERSON
Katie Beth PERSON
Adele PERSON
Adele PERSON
Adele PERSON
Katie Beth PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Katie PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Katie PERSON
Adele PERSON
Adele PERSON
Katie Beth PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Katie Beth PERSON
Matt PERSON
Boy PERSON
Matt PERSON
Adele PERSON
Braddocks PERSON
Matt PERSON
Adele PERSON
Katie Beth PERSON
Katie Beth PERSON
Matt PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Adele PERSON
Haley PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Adele PERSON
Katie Beth's PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
016_09_en.txt
Jessie PERSON
Karen Andrew PERSON
David Micheal PERSON
Kristy PERSON
Sam PERSON
Charlie PERSON
Karen PERSON
Karen PERSON
Matt PERSON
stepbrother PERSON
Karen PERSON
Karen Brewer PERSON
Karen PERSON
Andrew PERSON
Karen PERSON
Porter PERSON
Morbidda Destiny PERSON
Ben Brewer PERSON
Andrew PERSON
Karen PERSON
Karen PERSON
Andrew PERSON
David Michael PERSON
Claudia PERSON
Sam PERSON
Charlie PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Kristy PERSON
Brewer PERSON
Brewer PERSON
Elizabeth PERSON
Karen PERSON
Andrew PERSON
Brewer PERSON
Kristy PERSON
Andrew PERSON
Karen PERSON
David Michael's PERSON
Karen PERSON
Karen PERSON
David Michael's PERSON
Brewer PERSON
Andrew PERSON
Brewer PERSON
Karen PERSON
Andrew PERSON
David Michael PERSON
Andrew PERSON
Karen PERSON
Andrew PERSON
David Michael PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Andrew PERSON
Karen PERSON
Karen PERSON
Andrew PERSON
David Michael PERSON
Karen PERSON
Claudia PERSON
David Michael PERSON
Karen PERSON
Karen PERSON
Claudia PERSON
Jessi Ramsey PERSON
Claudia PERSON
Sometimes Mal PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Claudia PERSON
Karen PERSON
Karen PERSON
Yick PERSON
Andrew PERSON
Karen PERSON
Claudia PERSON
Andrew PERSON
Andrew PERSON
Andrew PERSON
Karen PERSON
Andrew PERSON
Claudia PERSON
Karen PERSON
Claudia PERSON
Andrew PERSON
Claudia PERSON
Andrew PERSON
Andrew PERSON
Andrew PERSON
Karen PERSON
Moosie PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Karen PERSON
Moosie PERSON
Karen PERSON
Jessi PERSON
Andrew PERSON
Claudia PERSON
Karen PERSON
Karen PERSON
Claudia PERSON
Karen PERSON
Andrew PERSON
David Michael's PERSON
016_10_en.txt
Braddocks PERSON
Matt PERSON
Haley PERSON
Braddock PERSON
Braddocks PERSON
Haley PERSON
Braddock PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Pikes PERSON
Barretts PERSON
Jenny Prezzioso PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Nicky Pike PERSON
Haley PERSON
Matt PERSON
Buddy Barrett PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Buddy Barrett PERSON
Braddocks PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Nicky PERSON
Matt PERSON
Jordan PERSON
Haley PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Mama PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Adam PERSON
Matt PERSON
Adam PERSON
Haley PERSON
Jessi PERSON
Haley PERSON
Haley PERSON
Stoneybrook Elementary PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Matt PERSON
Helen Keller PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Adele PERSON
Mme Noelle's PERSON
Haley PERSON
Mme Noelle PERSON
016_11_en.txt
Mme Noelle PERSON
Braddock PERSON
Kishis PERSON
Mal PERSON
Kristy PERSON
Mary Anne PERSON
Dawn PERSON
Mal PERSON
Mal PERSON
Mal PERSON
Ballerinas PERSON
Kristy PERSON
Kristy PERSON
Charlie PERSON
Kristy PERSON
Charlie PERSON
Dawn PERSON
Kristy PERSON
Claudia PERSON
Kristy PERSON
Kristy PERSON
Mary Anne PERSON
Mary Anne PERSON
Jessi PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Dawn PERSON
Mary Anne PERSON
Kristy PERSON
Braddocks PERSON
Mary Anne PERSON
Mary Anne's PERSON
Mary Anne PERSON
Logan PERSON
Jessi PERSON
Braddocks PERSON
Claudia PERSON
Mary Anne's PERSON
Dawn PERSON
Kristy PERSON
Dawn PERSON
Tigger PERSON
Mary Anne PERSON
Dawn PERSON
Mary Anne PERSON
Kristy PERSON
Kristy PERSON
Charlie PERSON
Dawn PERSON
Kristy PERSON
Mal PERSON
Mal PERSON
Hmphh PERSON
Mal PERSON
Braddock PERSON
Matt PERSON
Kristy PERSON
Mary Anne PERSON
Mal PERSON
Mama PERSON
Grandma PERSON
Grandpa PERSON
016_12_en.txt
Mama PERSON
Braddock PERSON
Braddock PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Braddock PERSON
Braddock PERSON
Jessi PERSON
Matt PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Jessi PERSON
Frank PERSON
Matt PERSON
Braddock PERSON
Braddock PERSON
Matt PERSON
Frank PERSON
Matt PERSON
Frank PERSON
Matt PERSON
Braddock PERSON
Frank PERSON
Frank PERSON
Frank PERSON
Jessi Ramsey PERSON
Matt PERSON
Frank PERSON
Jessi PERSON
Frank PERSON
Matt Braddock PERSON
Jessi PERSON
Frank PERSON
Frank PERSON
Braddock PERSON
Matt PERSON
Frank PERSON
Matt PERSON
Matt PERSON
Frank PERSON
Frank PERSON
Frank PERSON
Braddock PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Matt PERSON
016_13_en.txt
Jessi PERSON
Especially Squirt PERSON
Jessi PERSON
Braddocks PERSON
Charlotte Johanssen PERSON
Kristy PERSON
Stacey McGill PERSON
Mama PERSON
Kristy PERSON
Millikan PERSON
Millikan PERSON
Millikan PERSON
Becca PERSON
Pinky Pye PERSON
Bloo-ga PERSON
Kristy PERSON
Kristy PERSON
Kristy PERSON
Kristy PERSON
Kristy PERSON
Becca PERSON
Kristy PERSON
Kristy PERSON
Matt PERSON
Becca PERSON
Kristy PERSON
Kristy PERSON
Becca PERSON
Charlotte Johanssen PERSON
Becca PERSON
Stacey McGill PERSON
Stacey PERSON
Stacey PERSON
Charlotte PERSON
Charlotte PERSON
Kristy PERSON
Charlotte PERSON
Char PERSON
Becca PERSON
Jessi PERSON
Charlotte PERSON
Becca PERSON
Jessi PERSON
Kristy PERSON
Kristy PERSON
Jessi PERSON
Kristy PERSON
Kristy PERSON
Kristy PERSON
Jessi PERSON
Becca PERSON
Kristy PERSON
Braddock PERSON
Kristy Thomas PERSON
016_14_en.txt
Braddocks PERSON
Mme Noelle PERSON
Frank PERSON
Matt PERSON
Matt PERSON
Mary Anne PERSON
Grandma PERSON
Grandpa PERSON
Dawn PERSON
Mary Anne PERSON
Mal PERSON
Logan Bruno PERSON
Mary Anne's PERSON
Braddock PERSON
Matt PERSON
Braddock PERSON
Haley PERSON
Coppelius PERSON
Mme Noelle PERSON
Jessi PERSON
Braddock PERSON
Haley PERSON
Haley PERSON
Braddock PERSON
Braddock PERSON
Braddock PERSON
Carolyn Braddock PERSON
Haley PERSON
Haley PERSON
Haley PERSON
Matt PERSON
Mme Noelle PERSON
Katie Beth PERSON
Katie Beth PERSON
Adele PERSON
Matt PERSON
Katie Beth PERSON
Matt PERSON
Adele PERSON
Katie Beth PERSON
Haley PERSON
Braddock PERSON
Coppelius PERSON
Coppelius PERSON
Haley PERSON
Haley PERSON
Braddock PERSON
Braddock PERSON
Swanilda PERSON
Christopher Gerber PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Matt PERSON
Christopher PERSON
Matt PERSON
Adele PERSON
Katie Beth PERSON
Katie PERSON
Katie Beth PERSON
Adele PERSON
Christopher PERSON
Katie Beth PERSON
Matt PERSON
Adele PERSON
016_15_en.txt
Katie Beth PERSON
Adele PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Jessi PERSON
Katie Beth PERSON
Katie PERSON
Jessi PERSON
Jessi PERSON
Grandma PERSON
Grandpa PERSON
Braddock PERSON
Dawn PERSON
Mary Anne PERSON
Matt PERSON
Mal PERSON
Mal PERSON
Mal PERSON
Jessi PERSON
Keisha PERSON
Keisha PERSON
Keisha PERSON
Mal PERSON
Keisha PERSON
Mal PERSON
Grandma PERSON
Grandpa PERSON
Keisha PERSON
Keisha PERSON
Keisha PERSON
Katie Beth PERSON
Adele PERSON
Keisha PERSON
Matt PERSON
Braddock PERSON
Katie Beth PERSON
Keisha PERSON
Mal PERSON
Jessi PERSON
Mal PERSON
Mal PERSON
Keisha PERSON
Keisha PERSON
Keisha PERSON
Mal PERSON
Mal PERSON
Keisha PERSON
Jessi PERSON
Keisha PERSON
Mal PERSON
Mal PERSON
Matt PERSON
Mal PERSON
Keisha PERSON
Adele PERSON
Katie Beth PERSON
Matt PERSON
Adele PERSON
Katie Beth PERSON
Katie Beth PERSON
Jessi PERSON
Jessi PERSON
Swanildas PERSON
Franzes PERSON
Katie Beth PERSON
Swanilda PERSON
Katie Beth PERSON
Katie Beth PERSON
Katie Beth PERSON
Adele PERSON
Katie Beth PERSON
Adele PERSON
Matt PERSON
Jessi PERSON
Grandma PERSON
Grandpa PERSON
Keisha PERSON
Mal PERSON
Kristy PERSON
Dawn PERSON
Mary Anne PERSON
Braddock PERSON
Matt PERSON
Haley PERSON
Braddocks PERSON
Mama PERSON
Haley PERSON
Claudia PERSON
Kristy PERSON
Jessi PERSON
Mary Anne PERSON
Matt PERSON
Haley PERSON
Matt PERSON
Haley PERSON
Matt PERSON

12. English NER for places#

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(enfiledirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('en.txt'):
        #Write out below the name of the file
        print(filename)
        #The file name of the output file adds _ner_loc to the end of the file name of the input file
        outfilename = filename.replace('.txt', '_ner_loc.txt')
        #Open the infput filename
        with open(filename, 'r') as f:
            #Create and open the output filename
            with open(outfilename, 'w') as out:
                #Read the contents of the input file
                chaptertext = f.read()
                #Do English NLP on the contents of the input file
                chapterner = ennlp(chaptertext)
                #For each recognized entity
                for ent in chapterner.ents:
                    #If that entity is labeled as a person
                    if ent.label_ == 'GPE':
                        #Print the entity, and the label (which should be PER)
                        print(ent.text, ent.label_)
                        #Write the entity to the output file
                        out.write(ent.text)
                        #Write a newline character to the output file
                        out.write('\n')
016_01_en.txt
Mexico GPE
Stoneybrook GPE
Connecticut GPE
Stoneybrook GPE
Oakley GPE
New Jersey GPE
Stoneybrook GPE
Rebecca GPE
Oakley GPE
Stamford GPE
Connecticut GPE
Stoneybrook GPE
Stamford GPE
Oakley GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Coppélia GPE
Stamford GPE
Oakley GPE
Coppélia GPE
Coppélia GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
016_02_en.txt
Stoneybrook GPE
Stoneybrook GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
New York City GPE
Stoneybrook GPE
California GPE
Mallory GPE
California GPE
Claudia GPE
California GPE
Claudia GPE
Claudia GPE
Claudia GPE
016_03_en.txt
Becca GPE
Coppélia GPE
Hilary GPE
Hilary GPE
Coppélia GPE
Coppélia GPE
Coppélia GPE
Coppélia GPE
016_04_en.txt
Coppélia GPE
Stamford GPE
Haley GPE
Becca GPE
Haley GPE
016_05_en.txt
Jessi GPE
Stamford GPE
U.S. GPE
Windbreaker GPE
Stoneybrook GPE
016_06_en.txt
Coppélia GPE
Haley GPE
Becca GPE
Stoneybrook GPE
Becca GPE
Haley GPE
Haley GPE
Mallory GPE
016_07_en.txt
Jordan GPE
Vanessa GPE
Margo GPE
Jordan GPE
Nicky GPE
Haley GPE
016_08_en.txt
Coppélia GPE
Hilary GPE
Stamford GPE
Becca GPE
Massachusetts GPE
Mallory GPE
016_09_en.txt
Kristys GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Legos GPE
Claudia GPE
Legos GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
016_10_en.txt
Stoneybrook Elementary GPE
Vanessa GPE
Nicky GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Stamford GPE
Becca GPE
Becca GPE
Becca GPE
Coppélia GPE
016_11_en.txt
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Yodels GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
Claudia GPE
California GPE
California GPE
Logan GPE
Claudia GPE
Claudia GPE
Coppélia GPE
Becca GPE
Stamford GPE
016_12_en.txt
Stamford GPE
Coppélia GPE
Coppélia GPE
Coppélia GPE
016_13_en.txt
Becca GPE
Becca GPE
Becca GPE
Charlotte GPE
Becca GPE
Stamford GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
New Jersey GPE
Oakley GPE
Stoneybrook GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Becca GPE
Stoneybrook GPE
Stoneybrook GPE
Becca GPE
Becca GPE
Becca GPE
Charlotte GPE
Becca GPE
Charlotte GPE
Charlotte GPE
Becca GPE
Becca GPE
Becca GPE
Charlotte GPE
Becca GPE
Becca GPE
Becca GPE
Charlotte GPE
Jessi GPE
Becca GPE
Coppélia GPE
Becca GPE
Charlotte GPE
Charlotte GPE
Becca GPE
Charlotte GPE
016_14_en.txt
Coppélia GPE
Becca GPE
Charlotte GPE
Stamford GPE
Becca GPE
New Jersey GPE
Claudia GPE
Coppélia GPE
Stamford GPE
Coppélia GPE
Coppélia GPE
016_15_en.txt
Becca GPE
Haley GPE
Kristy GPE
Claudia GPE
Oakley GPE
Keisha GPE
Becca GPE
Claudia GPE
us GPE
Claudia GPE
ambrosia GPE
Ambrosia GPE
Claudia GPE
Claudia GPE

13. English NER for organizations#

I think my favorite entity type is ORG, which gets you everything from Oakley Elementary to Swanilda to Mama. (Yes, friends, “Daddy” is a PERSON but “Mama” is an ORG.)

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(enfiledirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('en.txt'):
        #Write out below the name of the file
        print(filename)
        #The file name of the output file adds _ner_org to the end of the file name of the input file
        outfilename = filename.replace('.txt', '_ner_org.txt')
        #Open the infput filename
        with open(filename, 'r') as f:
            #Create and open the output filename
            with open(outfilename, 'w') as out:
                #Read the contents of the input file
                chaptertext = f.read()
                #Do English NLP on the contents of the input file
                chapterner = ennlp(chaptertext)
                #For each recognized entity
                for ent in chapterner.ents:
                    #If that entity is labeled as a person
                    if ent.label_ == 'ORG':
                        #Print the entity, and the label (which should be PER)
                        print(ent.text, ent.label_)
                        #Write the entity to the output file
                        out.write(ent.text)
                        #Write a newline character to the output file
                        out.write('\n')
016_01_en.txt
Oakley General Hospital ORG
Squirt ORG
Squirt ORG
Oakley General ORG
Daddy ORG
Stoneybrook Middle School ORG
Keisha ORG
Club ORG
Daddy ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Franz ORG
Franz ORG
Club ORG
016_02_en.txt
Club ORG
Kristy ORG
Kristy ORG
Mallory ORG
Kristy ORG
Club ORG
Kristy ORG
Kristy ORG
Club ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Thomases ORG
Kristy ORG
Stoneybrook Middle School ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Club ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Club ORG
016_03_en.txt
Mademoiselle Jones ORG
Madame ORG
Steinfeld ORG
Franz ORG
016_04_en.txt
Braddocks ORG
Club ORG
Haley ORG
Mallory's ORG
Reeboks ORG
Haley ORG
the American Sign Language Dictionary ORG
Haley ORG
Halley ORG
the American Sign Language Dictionary ORG
016_05_en.txt
House ORG
STINK ORG
016_06_en.txt
Pike ORG
Suzi ORG
Pike ORG
Patriots ORG
016_07_en.txt
Pike ORG
Byron ORG
Pike ORG
Pike ORG
Pikes ORG
Byron ORG
Margo ORG
Margo ORG
Pike ORG
Byron ORG
Pikes ORG
016_08_en.txt
Mademoiselle Parsons ORG
Haley ORG
Parsonses ORG
Parsonses ORG
Daddy ORG
Keisha ORG
016_09_en.txt
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Fair ORG
Brewers ORG
Brewers ORG
Club ORG
sec ORG
Club ORG
Kristy ORG
BOO ORG
Tickly ORG
Tickly ORG
016_10_en.txt
the Stoneybrook Community Center ORG
Pike ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Braddock ORG
Madame ORG
016_11_en.txt
Club ORG
Kristy ORG
Ho-Ho's ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Kristy ORG
Squirt ORG
Kristy ORG
Club ORG
016_12_en.txt
Stoneybrook Middle School ORG
PARKING FOR SCHOOL FOR THE DEAF ORG
016_13_en.txt
Squirt ORG
Squirt ORG
Squirt ORG
Kristy ORG
Kristy ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Squirt ORG
Kristy ORG
Kristy ORG
Kristy ORG
Club ORG
Kristy ORG
Chadotte ORG
Club ORG
Copernicus ORG
Squirt ORG
Squirt ORG
Kristy ORG
Squirt ORG
Kristy ORG
Kristy ORG
016_14_en.txt
Kristy ORG
Kristy ORG
Kristy ORG
Squirt ORG
Haley ORG
Franz and Swanilda ORG
Franz and Swanilda ORG
Haley ORG
Franz ORG
016_15_en.txt
Congratulations ORG
Mal ORG
Haley ORG
Keisha ORG
Honey ORG
Keisha ORG
Franz ORG
Good-Time Charley's ORG

14. English NER for works of art#

That said, there’s also a rare WORK_OF_ART entity type, exemplified by “Morning, Squirts”, “Hey, Jessi”, “On Top of Old Smoky” (depends on how you feel about folk music, I guess), and, my very favorite work of art, “Nope”. Grumpy Cat says nope

(July 19, 2021 note: Alas, spaCy 3 has learned that ‘nope’ isn’t a work of art. 😔 It was fun while it lasted.)

#Sort all the files in the directory you specified above, alphabetically.
#For each of those files...
for filename in sorted(os.listdir(enfiledirectory)):
    #If the filename ends with .txt (i.e. if it's actually a text files)
    if filename.endswith('en.txt'):
        #Write out below the name of the file
        print(filename)
        #The file name of the output file adds _ner_art to the end of the file name of the input file
        outfilename = filename.replace('.txt', '_ner_art.txt')
        #Open the infput filename
        with open(filename, 'r') as f:
            #Create and open the output filename
            with open(outfilename, 'w') as out:
                #Read the contents of the input file
                chaptertext = f.read()
                #Do English NLP on the contents of the input file
                chapterner = ennlp(chaptertext)
                #For each recognized entity
                for ent in chapterner.ents:
                    #If that entity is labeled as a person
                    if ent.label_ == 'WORK_OF_ART':
                        #Print the entity, and the label (which should be PER)
                        print(ent.text, ent.label_)
                        #Write the entity to the output file
                        out.write(ent.text)
                        #Write a newline character to the output file
                        out.write('\n')
016_01_en.txt
Morning, Squirts WORK_OF_ART
What's Coppélia WORK_OF_ART
016_02_en.txt
016_03_en.txt
The Chinese Doll WORK_OF_ART
016_04_en.txt
American Sign Language WORK_OF_ART
Show Jessi WORK_OF_ART
016_05_en.txt
Great WORK_OF_ART
CAN'T YOU HEAR ME WORK_OF_ART
016_06_en.txt
The Secret Language WORK_OF_ART
Awesome WORK_OF_ART
016_07_en.txt
On Top of Old Smoky WORK_OF_ART
Mallory, Dawn WORK_OF_ART
The secret language WORK_OF_ART
American Sign Language WORK_OF_ART
016_08_en.txt
Being Swanilda WORK_OF_ART
American Sign Language WORK_OF_ART
016_09_en.txt
Hi, Claudia WORK_OF_ART
Luckily, Claudia WORK_OF_ART
Night WORK_OF_ART
016_10_en.txt
Summer WORK_OF_ART
Where's Vanessa WORK_OF_ART
016_11_en.txt
Double-Stuf Oreo WORK_OF_ART
Opening night WORK_OF_ART
016_12_en.txt
Ready as I WORK_OF_ART
016_13_en.txt
Becca? Char WORK_OF_ART
016_14_en.txt
the Burgomaster for their dowries WORK_OF_ART
016_15_en.txt
Great WORK_OF_ART

What now?#

I reran the notebook for English, reluctantly limiting myself to the entity types held in common between the English and French models. So now I had, chapter-by-chapter, translation-by-translation (plus original English), all the person, location, and organization type entities.

That’s nice.

But that wasn’t my question: what I wanted to know was how the translators adapted people and place names. I had to figure out what to do with all these text files to get me closer to an answer.

I had some thinking to do.

Lee#

So, before getting into the finer differences between the various translations and the approaches taken by the translators, can we just take a second to appreciate the narrative of this BSC story? Now, far from perfect as a disability narrative -  for instance, the main deaf character never gets to “speak” for himself, with instead his older sister “speaking” both for him and for herself - this is a really nuanced portrayal of difference and empathy. All I remember from when I read the book (sigh) 30 years ago was the dancing J sign for Jessi’s name, but now I’m struck by how Jessi/Jessie/Justine/Jessica is wise beyond her years, a reflection of her own experiences with being different in her new hometown. I got a little choked up as I read (at least the first of the four different times I read it) her efforts to bring the deaf schoolkids to the show, and how her frenemy at ballet finally connects with her own deaf sister.

And when Jessi said that her performance could never be perfect because “There was no way Swanilda could have been black, so I wasn’t perfect, but I knew I was dancing very well”? Gutted. In every French version(s).

There’s another layer to this discussion of translation as there is another language in the text: sign language. As pointed out in the narrative(s), there are many different variations of sign language, which means that the translators had to accurately “translate” the signs that were being done, as it wasn’t the same in the various French dialects.

So, a fun little close-reading exercise on my part, once I stopped crying, I mean, YOU’RE CRYING NOT ME.

In order of levels of translation/cultural adaptation, it goes: Belgium, Quebec, France. The Belgium translation takes great pains to situate the narrative in an environment that would be familiar to a European reader: the names have all been francisized (even Claudia Kishi becomes Julie Kishi), and the places have been localized as well. Justine and her family are not from New Jersey but Burkina Faso. Interestingly, they move to Neuville, France, and not Belgium. Sophie Lambert (aka Stacey McGill) moves back to Paris and not New York City, while Carole (aka Dawn) is “une vraie Provençale” rather than a California girl. These localized adaptations extend to any cultural reference (such as books and board games) and particularly in this volume, the gross-out songs Mallory/Marjorie’s brothers sing at dinner about spaghetti.

At least I think it is. I’m not so up on Franco-Belgium gross-out songs about pasta dishes.

In the Quebec translation, the names are all again mostly francisized (seriously, though, I knew kids with like ¾ of the last names chosen for the kids here), and the place names stay also mostly the same: Jessie Raymond is from New Jersey and Diane Dubreuil is from California, but Sophie Ménard moves back to Toronto. The cultural references are either rendered local (OH GOD LOOK HERE IS A REFERENCE TO FREAKING CAILLOU) or completely neutralized (like Claudia’s stash of now non-brand name snacks - a missed opportunity to get some local references to Vachon snack cakes). They sing the same spaghetti song in the Quebec translation as the Belgium one, but there is one really interesting difference choice that the Quebec translators make in multiple (ok, the two that I’ve read) volumes: if it is a question of how to translate something, they just ignore it and erase it.

For example, in this volume, in the original English, Jessi’s new ballet teacher keeps getting her name wrong. That is preserved in both the French from France and French from Belgium translations, but not the Quebec one, where Jessie just gets confused that she is being called Madame Raymond rather than by her first name. This might just be a result of the initial name-choice for Jessie in Quebec: it’s kinda hard to mess up Raymond. So rather than force the issue, it was just tweaked.

More interestingly, when reading of the mysteries in Quebec translation, California figured prominently (it’s one of the ones featuring the child actor from their hometown), but other than one reference to the kid coming home, all other references to California or things that may or may not have happened in California in other volumes are just simply removed and erased.

(Not to mention that having a FRANCOPHONE child star starring in a FRANCOPHONE show for FRANCOPHONE kids be recorded in California when OH I DON’T KNOW THERE IS A LOCAL FRANCOPHONE TV/MOVIE INDUSTRY IN MONTREAL and then remove all other references to California seems to me like a missed opportunity, but I digress. Seriously. Have them live in a suburb outside of Quebec City or Sherbrooke and then send him to Montreal to be a star. It works. It makes sense. I mean, there is no movie industry that I know of in Provençal so having the other Baby-Sitters visit Provençal and run into said child star unless that’s where he summers now makes zero sense but it didn’t stop the Belgium translators…)

Ok, wait, what were we talking about…

So, Belgium goes all-in on translation and adaptation, Quebec splits the difference (it would make sense that a kid from New Jersey or California would end up at a French school because THANKS BILL 101!), while France makes zero effort to mask that these are American kids doing American things and that while the story is in French, the references and names and such remain firmly American.

Most of the names remain largely English (although bizarrely Claudia Kishi becomes Claudia Koshi), as do the place names, except for Stoneybrooke (which would almost be like a sci-fi or fantasy place name that you see and have no idea how to pronounce for any French audience), which becomes Stamford, Connecticut, unlike Neuville, France or Quebec’s generic Nouville with no province/state/country associated with it. Even a cultural reference, in this case a book, gets changed to a more recognizable American title: Bambi. It is a different gross-out spaghetti song sung at dinner, which is not recognizable to me either, and may be the only notable instance of adaptation in the French-from-France translation.

The varying approaches to translating/adapting the text is perhaps most noticeable in how the three different translations deal with sign language. The Belgium translation goes into great detail about which version of sign language that is being used and taught. The Quebec translation drops in a mention of Québécois sign language, while the French-from-France translation is like, meh, it’s sign language, you get it. I don’t know enough about the different sign languages to know if the adaptations are accurate or not for the various different sign languages, but the French-from-France translation explains sign language even less than the original English text (which does identify that they are learning and using American Sign Language as opposed to Signed English or British Sign Language, which is actually based off of French Sign Language).

I didn’t notice (so thank-you Quinn for that helpful chart below!) that the reference to the architect of the neighborhood isn’t mentioned in the France or Belgium translations, which again, makes cultural sense. These “planned communities” and post-WWII suburbs are a uniquely North American phenomenon, but one that wouldn’t have been foreign to a Quebec audience (my grandparent’s neighborhood was like that, for instance) but wouldn’t have made much sense to a European audience, so even with France going all-in on the Americanness of the books, they still took care to ensure that the references weren’t so foreign as to be unrecognizable to a reader.

So, to recap, Belgium goes all-in on a European adaptation of the book, Quebec splits the difference, and France doesn’t seem to care, and in fact would seem to emphasize the americanness of the text. This all makes sense from a marketing perspective. Belgium is a smaller market, and so making the books hyper-local would limit the sales appeal to other Francophone readers. Quebec had a basically captured market, and their efforts reflect real efforts to appeal to the local market, while also not trying to make things too complicated for the army of translators they were employing to churn out these translations. France, well, France is France and France is gonna France, and probably figured who cares, you know it’s the USA, we know it’s the USA, you’re going to buy the books in part for that reason, so…let’s just make sure you can pronounce all the names.

I realize that this is probably not the level of cultural analysis that you all are expecting from this. But when you ask someone from Quebec to reflect on cultural/linguistic choices that France makes…we in Quebec have an Office de la langue française, one of whose tasks is to make up new French words every time there is a new English word that comes along. France says things like “stopping” and “shopping” where in Quebec WE DO NOT SAY SUCH THINGS USE THE PROPER FRENCH VERBS NOT SOME BASTARDIZED ENGLISH GERUND SAID WITH A PARISIAN ACCENT.

So that France goes all-in on the Americanness of the series isn’t surprising. That Quebec didn’t go more all-in in the adaptation to a local audience was, but given the limitations due to pressures to produce, it is understandable.

Quinn#

Lee’s take on BSC names in translation had got me thinking. For starters, score one for close reading! If you’ve got four variations of a children’s novel, and want to say something about some aspect of that novel, you should not start by opening a Jupyter notebook. Put down your laptop, find a comfy chair, and just read the books with your own eyeballs. It definitely took Lee less time to do that than it took me to scan and OCR the books, reformat them into individual chapters, clean up the punctuation characters, and write some Python code. And by the end, she could sit down and write something. I, on the other hand, had 180 additional small text files on my laptop to show for it, and nothing new to say yet. Woot.

But then I thought about what Lee didn’t do there. Knowledgeable humans are great at providing a synthesis of the interesting things they’ve noticed in a text. What they’re less great at is being comprehensive, pulling out details that aren’t individually interesting, but may become interesting in the aggregate. It’s tedious work, and it’s only possible with a lot of manual labor – unless you use digital tools. (And even still, let’s face it, there’s a lot of manual work that goes into getting your text ready for digital tools.)

BSC Bible cover

In my moment of doubt, I turned to the Bible – the BSC Bible, that is. Smith College’s Special Collections finding aid for the Ann M. Martin papers actually includes that as an alternate title for The Complete Guide to The Baby-Sitters Club, the complete (through 1996) compendium of all information about all people (my PER/PERSON entities), places (LOC/GPE), and things (including ORGs) in the Baby-Sitters Club universe. And by all, I mean all. Find any arbitrary character, however niche, and this book has all the information in the canon. Does anyone remember Nicole Lavista, one of the “Battle of the Bakers” daycare kids in BSC Mystery #21: Claudia and the Recipe for Danger? Me, neither. But she’s six years old, has “hair in black curls”, is “full of tricks”, and “loves to draw and paint”. There’s even page-level citations, though they do me no good since we chose to remove page numbers from the text file output of our OCR. All this information is already compiled for the English series through the BSC Bible, originally as a resource for the ghostwriters. But what might we learn from trying to recreate something similar from the ground up, for the universe of each of the French translations? In addition to the question of how much localization has been done, the question of consistency intrigues me. If you’re not localizing much of anything, it’s less of an issue, but was the pool of translators in Montreal comparing notes about how they adapted the names of peripheral but at least occasionally-recurring characters?

Rethinking NER#

I wanted to write up NER for this book because, hey, names! And I’ve done it before, and it seemed like a fun opportunity to compare the performance of spaCy’s French and English models. Ultimately, though, NER makes more sense as the primary method of finding names and places when you’re dealing with a much larger corpus, and/or a much more heterogenous one than Baby-Sitters Club books. It’s feasible to make a list of characters and places within a single fictional universe, like what you can find in the BSC Bible, even if you have all 200ish novels in translation. It’s much less feasible if you have 200 novels, each in its own universe – let alone 2,000 or more.

So where to go from here? It’d be fun to try to annotate some texts and see if I can train a better NER model for the Baby-Sitters Club (especially the French), but that’s a topic for another DSC Multilingual Mystery. Instead, what I have now for locations, I can use to cross-check with the English, for an easy and interesting source of likely localizations and differences. With names, I can hopefully use NER to identify characters that are newly-introduced in each book (or perhaps re-introduced under a different localized name?), and then add those names to the list of known characters in that translated universe. That curated list, rather than NER itself, will be the basis for checking translations for references to characters. And another thing: for best chances of identifying new characters, I think I’ll stop limiting the NER results to just the entities flagged PER. Too many character names are showing up as LOC or ORG to trust the classification. As for the ORG entities specifically, they’re almost all errors of one sort or another. I can’t think of any good research questions offhand that deal with organizations in this universe, so I think I won’t worry about them.

Close-reading some distant-reading outputs#

For lulz, I threw the location NER per-chapter output for the Belgian corpus into Voyant, and even the word cloud was mostly a testament to how badly the model performed at classifying entities as locations.

Voyant visualization of allegedly location named entities, but it's mostly names

So in the end, I deleted all those little NER output files I’d generated with the Jupyter notebook, with aspirations of somehow comparing them programmatically. Instead, those Python print() statements in the notebook were what I consulted – using my own eyeballs. Because the chapters are so short, it’s not hard to trace place names back to the context, and then find that same context in the original. I’m about halfway there to imagining how I’d implement something more scalable in Python for checking at least the entities that refer to people (whether or not they’re tagged that way). But honestly, for my own process, I find that I need to spend time cleaning data manually before I feel like I understand it well enough to come up with a workable programmatic approach.

Here’s some things I found following up on some of the words tagged as locations in the NER:

  • In the Belgian translation, Justine Victoire is from Ouagadougou, Burkina Faso (as Lee mentioned). Her best friend / cousin in Ouagadougou is named Johanna. Neuville is a small town not far from Aubrives, where her father works. Justine’s linguistic aptitude was put to the test on a family trip to Spain. Her sister’s name is adapted as Roseline, and her brother is Victor, AKA Gringalet.

  • In the Quebec translation, like in the English original and France French translation, Jessie picked up Spanish in Mexico. Jessi’s best friend/cousin Keisha becomes Kara. Her sister is still Becca, but her brother becomes Jean-Philippe, AKA Jaja. To Lee’s point of the Quebec translation just deleting things when they complicate matters too much: there’s no mention of Jessi’s father working in another city. They moved to Nouville for his job, end of discussion.

  • In the France French translation… well, see Lee’s section for details. It’s just like the English original, just in French. The only exception of note is that her little brother, John Philip Ramsey Junior (yes, that whole thing is his name in French too, including the “Junior”), is nicknamed “P’tit Bout” instead of Squirt. (Sorry for being baffled by your inclusion of “P’tit” among the entities, spaCy. You were right.)

  • As of Belgian BSC #16, Sophie Lambert has moved back with her family to Paris. Meanwhile, Carole Leroy has moved to Neuville from Provence along with her brother (still named David). Both the Belgian and the France-French versions take a “just-the-facts” approach to Dawn’s situation, but the translators in Montreal were willing to take on Jessi’s compassionate editorializing: “Comme le dit si souvent Diane, sa famille est déchirée en deux, mais je suis certaine qu’elle va s’en sortir.” / “As Dawn pointed out, her family is now ripped in half. I think Dawn is a survivor, though.”

  • In the Belgian translation, Jessi’s ballet school is in Aubrives (consistent with her father also working there).

  • Belgian Mathieu thinks that Marseille will beat Monaco in soccer, rather than the Patriots winning the Super Bowl. In Quebec, Matthieu talks about the “Patriotes” winning the soccer eliminations – a sort of mixed-reference there. The French are all in for the Patriots and the Super Bowl.

And here’s some notes and a list of the name correspondences, working from the PER tags:

  • Chapter 5 starts with “Brat, brat, brat.” in English. All the French translations skip that part and go straight into the next sentence about how everyone agrees that Jenny Prezzioso is spoiled and a little bratty (Lee adds: She really, really is. Reading it four times really drives that point home. How many synonyms in French for “spoiled brat”? A lot and it is amazing).

  • Even without having to compare across books, I managed to find a naming inconsistency! One of Jessi’s dance colleagues, Mary Bramstedt, is given the role of a villager. In the Quebec version, her name is first translated as Marie Brazeau. Later, there’s a reference to Mademoiselle Croteau, which Jessi explains: “(c’est Marie, une citoyenne dans le ballet)”. So either the Quebec translator innovated a second Marie, dancing the same part as the first one, or… the translator forgot the surname they used earlier.

English

Quebec

Belgium

France

Kristy Thomas

Christine Thomas

Valérie Demoulin

Kristy Parker

Mary-Anne Spier

Anne-Marie Lapierre

Mélanie Moreau

Mary Anne Cook

Claudia Kishi

Claudia Kishi

Julie Kishi

Claudia Koshi

Stacey McGill

Sophie Ménard

Sophie Lambert

Lucy MacDouglas

Dawn Schafer

Diane Dubreuil

Carole Leroy

Carla Schafer

Mallory Pike

Marjorie Picard

Marjorie Levêque

Mallory Pike

Jessi Ramsay

Jessie Raymond

Justine Victoire

Jessica Ramsey

Becca Ramsay

Becca Raymond

Roseline

Rebecca Ramsey

John Philip Ramsey Jr. (“Squirt”)

Jean-Philippe (“Jaja”) Raymond

Victor “Gringalet”

John Philip Ramsey Junior (“P’tit Bout”)

Keisha (Jessi’s cousin)

Kara

Johanna

Keisha

Sam Thompson

Sébastien Thompson

Stéphane Demoulin

Samuel Parker

Charlie Thompson

Charles Thompson

Nicolas Demoulin

Charlie Parker

David Michael Thompson

David Thompson

Sébastien Demoulin

David Michael Parker

Watson Brewer

Guillaume Marchand

Yvan Arnould

Jim Lelland

Karen Brewer

Karen Marchand

Coralie Arnould

Karen Lelland

Andrew Brewer

André Marchand

Arnaud Arnould

Andrew Lelland

Janine Kishi

Josée Kishi

Laurence Kishi

Jane Koshi

Jeff Schafer

Julien Dubreuil

David Leroy

David Schafer

Tigger (Mary-Anne’s cat)

Tigrou

N/A

Tigrou

Logan Bruno

Louis Brunet

Bruno Lejeune

Logan Rinaldi

Shannon Kilbourne

Chantal Chrétien

Cécile Gauthier

Louisa Kilbourne

Matthew Braddock

Matthieu Biron

Mathieu Brinbeuf

Matthew Braddock

Haley Braddock

Hélène Biron

Agnès Brinbeuf

Helen Braddock

Madame Noelle

Mademoiselle Noëlle

Madame Dillon

Mme Noelle

Hilary (dancer)

Élizabeth

Hélène

Hilary

Katie Beth Parsons (dancer/frenemy)

Élizabeth Pellerin

Catherine

Katie Parson

Mary Bramstedt (dancer)

Marie Brazeau (Croteau in ch. 8)

Marie Bernstein

Mary Bramstedt

Lisa Jones (dancer)

Lise Jordan

Lise Jacqué

Lisa Jones

Carrie Steinfeld (dancer)

Carole St-Onge

Carine Schmitt

Carrie Steinfeld

Mr. Geiger (architect in Stoneybrook)

monsieur Gougeon

N/A (omits paragraph about all the houses looking the same)

N/A (omits paragraph about all the houses looking the same)

Jenny Prezzioso

Jeanne Prieur

Aurélie Precisio

Jenny Prezzioso

Charlotte Johanssen

Charlotte Jasmin

Charlotte Cuvelier

Charlotte Johanssen

Nicky Pike

Nicolas Picard

Laurent Levêque

Nicky Pike

Vanessa Pike

Vanessa

Vanessa Levêque

Vanessa Pike

Buddy Barrett

Bruno Barrette

Antoine Godefroid

Buddy Barrett

Suzi Barrett

Elodie Godefroid

Liz Barrett

Margo Pike

Margot Picard

Anaïs Levêque

Margot Pike

Claire Pike

Claire Picard

Juliette Levêque

Claire Pike

Byron Pike

Bernard Picard

Alain Levêque

Byron Pike

Adam Pike

Antoine Picard

Loïc Levêque

Adam Pike

Jordan Pike

Joël Picard

Samuel Levêque

Jordan Pike

Adele Parson (Katie Beth’s sister)

Adèle Pellerin

Adeline

Adèle Parson

Ben Brewer (ghost)

vieux Ben

Benoît Arnould

Ben Lelland

Mrs. Porter

Madame Portai

madame Rensonnet

Mme Porter

Morbidda Destiny

Destinée Morbide

Vieille Sorcière

Morbidda Destiny

Moosie (Karen’s stuffed cat)

N/A

Flocon

Moosie

Mrs. Frank (Matt’s teacher)

France

madame Franck

Mme Franck

Carolyn Braddock (Matt’s mother)

Caroline Biron

Caroline Brinbeuf

Carolyn Braddock

Christopher Gerber (dancer)

Christophe Baril

Christophe Gélin

Christopher Gerber

Where to next?#

I find it tantalizing that my idea about the translators getting sloppy with peripheral character names already seems to be playing out even over the course of a single book. The risks are biggest for the Belgian and Quebec translations, which do more by way of localization, and we know that at least in Quebec they had multiple different translators. Lee made some progress in DSC Multilingual Mystery #1 on identifying the translators of all the French translations, using national library metadata. I think it’s time we clean up the metadata mess and make a clean spreadsheet we can use to support further inquiry.

To be continued…

Suggested Citation#

Skallerup Bessette, Lee and Quinn Dombrowski. “DSC Multilingual Mystery 2: Beware, Lee and Quinn!”. The Data-Sitters Club. February 27, 2020. https://doi.org/10.25740/tn079tm0177.