Wednesday, July 16, 2014

A leap in artificial intelligence ? Building 2

Building Gaia - Tools and Environment


The past few days were funny. And with a big surprise. And one two blames for myself.

Working on the development of Gaia is a nice challenge. In more then one aspect.
I promised to keep you up updated on the progress, so here is her second round.


Gaia's tools.


Her toolkit has been generalized and the individual tools can be chained in tool sequences.

Gaia's toolkit and examples of tool sequences.

She can combine whatever tools she wants in whatever length. 
After running a sequence she will receive an evaluation as the output of running the sequence.
As you can see in the figure (T-L-F example) , she can apply a sequence more then once before receiving the evaluation.

There is still some work to do on the evaluation functions as they are extremely important for what and when Gaia is learning.

A reference to the sequence, the evaluation and some contextual information is stored in her experience centre.
Her mechanism to exploit her learning process, as it is registered by the experience centre, still needs some improvements.

Most of the tools can receive one or more configuration parameters, another choice for our learning A.I.

If she creates a tool sequence that doesn't make sense at a particular moment in time, running it will simply return a very bad evaluation. For example using a memory manipulation tool on an empty memory makes no sense. Applying the tool later in time does.

And of course other tools are on their way.



Environment

For developing Gaia, to see when she is doing what, several tools are necessary.
The first specialized tools are shown in the picture below.

Gaia's environment tools so far.

CouchDB is used to store her memory and experience center in a persistent way so it can be reloaded at any time. Both take the form of JSON documents.
As CouchDB allows to retrieve old revisions of documents, it is possible to go to an old combination of memory and experience center and restart from that point. 
Extremely practical in case of unintended changes due to a developers experience that was not so successful.

Every change in her memory is also send to the mutation server that stores them for possible later playback. 
Using the efficient websocket protocol enables a real-time visualization of what's going on.

That the real-time viewing and the playback possibilities are very useful was shown today.


Visual bug discovery


The video below is an camera registration of the real-time display.
(Using a direct screen registration requested to much clock cycles.)

When running a test run with Gaia I was looking at how her memory was evolving over time.
Suddenly I was triggered by something unexpected.

Snapshot of the real-time memory mutations

First let me explain what you in these snapshots and video.

Every dot in the image is a pattern in memory that has been modified since this tool was listening to the mutations.
This run started with some 76 000 patterns in memory which are not shown.

The graphical tool used let new patterns appear in the center. New for the graphical interface, not necessarily for Gaia.
As time goes on these early patterns move to the outside.

The bright spots are patterns that have recently "fired". If they are in the middle they are new, if they are not it was an existing pattern in memory.

The geometric figure in the middle is just an artifact of the graphical tool. It has nothing to do with the memory of Gaia. The tool can't simply keep up with the high speed of Gaia.

In the playback tool, things are slowed down on purpose, so the graphical tool has enough time to display everything.
The picture below shows approximately the same moment in time.

Snapshot of the replay of memory mutations.


Interpretation of the visualizations

In the video and snapshots you can clearly see two rings of bright spots on the outside.

All the spots in a circle have fired for the first time (for the graphical tool) at approximately the same time. They appeared in the middle and have all gradually moved to the outside afterwards.

It is most unlikely that a same set of patterns (same "ring") will fire again. 

The only valid explanation is that the same text is seen a second time.
And as I wrote in a previous post this shouldn't happen.

Triggered by this, I discovered that there was a bug in the file selection section that might re-use a file even if it had already been submitted to Gaia.

Another thing that can be seen in the video is that this same phenomena appears several times.
If it would have been just another file that is read for the second time, the patterns would appear in circles also, but not the same ones.
Which is the case.

And yes there was another bug causing a stream to be read again instead of moving forward in the stream.

A question you might ask:

Why is there a dark band between the two bright ones? Shouldn't there be one bright band for each file that is read a second time?

Well, not necessarily.

As explained above she has several tools she can use.
Each bright band is a phase in which she uses a tool sequence that consumes the sensor byte stream.

The patterns in the dark band between them are created during a phase where a series of memory operations modify the patterns, but nothing is read. And they will only occasionally fire when she continues reading. 


The video below shows a part of a second identical run, this time with a video recording.
To realize an identical run needed some manual interference in Gaia's functioning, else it would not have been an identical situation.




Concluding I must say that the time invested in making this visualization has already proven to be worth it.
I'm not sure that discovering both flaws would have been easy without them.



Ronald Poell
2014-07-16





Support

If you like to support the development of this new kind of AI you can donate Bitcoins (or fragments of it) at

1HadqhKD5EdCDpTorgxP9P8akKqycEUkwk


When Gaia will be more mature and she will be able to interact with the environment she might also need to spent money. She is not there yet but Bitcoin donations for her can already been done at:

1PyyRd6k5kSuuErAnJNpvdoNCW5ZPgD9fb

         

Thursday, July 10, 2014

A leap in artificial intelligence? - Reflections

Reflections on achieving Artificial Intelligence


Before providing feedback on the progress made in building Gaia, I want to share today some other reflections not yet expressed in previous posts.



Image credit: http://www.cs4fn.org/ai/


For me one of the most important questions we should ask ourselves in relation to AI is what such an AI should do.

Answering such a question will lead to a lot of things that are actually possible (and some not achieved yet). To name only a few of the existing ones:

  • Acquiring information about our world - necessary for all the rest (Google's Knowledge Graph, Cyc, Semantic Network Technologies, ...)
  • Answering spoken or written questions (Google, WolframAlpha, Apple, ...)
  • Translation of spoken or written text (Google, Microsoft, ...)
  • Information quality evaluation (e.g. spam detection, authorship, authority) (a long list)
  • Sentiment analysis (FaceBook, Inria (Poppy), ...)
  • Providing contextual tuned information (all big search engines, output facial expression in robots, ...)
  • Identifying objects in real world environments (all modern robots - including cars, ...)
  • ...
To be able to provide such services big data is collected and one or more machine learning techniques are applied. Targeting the intended service.
All these services are improved permanently (although some improvements or experiments are questionable as the recent manipulation of sentiments by FaceBook).


As far as I'm aware of there are only a few efforts to interconnect all these kinds of services and the underlying data. But they will. And soon. And at a large scale.
We will all have some sort of personal digital assistant available through a more or less obtrusive wearable. And switching to the non-wearables when available.

Such an assistant will be able to provide, at a certain point in time, a choice out of a fixed set of services. Of course new versions will provide enhanced and extended capabilities. But it will remain a fixed list at any point in time.

If you would want to think in terms of learning in this context, two views should be combined.
Learning what the meaning of data is will come from the combination of these huge data silos. Within each silo the meaning is somewhat implicit. Learning how to do something comes from the organizations that introduce new services or combine existing ones (the teachers).


Gaia is conceived in a way that she can learn from the beginning for and the How and the What.
And without a teacher.
She is actually learning how to handle the various data streams in order to define what the meaning is of those streams. This is the focus of the part I'm building now.

A similar learning paradigm will be applied for learning on the output side of the spectrum: what to do or what information to provide and how to achieve this.

She might even learn that there are well-known services that do certain tasks well and use them.
Or she might create her own stand-alone specialized child services once she has figured out the what and how of those services.


Concluding, I like to see both approaches of Artificial Intelligence as complementary. Especially in a short-, mid- and long term perspective.


Ronald Poell
2014-07-10

Edit 2014-07-17: Corrected the image problem.



Support

If you like to support the development of this new kind of AI you can donate Bitcoins (or fragments of it) at

1HadqhKD5EdCDpTorgxP9P8akKqycEUkwk


When Gaia will be more mature and she will be able to interact with the environment she might also need to spent money. She is not there yet but Bitcoin donations for her can already been done at:

1PyyRd6k5kSuuErAnJNpvdoNCW5ZPgD9fb



Friday, July 4, 2014

A leap in artificial intelligence? - What I learned from Gaia.

What I learned from Gaia.

A better phrasing would be of course "What I learned from the development of Gaia."
But that doesn't sound like an appealing title for a blog post.
So I'll leave it that way.
And of corse there is an implicit "so far" after the title.

In a previous post in this blog I told you that I choose to personalize this new form of Artificial Intelligence. Calling it She (or null-She if the interface doesn't allow the glyph). 

She  = the non-human She.

That it allowed me to think in a different way about how to build this AI. Expressing things in terms of goals, desires, ... from her perspective. Even if she doesn't have one yet.

When I take a few steps back and look at my own way of thinking, mind-wandering, analyzing possibilities etceteras, retracing the What, When and Why of new ideas, I became aware that this tiny little choice (calling Gaia a She , personalizing this AI), has had probably a huge impact on where Gaia is heading to.

Of course I can't rewind what has happened. Unable to do a "What if ..." for the process. So we'll never know what might have come out if I had chosen to it-tify Gaia.

Of great value are also the interactions with sound and open-minded critics or just curious persons. Running ahead on what I choose to write down in a particular post and what to preserve for later.

A short explanation on this is perhaps useful to make you understand what happens in my mind.

More than a decade ago I had the opportunity to read A New Kind of Science by Stephan Wolfram. After the first few chapters I had a very strong feeling of déjà-vu with the things he's explaining in this book.
And that has all to do with the nature of complexity. Or better: the way complexity can be achieved.

Back in the late eighties, I was conceiving the first version of what later became the "Semantic Network Technologies"(comparable to Google's actual Knowledge Graph). And it took me some 2 years to figure out an information architecture concept that and felt good and was capable of capturing the real complexity of our information world. Not just a hypothetic perfect world.

The good feeling came from the fact that the basic building blocs of this architecture were simple: nodes, relationships and properties.
And the needed complexity could be obtained by not limiting (from a technical perspective) whatever combination of these building blocks.

At the turn of the century I extended the information building blocks concept to the handling of them through the idea of elementary operations.

Stephan Wolfram came to a similar conclusion, not from a semantic perspective but from a mathematical one. But I sensed a similarity. And that felt good.


Back to Gaia and the discussions about Her .

The plans on how I want to build Gaia are far from achieved. You can see it as a dendroid with numerous alternate paths and for which some branches remain unexplored.

Trying to explain this complex design to others forces me to think about it in way that should feel good (sort of natural, achievable) for the intended audience. That is ... You. 

Which in turn brings me to rethinking about what the essential buildings blocks of Gaia's "brain" could or should be. Both for the information itself as the handling of them.

What the possibly relatively small set of functions (the elementary ones) should be. If the sequential and parallel combination of these functions will provide the required complexity.

To think about the code written so far. Asking myself the question: Does this code allow the flexibility She will need?
At what points the code implies a human way of 'thinking" about what the data means and how to handle it? 
If there are any, can I change this? Do I want to change it? Change it now or come back to it later?

Potentially there is of course a danger here: the never satisfied syndrome.
But progress is a very strong drive for me.
This way of looking at what is achieved at a certain point in time allows me simply to "fail fast".
To quickly move on to an alternate path.



The "story teller" in me drove me this evening to write this post.
Completely unplanned and it took me off guard.
But as always I hope that my personal experience will give you some food for thought.

Ronald Poell
2014-07-04




Support

If you like to support the development of this new kind of AI you can donate Bitcoins (or fragments of it) at

1HadqhKD5EdCDpTorgxP9P8akKqycEUkwk


When Gaia will be more mature and she will be able to interact with the environment she might also need to spent money. She is not there yet but Bitcoin donations for her can already been done at:

1PyyRd6k5kSuuErAnJNpvdoNCW5ZPgD9fb

Thursday, July 3, 2014

A leap in artificial intelligence ? Continued - Building the beast - Reactions

Reactions on my post Building the beast.

There have been several interesting reactions on my post of yesterday.
Showing that there is interest in what Gaia is heading for. And I thank all of the participants.

I didn't anticipated that, but I should have.

As my answers were in general quite long, I think it might be useful to group them together in this post. (it will be easier to read).

The only thing I modified is that in the comments the glyph She cannot be used and I used the "null-She" instead. In this post they has been replaced by the glyph for improved readability.

The topics are grouped in a few categories to allow you more easily to read the ones you're interested in.


Memory

+Glenn Mungra asked (LinkedIn):
If I understand correctly Gaia learns from evaluating her own output. The Experience center looks very promissing. If I understand correctly she will be able to forget.
My answer:
You're right. Learning means having someway or another feedback. As there are no humans in the loop for the moment she uses the evaluation as a feedback loop. She will forget memory patterns if they are not used for a long period. They sort fade-out over time. I didn't plan to apply the same technique to what is stored in the experience centre. 

+David Lannan asked:
Interesting approach - my one question is whether frequency makes any 'sense' as a base capability? What I mean, is that 'she' considers freq a high value, and computers/machines are good at that - but humans, are generally not - for freq things we push that to a 'muscle memory" but few of us would know how many things occur in any environment.
I wonder, it it makes more importance to use freq in places we would care - like if nouns are used many times (places, people etc). And quite oddly, if they occur very in-frequently (we often recollect rare and odd singular experiences). Dunno. Interesting work though.
My answer:
I fully agree that the frequency aspect (or better the tools that might use that) is something I expect her not to use at a more mature level.

At this stage however it seems an acceptable solution to make a first shift in the byte garbage she is receiving.

We'll see what will be used when there are more tools available (even at this level).

As humans we handle a lot of the high frequent stimulations at sub- or unconscious level. This allows us to drive car without  being exhausted after a few minutes. The infrequent stimuli will often induce special attention.

When handling video I expect Gaia  to rapidly focus on patterns that represent moving objects against a more or less static background: i.e. important low frequent patterns in a high frequent pattern background.



+Jochen Oekonomopulos asked:
How do you plan Gaia's communication with its surroundings in order to connect meanings to plain words? In that sense what internal structures do you plan to redefine her importance-classification by relying on something else than frequency?
My answer:
While I was working on the semantic network technologies one of the important findings was related to meaning.
We can only attribute a meaning to something if that something is associated with some context. If it isn't that "something" remains meaningless.
Contexts can be provided by various means: your memory, a reality situation, a virtual reality situation, ...
When memory is the context provider the initial provided context will probably not be unique. A whole range of potential correct contexts will pop up. Further information (later in time, or in parallel) allows you hopefully to narrow down to one context. If this is not the case there is an ambiguity in meaning (which is not necessarily a problem).
Gaia's infant memory has no associations. Her next level memory has. In the infant memory, besides the identifying byte patterns, frequency and time are about the only things that can be associated with these elements.
For the moment I don't see the need for absolute time, so I do not use it. Talking about relative time implies association (later, sooner, at the same time) which is one the of kinds of association she will make in her next level of memory.
A written word, a spoken word and an image (three different memory elements) will be associated with links that carry a meaning like < is an alternate representation of>. The parallel channel handling is one of the important (but not the only one) ways of creating these associations.
Compare this to a baby's early perceptions of "mama": a sound, a face, and a range of emotions probably representing well being or happiness.
If you're familiar with the holoarchy paradigm you can see these three associated memory elements as the smallest possible (useful) holon.
These three kinds of elements, even associated, are still meaningless because they are not related to any context.
Her next level of memory will extend this first initial kind of association with a whole bunch of other kinds of associations providing context to these elements. 
I'm inclined to associate the words importance and classification in your question not so much with building the memory but more with using the memory.
I owe you the answer later on (please remind me of that if I forget it).
+Jochen Oekonomopulos asked:
Do you have any plans about a  'brain part' that handles some kind of rewards and feelings? Might be useful for Gaia to develop a kind of will to learn and answer.
My answer:
In the terms I use to describe how Gaia is build the (almost) equivalents are:
rewards -> positive evaluation
feelings -> an internal state (change)
will to learn -> goal(s)
These three are all closely related to the Experience Center and do occur there already.

Language

+Gustav Olav Lundby asked:
I see! You are trying to make an AI learning from scratch. Some philosophers think that is how the human child's brain works; tabula rasa, the empty slate. No innate knowledge. Innate knowledge is reserved for the animals.

The question is if this is the most effective approach. Chomsky, in his book the language instinct, presupposes that a meta grammar is present initially, on which the child build the specific grammar it detects in its language environment. May be such innate tools should be implemented to jumpstart the AI learning process? 
My answer:

I have no reason to believe that we are so much different from animals such that they do have innate knowledge and we don't. Having said that I have no idea what innate knowledge humans might have.

I'm far from convinced that Chomsky is on the right track with his idea about meta grammar.
It simply doesn't feel right. That it is to much an artificial model, and as with all models doesn't express what's really going on.

One of the expectations I have with Gaia, is that she will be able, after a while (that may take some time though), to really understand a language. And more then one. But not from texts alone.

One of the fundamental ideas behind the concept of Gaia comes from the way languages can be learned.

In my opinion there are only two important ones. Either by translation or anchored in reality.

The first is how we learned languages at school (although not entirely). Google translate is also based on those foundations (but they do use, if I'm right, some anchoring in reality with the help of image tags).

The second is based on association. Combining written and spoken word with a visualization of the context and the objects in that context.

In another post in my blog I'm talking about an application for learning languages with the help of an AI mentor. This is one of the things Gaia can be used for.

Vision

+Gustav Olav Lundby asked:
When you connect video camera (two for 3d?), will you then do likewise, to let it stare at the world (or garbage TV?) until it makes sense out of it? Or will you let it start with innate knowledge of geometry, colors, surfaces, methods for inferring objects and such? The last would be equivalent to having a meta grammar for the language part. 
My answer:
If I can maintain the general aspect of the Sensor Output Consumer, i.e. not specific for any kind of byte stream, the plan is as follows.

In the beginning she will not even know how to detect a pixel (3 or 4 byte patterns). After 
she has done that she will have to discover the width of an image (in terms number of pixels).

Both steps will require a similarity function. I'm not sure yet whether these two properties will be discovered one after another or at the same time.

For the detection of what a pixel is, the axiom is that similar adjacent pixels are more frequent then adjacent pixels that change completely.

For the width detection she will have to detect that certain ranges of similar pixels occur during a certain period (number of lines) at a certain distance (the width). And that these recurring patterns will overlap (right and left side of an image) within that distance.

In the next stage she will have to switch her center of interest to the break points in successive similar pixels. We here enter a category of algorithms that will produce probably the same output as the classical contour detection algorithms.
I'm not sure yet if the algorithms will be the same though.
This will need some hands-on experiments.

The idea is that from elementary pattern detection building blocks, including disruption detection (what I call tools) she will come up with her own suite of tools to apply. Sort of making her own algorithm.

In terms of the learning center, she uses actually one tool with different settings.
The image handling will require the discovery of tool suites (some of which will have parameters, e.g. the similarity functions) and second to apply them in cycles.
This is Gaia's next challenge, and mine for building it.

Newborns can only see sharp a few inches from their eyes. The background is blurred. The reason for this might very well be the need for a progressive evolution / training of our vision system. Limiting initial pattern detection in only a small area with relatively big objects.

If the process described above doesn't work well with full sharp images, I do have the fall back option to down scale to the way young babies start using their vision system. Not by providing smaller images but by blurring the outsides. The presence of the blurred area is necessary for the contour detection.

I don't know exactly what the influence is of the baby's possibility to interact with the objects within their vision range on the evolution of the vision system itself.
It might be very important.
What I do know is that Gaia will have no actuators to start with. I know (some of) the experiments with robots where the interaction with the environment is learned through experience, but I'm not aware of any research where this is done in combination with the development of a vision system.

Traditional Machine learning

+Romain Beaumont asked:
It's not very convincing. Do you know about http://en.wikipedia.org/wiki/Tf%E2%80%93idf ?
My answer:
The term frequency–inverse document frequency requires the notion of document and the notion of term.

So please consider the following.

For Gaia (at this stage) the concept of document doesn't exist. In fact she is receiving one single stream of bytes finding their origin in several documents. There are no special "patterns" defining the beginning or ending of a document.

Second she only deals with patterns of bytes (again at this stage). Such a pattern might correspond to what we would call a term, and sometimes it will, but often it will not as you can see in the memory dump.

Furthermore the existence of "terms" only exist through notion of identified term-separators. And she is not there yet.
But in the memory dump you can also see that she is not far from identifying at least three of them.
In fact I did test the algorithm by providing the most frequent 1 byte pattern and the results are much better. But that was in a unit test of the algorithm. I want her to discover that alone.

Finally, and perhaps not the least, consider the goal of Gaia and the purpose of the tf-idf algorithm. The algorithm is targeting document classification, ranking and so forth. The actual goal of Gaia is (sort of) trying to make sense of the data stream. These two perspectives are not compatible.

I certainly do not exclude that she will use such an algorithm if it provides constructive results for one of her goals at that time.
+Romain Beaumont asked:
I'm not sure how using this kind of method would help that AI understand anything faster than usual natural language processing methods.
For example syntaxic analysis to begin with, or named entity recognition,...

I think you would need an incredibly good algorithm for the AI to be able to understand any stream of byte.

You'd need something like the brain.

That seems a bit too hard an objective to me.
My answer:
I've worked with NLP tools for the past decade. In what I call my Semantic Network Age which lasted for 2 decades.
I've been there, got the T-Shirt.

I know the things Google is doing, in particular the views of +Peter Norvig , +Sebastian Thrun and the DNN of +Andrew Ng .
Although continuous progress is made and the actual techniques are far better then those of 3 years ago, something is missing.

In my blog series "A leap in AI?" (notice the question mark) I try to pin point what might be necessary to improve our actual AI not by 10% but by a factor of 10 . +Solve for X call these moonshots.

So I fully agree that we'd need something like the brain.

It will be hard, but that's the case with all moonshots.

That's what is all about.

+Romain Beaumont asked:
Ok I see.
What I didn't understand is what kind of algorithm you are using. Are you using machine learning ?
Good luck with that objective though.
My answer:
Gaia is learning and even learning to learn. And as she is software it's machine learning.

If you're referring to "classical" ML techniques, the answer is not at this moment.
I do not reject traditional ML techniques at all and if useful I'll provide Gaia access to them. Although DNN e.g. is out of reach with my actual hardware resources.





Support

If you like to support the development of this new kind of AI you can donate Bitcoins (or fragments of it) at

1HadqhKD5EdCDpTorgxP9P8akKqycEUkwk


When Gaia will be more mature and she will be able to interact with the environment she might also need to spent money. She is not there yet but Bitcoin donations for her can already been done at:

1PyyRd6k5kSuuErAnJNpvdoNCW5ZPgD9fb

Wednesday, July 2, 2014

A leap in artificial intelligence ? Continued - Building the beast.

Building Gaia


After almost 6 months of silence in this blog (due to some other activities) I felt the need to share the actual state of my ideas on the

Artificial intelligence that learns from associated parallel streams of information

Last sunday (June 29th 2014) I started building Gaia. That's the working name I use for this AI.

As I'm a man, I cannot give birth to a living creature called human, but as a transformer of coffee and pizza into bits and bytes I can give birth to something else.

In my tag line in Google+ "Desire a self driving car and other smart companions (male, female and undefined)" one of the "undefined" will be this AI.

I don't like to refer to this AI with the dispassionate "it" so I'll use the term "she" when referring to Gaia.

Inspired by the "World of null-A" by A. E. van Vogt and to be clear that I very well know that this program is not a person I'll use the glyph she (being the non-human she).



Building philosophy and architecture

The most important axiom for building her is that I want to give her as less as possible "hard-wired" instructions on how to do something.
I decided to use a "toolbox" like paradigm.

Typical elements in her toolbox will be:

  • goals
  • algorithms
  • kinds of memory
  • ...

Each of these tools can have discoverable parameters for which she can change the values. A tool has also a set of evaluation algorithms with their own parameters. She can choose and the evaluation algorithm (if there is more then one) and the evaluation parameters. Together they form the evaluation criteria.

She is free to choose whatever combination of goals, algorithms (with their parameters) etcetera she is going to use and evaluate the effectiveness (related to a goal) of it.

The outcome is stored in a special memory (hard coded for this one): the experience center.

Version 0.1 of Gaia's architecture. The components with a red border have been build on 2014-06-30.


The effectiveness of a tool can vary over time. For example a tool might not be useful in her early stage of development but only later on.


Sensor channels

A sensor channel is composed of one or more Sensor Output Consumers. The channel allows the synchronization of the data streams.
A video camera e.g. would be connected to one channel with 2 or 3 consumers: 1 for the video and 1 (mono) or 2 (stereo) for the sound.
A YouTube video might have an extra consumer for the subtitles. Even one for each language when in the future it will be possible to have the subtitles in different languages at the same time (blink, hint, blink to those who are concerned).
A sensor reading digital texts will have only 1 consumer in the associated channel.

The Sensor Output Consumers are initially all identical. None is specific for a particular kind of data.
She has to "train" them to make sense of the data stream. Using the mechanism described above.
To improve the overall effectiveness it is recommended (but not necessary) to keep the data flow between a sensor and an associated consumer homogenous (e.g. only streaming video or only streaming sound).

The reason why I opted for this solution is that I can define what kinds of data streams can be made available now. But I don't know what will be available tomorrow. A "smell" stream perhaps?

The Sensor Output Consumer tool should be flexible enough to cope with new kinds of data streams.


The data consumed

To avoid what is called "over fitting" in traditional AI, Gaia will see a particular stream of data only once. Depending on the tool used she will retain only a very small fraction of the first streams but this fraction should increase more or less rapidly afterwards.


What has been done so far

To facilitate the architecture implementation to mature over time, (yes, this first implementation will not be the last), I started with an easy data stream: text.

The data sources I use are free eBooks from the Gutenberg project. And my compliments for all the volunteers making the books available.
The books are in different languages. For now in English, French, German, Spanish and Latin.
I selected these languages because it allows me to identify what I would like to see what she has done with it and compare that with what she has really done.

And there were surprises.

After the first few testing rounds, what I saw in her memory was far away from what I expected to see.

The books from the Gutenberg project have all, at the end, a license section. These sections are almost identical for all books. She considered these as more important then the rest and it overshadowed everything else.

Note: the term considered should not be taken literally. She is far from being able to consider whatever.

This is typically a case of over fitting.
To cope with this I choose to keep only the text of the books and strip of the headers and tails.

Her implicit goal for now could be described as:

Fill my memory with frequent patterns of bytes

The Sensor Output Consumer tool she is using has 6 configurable numeric parameters and 1 boolean for 1 algorithm.
For the evaluation she has 3 extra parameters and 4 algorithms to choose from.

The numeric parameters are not constraint in any way. Providing a negative value for something that should be used as a counter will terminate the experience immediately for instance.
And the evaluation for each of the evaluation algorithms will be bad (with regards to the goal).

Fiddling around with her options on a 40 M data stream for less then a minute produces the JSON memory dump add the end of this post.

The existing "Pattern splitting" tool has not been used yet.
This tool splits patterns in memory into 2 other patterns if each of these exist. The original pattern will be removed and the 2 resulting patterns will have their count (firing rate) increased.
Doing so with isolated patterns will imply the lost of precious information. Because the patterns are sequentially related (sequence in time or space as you like) and this information will now be lost.
And I'm not yet fixed if I should make the evaluation criteria for this stage of her development. The availability of evaluation criteria allows her to use the tool.



Avoiding misunderstanding

In this post, as it will be the case in the next ones, I describe Gaia, the new AI, as if it were a person.
This is a personal choice, that helps me thinking about what and how the AI should do things.
Not thinking about her as a bunch of algorithms, which in reality it is of course.

To be explicit:

Gaia doesn't have any perception yet on what she is handling. She only tries to find frequent patterns in a stream.
Even her perception of the term frequent is reduced to a function result (the count() function).

Her actual data memory is her infant memory. There are only isolated patterns without any associations / links between them.
I will soon add a new kind of memory that allows patterns to be connected in various ways.


Roadmap

There is a multitude of next steps on Gaia's development agenda. To mention a few:

  • provide video streams
  • provide sound streams
  • create her next generation memory
  • develop other algorithms
  • improve existing algorithms
  • improve and extend the architecture framework
  • make the code open source
  • ....


What and when things will be done depends on a lot of factors, for which some of them are unfortunately out of my sphere of influence.

If you're interested stay tuned. I'll keep you informed in this blog about the progress on Gaia.

In the mean time relax and think about the implications (benefits and risks).


Financial support


If you like to support the development of this new kind of AI you can donate Bitcoins (or fragments of it) at

1HadqhKD5EdCDpTorgxP9P8akKqycEUkwk


When Gaia will be more mature and she will be able to interact with the environment she might also need to spent money. She is not there yet but Bitcoin donations for her can already been done at:

1PyyRd6k5kSuuErAnJNpvdoNCW5ZPgD9fb





I'm excited about this piece of software.

And you?


Ronald Poell
2014-07-02


First chapter Previous chapter


Edit 2014-07-02: corrected a forgotten she . When the glyph cannot be written use null-she.


Below you'll find her memory dump after running from scratch (empty memory and no previous experiences) on a 40 M stream of text.

In some places you will see the well known � character.
As she doesn't know what she is looking at (in this case a UTF-8 stream) she doesn't know yet about code points in UTF-8. And when a code point is not included in a multi byte character (the UTF-8 character is not well formed) the parser in e.g. a web browser will display the � character.

It will be interesting to see how long it will take her to get rid of them.


{
    "shortest": 2,
    "longest": 10,
    "patterns": [
        {
            "pattern": "0D0A (\r\n)",
            "count": 6725,
            "length": 2
        },
        {
            "pattern": "6520 (e )",
            "count": 6556,
            "length": 2
        },
        {
            "pattern": "202020202020 (      )",
            "count": 4823,
            "length": 6
        },
        {
            "pattern": "20202020202020 (       )",
            "count": 3842,
            "length": 7
        },
        {
            "pattern": "7320 (s )",
            "count": 3196,
            "length": 2
        },
        {
            "pattern": "2C20 (, )",
            "count": 3137,
            "length": 2
        },
        {
            "pattern": "206F6620746865 ( of the)",
            "count": 2583,
            "length": 7
        },
        {
            "pattern": "206F66207468 ( of th)",
            "count": 2483,
            "length": 6
        },
        {
            "pattern": "6F6620746865 (of the)",
            "count": 2475,
            "length": 6
        },
        {
            "pattern": "C3A97461697420 (était )",
            "count": 2279,
            "length": 7
        },
        {
            "pattern": "662074686520 (f the )",
            "count": 2122,
            "length": 6
        },
        {
            "pattern": "6F662074686520 (of the )",
            "count": 2112,
            "length": 7
        },
        {
            "pattern": "2E0D0A0D0A2D2D (.\r\n\r\n--)",
            "count": 2036,
            "length": 7
        },
        {
            "pattern": "206465206C6120 ( de la )",
            "count": 2017,
            "length": 7
        },
        {
            "pattern": "6E20 (n )",
            "count": 1990,
            "length": 2
        },
        {
            "pattern": "20202020202020202020 (          )",
            "count": 1836,
            "length": 10
        },
        {
            "pattern": "6E2074686520 (n the )",
            "count": 1820,
            "length": 6
        },
        {
            "pattern": "207468617420 ( that )",
            "count": 1773,
            "length": 6
        },
        {
            "pattern": "2C20616E6420 (, and )",
            "count": 1748,
            "length": 6
        },
        {
            "pattern": "6C20 (l )",
            "count": 1684,
            "length": 2
        },
        {
            "pattern": "2064616E73206C ( dans l)",
            "count": 1597,
            "length": 7
        },
        {
            "pattern": "656E74 (ent)",
            "count": 1573,
            "length": 3
        },
        {
            "pattern": "2E20 (. )",
            "count": 1544,
            "length": 2
        },
        {
            "pattern": "2020 (  )",
            "count": 1465,
            "length": 2
        },
        {
            "pattern": "20776869636820 ( which )",
            "count": 1369,
            "length": 7
        },
        {
            "pattern": "207468652073 ( the s)",
            "count": 1282,
            "length": 6
        },
        {
            "pattern": "20696E207468 ( in th)",
            "count": 1221,
            "length": 6
        },
        {
            "pattern": "696E20746865 (in the)",
            "count": 1200,
            "length": 6
        },
        {
            "pattern": "20746865 ( the)",
            "count": 1136,
            "length": 4
        },
        {
            "pattern": "20636574746520 ( cette )",
            "count": 1131,
            "length": 7
        },
        {
            "pattern": "6F6E (on)",
            "count": 1114,
            "length": 2
        },
        {
            "pattern": "207468650D0A ( the\r\n)",
            "count": 1092,
            "length": 6
        },
        {
            "pattern": "202020202020202020 (         )",
            "count": 1059,
            "length": 9
        },
        {
            "pattern": "207768696368 ( which)",
            "count": 1028,
            "length": 6
        },
        {
            "pattern": "20C3A974616974 ( était)",
            "count": 1021,
            "length": 7
        },
        {
            "pattern": "207769746820 ( with )",
            "count": 1018,
            "length": 6
        },
        {
            "pattern": "776869636820 (which )",
            "count": 1001,
            "length": 6
        },
        {
            "pattern": "20696E20746865 ( in the)",
            "count": 992,
            "length": 7
        },
        {
            "pattern": "616E (an)",
            "count": 951,
            "length": 2
        },
        {
            "pattern": "64616E73206C65 (dans le)",
            "count": 948,
            "length": 7
        },
        {
            "pattern": "20636F6D6D6520 ( comme )",
            "count": 943,
            "length": 7
        },
        {
            "pattern": "74686520 (the )",
            "count": 936,
            "length": 4
        },
        {
            "pattern": "0D0A0D0A2D2D20 (\r\n\r\n-- )",
            "count": 926,
            "length": 7
        },
        {
            "pattern": "656E7420C3A020 (ent à )",
            "count": 924,
            "length": 7
        },
        {
            "pattern": "2020202020202020 (        )",
            "count": 921,
            "length": 8
        },
        {
            "pattern": "696E2074686520 (in the )",
            "count": 917,
            "length": 7
        },
        {
            "pattern": "7261 (ra)",
            "count": 876,
            "length": 2
        },
        {
            "pattern": "7175656C717565 (quelque)",
            "count": 847,
            "length": 7
        },
        {
            "pattern": "206861766520 ( have )",
            "count": 844,
            "length": 6
        },
        {
            "pattern": "742074686520 (t the )",
            "count": 835,
            "length": 6
        },
        {
            "pattern": "20746F20746865 ( to the)",
            "count": 831,
            "length": 7
        },
        {
            "pattern": "20616E642074 ( and t)",
            "count": 828,
            "length": 6
        },
        {
            "pattern": "642074686520 (d the )",
            "count": 802,
            "length": 6
        },
        {
            "pattern": "6520C3A9746169 (e étai)",
            "count": 795,
            "length": 7
        },
        {
            "pattern": "20617661697420 ( avait )",
            "count": 795,
            "length": 7
        },
        {
            "pattern": "61697420706173 (ait pas)",
            "count": 789,
            "length": 7
        },
        {
            "pattern": "746F2074686520 (to the )",
            "count": 785,
            "length": 7
        },
        {
            "pattern": "20746F207468 ( to th)",
            "count": 775,
            "length": 6
        },
        {
            "pattern": "7265 (re)",
            "count": 775,
            "length": 2
        },
        {
            "pattern": "74686174207468 (that th)",
            "count": 771,
            "length": 7
        },
        {
            "pattern": "746F20746865 (to the)",
            "count": 763,
            "length": 6
        },
        {
            "pattern": "74696F6E206F66 (tion of)",
            "count": 762,
            "length": 7
        },
        {
            "pattern": "2066726F6D20 ( from )",
            "count": 761,
            "length": 6
        },
        {
            "pattern": "20717565206C65 ( que le)",
            "count": 753,
            "length": 7
        },
        {
            "pattern": "6573 (es)",
            "count": 753,
            "length": 2
        },
        {
            "pattern": "617420746865 (at the)",
            "count": 751,
            "length": 6
        },
        {
            "pattern": "652073 (e s)",
            "count": 751,
            "length": 3
        },
        {
            "pattern": "207175656C7175 ( quelqu)",
            "count": 740,
            "length": 7
        },
        {
            "pattern": "2072C3A9706F6E ( répon)",
            "count": 739,
            "length": 7
        },
        {
            "pattern": "6520706F757220 (e pour )",
            "count": 728,
            "length": 7
        },
        {
            "pattern": "20616E64207468 ( and th)",
            "count": 721,
            "length": 7
        },
        {
            "pattern": "0D0A2020202020 (\r\n     )",
            "count": 718,
            "length": 7
        },
        {
            "pattern": "206F6620 ( of )",
            "count": 713,
            "length": 4
        },
        {
            "pattern": "27C3A974616974 ('était)",
            "count": 713,
            "length": 7
        },
        {
            "pattern": "20717527696C20 ( qu'il )",
            "count": 712,
            "length": 7
        },
        {
            "pattern": "696F6E206F6620 (ion of )",
            "count": 711,
            "length": 7
        },
        {
            "pattern": "616E64207468 (and th)",
            "count": 705,
            "length": 6
        },
        {
            "pattern": "2020202020 (     )",
            "count": 705,
            "length": 5
        },
        {
            "pattern": "6F2074686520 (o the )",
            "count": 702,
            "length": 6
        },
        {
            "pattern": "6E74206C657320 (nt les )",
            "count": 700,
            "length": 7
        },
        {
            "pattern": "20C3A0206C6120 ( à la )",
            "count": 698,
            "length": 7
        },
        {
            "pattern": "207468652063 ( the c)",
            "count": 697,
            "length": 6
        },
        {
            "pattern": "696F6E206F66 (ion of)",
            "count": 696,
            "length": 6
        },
        {
            "pattern": "7269 (ri)",
            "count": 694,
            "length": 2
        },
        {
            "pattern": "20746861742074 ( that t)",
            "count": 694,
            "length": 7
        },
        {
            "pattern": "657220 (er )",
            "count": 692,
            "length": 3
        },
        {
            "pattern": "61742074686520 (at the )",
            "count": 692,
            "length": 7
        },
        {
            "pattern": "72C3A9706F6E64 (répond)",
            "count": 690,
            "length": 7
        },
        {
            "pattern": "65206F66207468 (e of th)",
            "count": 681,
            "length": 7
        },
        {
            "pattern": "6E6420746865 (nd the)",
            "count": 675,
            "length": 6
        },
        {
            "pattern": "6172 (ar)",
            "count": 674,
            "length": 2
        },
        {
            "pattern": "68617420746865 (hat the)",
            "count": 669,
            "length": 7
        },
        {
            "pattern": "C3A872656E7420 (èrent )",
            "count": 664,
            "length": 7
        },
        {
            "pattern": "6F6E206F6620 (on of )",
            "count": 661,
            "length": 6
        },
        {
            "pattern": "0D0A74686520 (\r\nthe )",
            "count": 657,
            "length": 6
        },
        {
            "pattern": "20737572206C65 ( sur le)",
            "count": 646,
            "length": 7
        },
        {
            "pattern": "EFBFBD706F6E646974 (�pondit)",
            "count": 642,
            "length": 9
        },
        {
            "pattern": "73206465206C61 (s de la)",
            "count": 642,
            "length": 7
        },
        {
            "pattern": "65206465206C61 (e de la)",
            "count": 638,
            "length": 7
        },
        {
            "pattern": "2074686520 ( the )",
            "count": 638,
            "length": 5
        },
        {
            "pattern": "74696F6E206F (tion o)",
            "count": 636,
            "length": 6
        },
        {
            "pattern": "746169656E7420 (taient )",
            "count": 636,
            "length": 7
        },
        {
            "pattern": "696E (in)",
            "count": 633,
            "length": 2
        },
        {
            "pattern": "20C3A974C3A920 ( été )",
            "count": 629,
            "length": 7
        },
        {
            "pattern": "207468652070 ( the p)",
            "count": 627,
            "length": 6
        },
        {
            "pattern": "C3A9706F6E6469 (épondi)",
            "count": 606,
            "length": 7
        },
        {
            "pattern": "742064616E7320 (t dans )",
            "count": 605,
            "length": 7
        },
        {
            "pattern": "652061 (e a)",
            "count": 602,
            "length": 3
        },
        {
            "pattern": "20746865206D ( the m)",
            "count": 602,
            "length": 6
        },
        {
            "pattern": "73206F662074 (s of t)",
            "count": 598,
            "length": 6
        },
        {
            "pattern": "656E7420646520 (ent de )",
            "count": 593,
            "length": 7
        },
        {
            "pattern": "726F (ro)",
            "count": 578,
            "length": 2
        },
        {
            "pattern": "207468652066 ( the f)",
            "count": 571,
            "length": 6
        },
        {
            "pattern": "6174696F6E20 (ation )",
            "count": 570,
            "length": 6
        },
        {
            "pattern": "202020 (   )",
            "count": 564,
            "length": 3
        },
        {
            "pattern": "207468697320 ( this )",
            "count": 557,
            "length": 6
        },
        {
            "pattern": "686174207468 (hat th)",
            "count": 545,
            "length": 6
        },
        {
            "pattern": "6F6E20746865 (on the)",
            "count": 532,
            "length": 6
        },
        {
            "pattern": "652074686520 (e the )",
            "count": 531,
            "length": 6
        },
        {
            "pattern": "65206F662074 (e of t)",
            "count": 530,
            "length": 6
        },
        {
            "pattern": "0D0A0D0A2020 (\r\n\r\n  )",
            "count": 530,
            "length": 6
        },
        {
            "pattern": "732074686520 (s the )",
            "count": 529,
            "length": 6
        },
        {
            "pattern": "2C2074686520 (, the )",
            "count": 528,
            "length": 6
        },
        {
            "pattern": "746861742074 (that t)",
            "count": 527,
            "length": 6
        },
        {
            "pattern": "6572 (er)",
            "count": 524,
            "length": 2
        },
        {
            "pattern": "696E67207468 (ing th)",
            "count": 509,
            "length": 6
        },
        {
            "pattern": "0D0A20202020 (\r\n    )",
            "count": 507,
            "length": 6
        },
        {
            "pattern": "656420746F20 (ed to )",
            "count": 494,
            "length": 6
        },
        {
            "pattern": "7320616E6420 (s and )",
            "count": 494,
            "length": 6
        },
        {
            "pattern": "207468652065 ( the e)",
            "count": 484,
            "length": 6
        },
        {
            "pattern": "207468657920 ( they )",
            "count": 483,
            "length": 6
        },
        {
            "pattern": "7C0D0A20202020207C (|\r\n     |)",
            "count": 449,
            "length": 9
        },
        {
            "pattern": "616C (al)",
            "count": 401,
            "length": 2
        },
        {
            "pattern": "6F6D (om)",
            "count": 390,
            "length": 2
        },
        {
            "pattern": "20746F ( to)",
            "count": 384,
            "length": 3
        },
        {
            "pattern": "207468 ( th)",
            "count": 379,
            "length": 3
        },
        {
            "pattern": "7274 (rt)",
            "count": 347,
            "length": 2
        },
        {
            "pattern": "20696E20 ( in )",
            "count": 334,
            "length": 4
        },
        {
            "pattern": "616E6420 (and )",
            "count": 330,
            "length": 4
        },
        {
            "pattern": "204D ( M)",
            "count": 319,
            "length": 2
        },
        {
            "pattern": "6E61 (na)",
            "count": 312,
            "length": 2
        },
        {
            "pattern": "66207468 (f th)",
            "count": 311,
            "length": 4
        },
        {
            "pattern": "2C2061 (, a)",
            "count": 311,
            "length": 3
        },
        {
            "pattern": "20616E64 ( and)",
            "count": 307,
            "length": 4
        },
        {
            "pattern": "6E6420 (nd )",
            "count": 305,
            "length": 3
        },
        {
            "pattern": "7469 (ti)",
            "count": 300,
            "length": 2
        },
        {
            "pattern": "20636F ( co)",
            "count": 293,
            "length": 3
        },
        {
            "pattern": "6F662074 (of t)",
            "count": 289,
            "length": 4
        },
        {
            "pattern": "20746F20 ( to )",
            "count": 285,
            "length": 4
        },
        {
            "pattern": "746865 (the)",
            "count": 281,
            "length": 3
        },
        {
            "pattern": "696E6720 (ing )",
            "count": 277,
            "length": 4
        },
        {
            "pattern": "202022202020207C20 (  \"    | )",
            "count": 277,
            "length": 9
        },
        {
            "pattern": "204E ( N)",
            "count": 274,
            "length": 2
        },
        {
            "pattern": "206120 ( a )",
            "count": 274,
            "length": 3
        },
        {
            "pattern": "206F ( o)",
            "count": 273,
            "length": 2
        },
        {
            "pattern": "6D20 (m )",
            "count": 267,
            "length": 2
        },
        {
            "pattern": "74696F6E (tion)",
            "count": 264,
            "length": 4
        },
        {
            "pattern": "6E67 (ng)",
            "count": 262,
            "length": 2
        },
        {
            "pattern": "6F72 (or)",
            "count": 259,
            "length": 2
        },
        {
            "pattern": "6E207468 (n th)",
            "count": 258,
            "length": 4
        },
        {
            "pattern": "686520 (he )",
            "count": 249,
            "length": 3
        },
        {
            "pattern": "2047 ( G)",
            "count": 232,
            "length": 2
        },
        {
            "pattern": "2069 ( i)",
            "count": 231,
            "length": 2
        },
        {
            "pattern": "6C6F6265 (lobe)",
            "count": 218,
            "length": 4
        },
        {
            "pattern": "6620746865 (f the)",
            "count": 200,
            "length": 5
        },
        {
            "pattern": "20616E642074686520 ( and the )",
            "count": 200,
            "length": 9
        },
        {
            "pattern": "617420 (at )",
            "count": 198,
            "length": 3
        },
        {
            "pattern": "6865 (he)",
            "count": 197,
            "length": 2
        },
        {
            "pattern": "20616E6420 ( and )",
            "count": 196,
            "length": 5
        },
        {
            "pattern": "65206F662074686520 (e of the )",
            "count": 195,
            "length": 9
        },
        {
            "pattern": "656420 (ed )",
            "count": 187,
            "length": 3
        },
        {
            "pattern": "20676C6F ( glo)",
            "count": 186,
            "length": 4
        },
        {
            "pattern": "746865206561727468 (the earth)",
            "count": 185,
            "length": 9
        },
        {
            "pattern": "206F662074 ( of t)",
            "count": 182,
            "length": 5
        },
        {
            "pattern": "206F66207468652073 ( of the s)",
            "count": 179,
            "length": 9
        },
        {
            "pattern": "2072C3A9706F6E64 ( répond)",
            "count": 176,
            "length": 8
        },
        {
            "pattern": "6F66207468 (of th)",
            "count": 176,
            "length": 5
        },
        {
            "pattern": "2D2D2D2D2D2D2D2D2D2D (----------)",
            "count": 175,
            "length": 10
        },
        {
            "pattern": "696F6E20 (ion )",
            "count": 173,
            "length": 4
        },
        {
            "pattern": "65206F66 (e of)",
            "count": 172,
            "length": 4
        },
        {
            "pattern": "0D0A0D0A (\r\n\r\n)",
            "count": 170,
            "length": 4
        },
        {
            "pattern": "616E64 (and)",
            "count": 170,
            "length": 3
        },
        {
            "pattern": "6C6F (lo)",
            "count": 169,
            "length": 2
        },
        {
            "pattern": "68697320 (his )",
            "count": 167,
            "length": 4
        },
        {
            "pattern": "68696368 (hich)",
            "count": 164,
            "length": 4
        },
        {
            "pattern": "73206F662074686520 (s of the )",
            "count": 163,
            "length": 9
        },
        {
            "pattern": "6F6620 (of )",
            "count": 162,
            "length": 3
        },
        {
            "pattern": "6620 (f )",
            "count": 160,
            "length": 2
        },
        {
            "pattern": "676C6F62 (glob)",
            "count": 160,
            "length": 4
        },
        {
            "pattern": "2E0D0A0D0A2D2D20 (.\r\n\r\n-- )",
            "count": 157,
            "length": 8
        },
        {
            "pattern": "66726F6D2074686520 (from the )",
            "count": 157,
            "length": 9
        },
        {
            "pattern": "74686174 (that)",
            "count": 156,
            "length": 4
        },
        {
            "pattern": "206F66 ( of)",
            "count": 153,
            "length": 3
        },
        {
            "pattern": "20697320 ( is )",
            "count": 153,
            "length": 4
        },
        {
            "pattern": "746F20 (to )",
            "count": 153,
            "length": 3
        },
        {
            "pattern": "2B2D2D2D2D2D2D2D2D (+--------)",
            "count": 152,
            "length": 9
        },
        {
            "pattern": "68617420 (hat )",
            "count": 150,
            "length": 4
        },
        {
            "pattern": "2031 ( 1)",
            "count": 149,
            "length": 2
        },
        {
            "pattern": "20E2809C ( “)",
            "count": 147,
            "length": 4
        },
        {
            "pattern": "74656420 (ted )",
            "count": 147,
            "length": 4
        },
        {
            "pattern": "6E20746865 (n the)",
            "count": 146,
            "length": 5
        },
        {
            "pattern": "77697468 (with)",
            "count": 146,
            "length": 4
        },
        {
            "pattern": "20746861 ( tha)",
            "count": 143,
            "length": 4
        },
        {
            "pattern": "6967 (ig)",
            "count": 143,
            "length": 2
        },
        {
            "pattern": "73206F66 (s of)",
            "count": 143,
            "length": 4
        },
        {
            "pattern": "6265 (be)",
            "count": 142,
            "length": 2
        },
        {
            "pattern": "20776869 ( whi)",
            "count": 141,
            "length": 4
        },
        {
            "pattern": "652074 (e t)",
            "count": 139,
            "length": 3
        },
        {
            "pattern": "746861742074686520 (that the )",
            "count": 139,
            "length": 9
        },
        {
            "pattern": "2D2D2D2D2D2D2D2D (--------)",
            "count": 137,
            "length": 8
        },
        {
            "pattern": "72C3A9706F6E6469 (répondi)",
            "count": 136,
            "length": 8
        },
        {
            "pattern": "77686963 (whic)",
            "count": 136,
            "length": 4
        },
        {
            "pattern": "2C20616E (, an)",
            "count": 136,
            "length": 4
        },
        {
            "pattern": "73206F6620 (s of )",
            "count": 132,
            "length": 5
        },
        {
            "pattern": "20676C6F62 ( glob)",
            "count": 129,
            "length": 5
        },
        {
            "pattern": "207468617420746865 ( that the)",
            "count": 128,
            "length": 9
        },
        {
            "pattern": "6E6720 (ng )",
            "count": 128,
            "length": 3
        },
        {
            "pattern": "206F66207468650D0A ( of the\r\n)",
            "count": 126,
            "length": 9
        },
        {
            "pattern": "20696E2074 ( in t)",
            "count": 124,
            "length": 5
        },
        {
            "pattern": "4BC3A9726162616E (Kéraban)",
            "count": 124,
            "length": 8
        },
        {
            "pattern": "696E2074 (in t)",
            "count": 124,
            "length": 4
        },
        {
            "pattern": "206861 ( ha)",
            "count": 123,
            "length": 3
        },
        {
            "pattern": "74206F662074686520 (t of the )",
            "count": 122,
            "length": 9
        },
        {
            "pattern": "27C3A97461697420 ('était )",
            "count": 120,
            "length": 8
        },
        {
            "pattern": "6174696F (atio)",
            "count": 120,
            "length": 4
        },
        {
            "pattern": "EFBFBD706F6E64697420 (�pondit )",
            "count": 120,
            "length": 10
        },
        {
            "pattern": "636170697461696E (capitain)",
            "count": 119,
            "length": 8
        },
        {
            "pattern": "74686572 (ther)",
            "count": 119,
            "length": 4
        },
        {
            "pattern": "20696E ( in)",
            "count": 119,
            "length": 3
        },
        {
            "pattern": "686520656172746820 (he earth )",
            "count": 117,
            "length": 9
        },
        {
            "pattern": "68652073 (he s)",
            "count": 117,
            "length": 4
        },
        {
            "pattern": "757374726174696F6E (ustration)",
            "count": 116,
            "length": 9
        },
        {
            "pattern": "20C3A97461697420 ( était )",
            "count": 116,
            "length": 8
        },
        {
            "pattern": "65726520 (ere )",
            "count": 116,
            "length": 4
        },
        {
            "pattern": "E2809D20 (” )",
            "count": 115,
            "length": 4
        },
        {
            "pattern": "676C6F6265 (globe)",
            "count": 115,
            "length": 5
        },
        {
            "pattern": "C3A9706F6E646974 (épondit)",
            "count": 114,
            "length": 8
        },
        {
            "pattern": "65206F6620 (e of )",
            "count": 113,
            "length": 5
        },
        {
            "pattern": "20617320 ( as )",
            "count": 113,
            "length": 4
        },
        {
            "pattern": "206D61 ( ma)",
            "count": 112,
            "length": 3
        },
        {
            "pattern": "68650D0A (he\r\n)",
            "count": 112,
            "length": 4
        },
        {
            "pattern": "6170697461696E65 (apitaine)",
            "count": 112,
            "length": 8
        },
        {
            "pattern": "7468650D (the\r)",
            "count": 110,
            "length": 4
        },
        {
            "pattern": "69636820 (ich )",
            "count": 109,
            "length": 4
        },
        {
            "pattern": "696E207468 (in th)",
            "count": 108,
            "length": 5
        },
        {
            "pattern": "68657265 (here)",
            "count": 108,
            "length": 4
        },
        {
            "pattern": "205F ( _)",
            "count": 107,
            "length": 2
        },
        {
            "pattern": "636820 (ch )",
            "count": 106,
            "length": 3
        },
        {
            "pattern": "73207468 (s th)",
            "count": 106,
            "length": 4
        },
        {
            "pattern": "207175656C717565 ( quelque)",
            "count": 106,
            "length": 8
        },
        {
            "pattern": "776974682074686520 (with the )",
            "count": 104,
            "length": 9
        },
        {
            "pattern": "20686973 ( his)",
            "count": 104,
            "length": 4
        },
        {
            "pattern": "207768696368207468 ( which th)",
            "count": 104,
            "length": 9
        },
        {
            "pattern": "2064616E73206C65 ( dans le)",
            "count": 103,
            "length": 8
        },
        {
            "pattern": "2C2072C3A9706F6E (, répon)",
            "count": 103,
            "length": 8
        },
        {
            "pattern": "5F20 (_ )",
            "count": 103,
            "length": 2
        },
        {
            "pattern": "746F2074 (to t)",
            "count": 101,
            "length": 4
        },
        {
            "pattern": "204BC3A972616261 ( Kéraba)",
            "count": 101,
            "length": 8
        },
        {
            "pattern": "20636F6E ( con)",
            "count": 100,
            "length": 4
        },
        {
            "pattern": "6E206F662074686520 (n of the )",
            "count": 99,
            "length": 9
        },
        {
            "pattern": "6F207468 (o th)",
            "count": 99,
            "length": 4
        },
        {
            "pattern": "696F6E (ion)",
            "count": 98,
            "length": 3
        },
        {
            "pattern": "20776173 ( was)",
            "count": 98,
            "length": 4
        },
        {
            "pattern": "2063617069746169 ( capitai)",
            "count": 96,
            "length": 8
        },
        {
            "pattern": "6420696E (d in)",
            "count": 96,
            "length": 4
        },
        {
            "pattern": "6F6620746865207375 (of the su)",
            "count": 94,
            "length": 9
        },
        {
            "pattern": "64207468 (d th)",
            "count": 94,
            "length": 4
        },
        {
            "pattern": "6F62 (ob)",
            "count": 93,
            "length": 2
        },
        {
            "pattern": "6569676E65757220 (eigneur )",
            "count": 92,
            "length": 8
        },
        {
            "pattern": "20726174696F6E65 ( ratione)",
            "count": 91,
            "length": 8
        },
        {
            "pattern": "2020202020207C0D0A (      |\r\n)",
            "count": 90,
            "length": 9
        },
        {
            "pattern": "6520706F75766169 (e pouvai)",
            "count": 89,
            "length": 8
        },
        {
            "pattern": "4E617574696C7573 (Nautilus)",
            "count": 88,
            "length": 8
        },
        {
            "pattern": "76656C6F63697461 (velocita)",
            "count": 88,
            "length": 8
        },
        {
            "pattern": "2C20616E64 (, and)",
            "count": 87,
            "length": 5
        },
        {
            "pattern": "7C2020202020202020 (|        )",
            "count": 87,
            "length": 9
        },
        {
            "pattern": "616E204D69747465 (an Mitte)",
            "count": 87,
            "length": 8
        },
        {
            "pattern": "2C20616E6420746865 (, and the)",
            "count": 84,
            "length": 9
        },
        {
            "pattern": "6F6E736965757220 (onsieur )",
            "count": 84,
            "length": 8
        },
        {
            "pattern": "70697461696E6520 (pitaine )",
            "count": 83,
            "length": 8
        },
        {
            "pattern": "20616E ( an)",
            "count": 83,
            "length": 3
        },
        {
            "pattern": "696E67 (ing)",
            "count": 82,
            "length": 3
        },
        {
            "pattern": "6420696E2074686520 (d in the )",
            "count": 82,
            "length": 9
        },
        {
            "pattern": "74696F6E20 (tion )",
            "count": 82,
            "length": 5
        },
        {
            "pattern": "20617374726F6E6F6D ( astronom)",
            "count": 82,
            "length": 9
        },
        {
            "pattern": "6869636820 (hich )",
            "count": 82,
            "length": 5
        },
        {
            "pattern": "617574696C75735F (autilus_)",
            "count": 81,
            "length": 8
        },
        {
            "pattern": "6174696F6E (ation)",
            "count": 77,
            "length": 5
        },
        {
            "pattern": "6E204D697474656E (n Mitten)",
            "count": 76,
            "length": 8
        },
        {
            "pattern": "6520636170697461 (e capita)",
            "count": 75,
            "length": 8
        },
        {
            "pattern": "7768696368 (which)",
            "count": 75,
            "length": 5
        },
        {
            "pattern": "5F4E617574696C75 (_Nautilu)",
            "count": 74,
            "length": 8
        },
        {
            "pattern": "207768 ( wh)",
            "count": 74,
            "length": 3
        },
        {
            "pattern": "746F207468 (to th)",
            "count": 73,
            "length": 5
        },
        {
            "pattern": "56616E204D697474 (Van Mitt)",
            "count": 73,
            "length": 8
        },
        {
            "pattern": "74696F (tio)",
            "count": 73,
            "length": 3
        },
        {
            "pattern": "73206465206C6120 (s de la )",
            "count": 73,
            "length": 8
        },
        {
            "pattern": "6F6E20 (on )",
            "count": 72,
            "length": 3
        },
        {
            "pattern": "696E20 (in )",
            "count": 72,
            "length": 3
        },
        {
            "pattern": "6174612072617469 (ata rati)",
            "count": 72,
            "length": 8
        },
        {
            "pattern": "0D0A0D0A20202020 (\r\n\r\n    )",
            "count": 72,
            "length": 8
        },
        {
            "pattern": "6D6F6E7369657572 (monsieur)",
            "count": 72,
            "length": 8
        },
        {
            "pattern": "207468650D ( the\r)",
            "count": 72,
            "length": 5
        },
        {
            "pattern": "6E2074 (n t)",
            "count": 71,
            "length": 3
        },
        {
            "pattern": "7468652073 (the s)",
            "count": 71,
            "length": 5
        },
        {
            "pattern": "64697374616E7469 (distanti)",
            "count": 71,
            "length": 8
        },
        {
            "pattern": "736569676E657572 (seigneur)",
            "count": 71,
            "length": 8
        },
        {
            "pattern": "657320 (es )",
            "count": 70,
            "length": 3
        },
        {
            "pattern": "205F4E617574696C ( _Nautil)",
            "count": 70,
            "length": 8
        },
        {
            "pattern": "6769 (gi)",
            "count": 70,
            "length": 2
        },
        {
            "pattern": "6F706F7274696F6E (oportion)",
            "count": 70,
            "length": 8
        },
        {
            "pattern": "726174696F6E6520 (ratione )",
            "count": 69,
            "length": 8
        },
        {
            "pattern": "70726F706F727469 (proporti)",
            "count": 69,
            "length": 8
        },
        {
            "pattern": "652E0D0A0D0A2D2D (e.\r\n\r\n--)",
            "count": 68,
            "length": 8
        },
        {
            "pattern": "7175656C71756573 (quelques)",
            "count": 68,
            "length": 8
        },
        {
            "pattern": "6C6F626520 (lobe )",
            "count": 67,
            "length": 5
        },
        {
            "pattern": "20C3A0206C612073 ( à la s)",
            "count": 67,
            "length": 8
        },
        {
            "pattern": "65206465206C6120 (e de la )",
            "count": 67,
            "length": 8
        },
        {
            "pattern": "2066726F6D20746865 ( from the)",
            "count": 67,
            "length": 9
        },
        {
            "pattern": "74656C6C6174696F6E (tellation)",
            "count": 67,
            "length": 9
        },
        {
            "pattern": "2077686963 ( whic)",
            "count": 66,
            "length": 5
        },
        {
            "pattern": "2079656172 ( year)",
            "count": 66,
            "length": 5
        },
        {
            "pattern": "657270656E646963 (erpendic)",
            "count": 66,
            "length": 8
        },
        {
            "pattern": "2074686174 ( that)",
            "count": 66,
            "length": 5
        },
        {
            "pattern": "2074686973 ( this)",
            "count": 66,
            "length": 5
        },
        {
            "pattern": "7468650D0A (the\r\n)",
            "count": 66,
            "length": 5
        },
        {
            "pattern": "726F706F7274696F (roportio)",
            "count": 65,
            "length": 8
        },
        {
            "pattern": "737472 (str)",
            "count": 65,
            "length": 3
        },
        {
            "pattern": "2077697468 ( with)",
            "count": 65,
            "length": 5
        },
        {
            "pattern": "662074 (f t)",
            "count": 65,
            "length": 3
        },
        {
            "pattern": "206D6F6E73696575 ( monsieu)",
            "count": 64,
            "length": 8
        },
        {
            "pattern": "0D0A0D (\r\n\r)",
            "count": 64,
            "length": 3
        },
        {
            "pattern": "C3A9746169656E74 (étaient)",
            "count": 64,
            "length": 8
        },
        {
            "pattern": "20656E636F726520 ( encore )",
            "count": 63,
            "length": 8
        },
        {
            "pattern": "697320 (is )",
            "count": 62,
            "length": 3
        },
        {
            "pattern": "6169742070617320 (ait pas )",
            "count": 62,
            "length": 8
        },
        {
            "pattern": "7468617420 (that )",
            "count": 62,
            "length": 5
        },
        {
            "pattern": "6F20746865 (o the)",
            "count": 62,
            "length": 5
        },
        {
            "pattern": "2E0D0A0D0A (.\r\n\r\n)",
            "count": 61,
            "length": 5
        },
        {
            "pattern": "732C20 (s, )",
            "count": 61,
            "length": 3
        },
        {
            "pattern": "6865207965 (he ye)",
            "count": 61,
            "length": 5
        },
        {
            "pattern": "6420746865 (d the)",
            "count": 60,
            "length": 5
        },
        {
            "pattern": "207769746820746865 ( with the)",
            "count": 59,
            "length": 9
        },
        {
            "pattern": "650D0A (e\r\n)",
            "count": 58,
            "length": 3
        },
        {
            "pattern": "6573206F66 (es of)",
            "count": 57,
            "length": 5
        },
        {
            "pattern": "2068697320 ( his )",
            "count": 57,
            "length": 5
        },
        {
            "pattern": "726573 (res)",
            "count": 57,
            "length": 3
        },
        {
            "pattern": "7C20202020202020 (|       )",
            "count": 56,
            "length": 8
        },
        {
            "pattern": "0D0A746865 (\r\nthe)",
            "count": 56,
            "length": 5
        },
        {
            "pattern": "2D2D2D2D2D2D2D2B2D (-------+-)",
            "count": 56,
            "length": 9
        },
        {
            "pattern": "626520 (be )",
            "count": 55,
            "length": 3
        },
        {
            "pattern": "207468652065617274 ( the eart)",
            "count": 55,
            "length": 9
        },
        {
            "pattern": "74206F6620 (t of )",
            "count": 55,
            "length": 5
        },
        {
            "pattern": "696F6E206F (ion o)",
            "count": 54,
            "length": 5
        },
        {
            "pattern": "617320 (as )",
            "count": 54,
            "length": 3
        },
        {
            "pattern": "0D0A0D0A2020546865 (\r\n\r\n  The)",
            "count": 53,
            "length": 9
        },
        {
            "pattern": "0A74686520 (\nthe )",
            "count": 53,
            "length": 5
        },
        {
            "pattern": "20746F2074 ( to t)",
            "count": 53,
            "length": 5
        },
        {
            "pattern": "696E672074 (ing t)",
            "count": 52,
            "length": 5
        },
        {
            "pattern": "6E206F6620 (n of )",
            "count": 52,
            "length": 5
        },
        {
            "pattern": "657265 (ere)",
            "count": 52,
            "length": 3
        },
        {
            "pattern": "686174 (hat)",
            "count": 52,
            "length": 3
        },
        {
            "pattern": "207265 ( re)",
            "count": 51,
            "length": 3
        },
        {
            "pattern": "3A204649472E2031 (: FIG. 1)",
            "count": 51,
            "length": 8
        },
        {
            "pattern": "696F6E206F66207468 (ion of th)",
            "count": 51,
            "length": 9
        },
        {
            "pattern": "2054686520 ( The )",
            "count": 50,
            "length": 5
        },
        {
            "pattern": "0D0A0D0A5B (\r\n\r\n[)",
            "count": 49,
            "length": 5
        },
        {
            "pattern": "6F6E206F6620746865 (on of the)",
            "count": 49,
            "length": 9
        },
        {
            "pattern": "6420696E20 (d in )",
            "count": 48,
            "length": 5
        },
        {
            "pattern": "6F6E206F66 (on of)",
            "count": 48,
            "length": 5
        },
        {
            "pattern": "6272 (br)",
            "count": 47,
            "length": 2
        },
        {
            "pattern": "0D0A0D0A2020202020 (\r\n\r\n     )",
            "count": 47,
            "length": 9
        },
        {
            "pattern": "206F660D0A ( of\r\n)",
            "count": 47,
            "length": 5
        },
        {
            "pattern": "7468652070 (the p)",
            "count": 46,
            "length": 5
        },
        {
            "pattern": "2EE2809D20 (.” )",
            "count": 45,
            "length": 5
        },
        {
            "pattern": "0A0D0A202054686520 (\n\r\n  The )",
            "count": 44,
            "length": 9
        },
        {
            "pattern": "7468652079 (the y)",
            "count": 44,
            "length": 5
        },
        {
            "pattern": "0A0D0A0D0A0D0A0D0A (\n\r\n\r\n\r\n\r\n)",
            "count": 44,
            "length": 9
        },
        {
            "pattern": "0A20 (\n )",
            "count": 44,
            "length": 2
        },
        {
            "pattern": "20202020207C207878 (     | xx)",
            "count": 44,
            "length": 9
        },
        {
            "pattern": "206265 ( be)",
            "count": 44,
            "length": 3
        },
        {
            "pattern": "7C20202020207C20 (|     | )",
            "count": 44,
            "length": 8
        },
        {
            "pattern": "746572 (ter)",
            "count": 43,
            "length": 3
        },
        {
            "pattern": "686572 (her)",
            "count": 43,
            "length": 3
        },
        {
            "pattern": "7374656C6C6174696F (stellatio)",
            "count": 43,
            "length": 9
        },
        {
            "pattern": "636F6E7374656C6C61 (constella)",
            "count": 42,
            "length": 9
        },
        {
            "pattern": "6C6C75737472617469 (llustrati)",
            "count": 42,
            "length": 9
        },
        {
            "pattern": "5F2C20322E0D0A2020 (_, 2.\r\n  )",
            "count": 41,
            "length": 9
        },
        {
            "pattern": "726520 (re )",
            "count": 39,
            "length": 3
        },
        {
            "pattern": "65206F (e o)",
            "count": 39,
            "length": 3
        },
        {
            "pattern": "2E0D0A2020616E6420 (.\r\n  and )",
            "count": 38,
            "length": 9
        },
        {
            "pattern": "6E7374656C6C617469 (nstellati)",
            "count": 38,
            "length": 9
        },
        {
            "pattern": "6C757374726174696F (lustratio)",
            "count": 37,
            "length": 9
        },
        {
            "pattern": "5B496C6C7573747261 ([Illustra)",
            "count": 37,
            "length": 9
        },
        {
            "pattern": "5F46 (_F)",
            "count": 37,
            "length": 2
        },
        {
            "pattern": "497361696168202020 (Isaiah   )",
            "count": 37,
            "length": 9
        },
        {
            "pattern": "6F66 (of)",
            "count": 36,
            "length": 2
        },
        {
            "pattern": "496C6C757374726174 (Illustrat)",
            "count": 36,
            "length": 9
        },
        {
            "pattern": "2E0D0A0D0A20205468 (.\r\n\r\n  Th)",
            "count": 36,
            "length": 9
        },
        {
            "pattern": "5F2C20362E0D0A2020 (_, 6.\r\n  )",
            "count": 35,
            "length": 9
        },
        {
            "pattern": "20696E2074686520 ( in the )",
            "count": 35,
            "length": 8
        },
        {
            "pattern": "20207C2020202020 (  |     )",
            "count": 34,
            "length": 8
        },
        {
            "pattern": "0D0A0D0A0D0A0D0A0D (\r\n\r\n\r\n\r\n\r)",
            "count": 34,
            "length": 9
        },
        {
            "pattern": "206F662074686520 ( of the )",
            "count": 33,
            "length": 8
        },
        {
            "pattern": "0D0A20 (\r\n )",
            "count": 27,
            "length": 3
        },
        {
            "pattern": "4672 (Fr)",
            "count": 26,
            "length": 2
        },
        {
            "pattern": "4C69 (Li)",
            "count": 26,
            "length": 2
        },
        {
            "pattern": "0A2020 (\n  )",
            "count": 25,
            "length": 3
        },
        {
            "pattern": "2020207C20202020 (   |    )",
            "count": 24,
            "length": 8
        },
        {
            "pattern": "616C20 (al )",
            "count": 23,
            "length": 3
        },
        {
            "pattern": "476C (Gl)",
            "count": 22,
            "length": 2
        },
        {
            "pattern": "0A0D (\n\r)",
            "count": 21,
            "length": 2
        },
        {
            "pattern": "6174656C6C697465 (atellite)",
            "count": 18,
            "length": 8
        },
        {
            "pattern": "207C202020202020 ( |      )",
            "count": 18,
            "length": 8
        },
        {
            "pattern": "20746F2074686520 ( to the )",
            "count": 17,
            "length": 8
        },
        {
            "pattern": "207C202020302E31 ( |   0.1)",
            "count": 17,
            "length": 8
        },
        {
            "pattern": "6F6265 (obe)",
            "count": 17,
            "length": 3
        },
        {
            "pattern": "61676E6974756465 (agnitude)",
            "count": 16,
            "length": 8
        },
        {
            "pattern": "0A0D0A (\n\r\n)",
            "count": 16,
            "length": 3
        },
        {
            "pattern": "64697374616E6365 (distance)",
            "count": 16,
            "length": 8
        },
        {
            "pattern": "74696F6E206F6620 (tion of )",
            "count": 15,
            "length": 8
        },
        {
            "pattern": "EFBFBDEFBFBD (��)",
            "count": 15,
            "length": 6
        },
        {
            "pattern": "6D61676E69747564 (magnitud)",
            "count": 15,
            "length": 8
        },
        {
            "pattern": "7468652073746172 (the star)",
            "count": 15,
            "length": 8
        },
        {
            "pattern": "6C6F62 (lob)",
            "count": 15,
            "length": 3
        },
        {
            "pattern": "2D2D2D2D2D2D2D2B (-------+)",
            "count": 15,
            "length": 8
        },
        {
            "pattern": "6572207468616E20 (er than )",
            "count": 14,
            "length": 8
        },
        {
            "pattern": "68652073616D6520 (he same )",
            "count": 14,
            "length": 8
        },
        {
            "pattern": "6D6574656F727320 (meteors )",
            "count": 14,
            "length": 8
        },
        {
            "pattern": "5F2020 (_  )",
            "count": 14,
            "length": 3
        },
        {
            "pattern": "736174656C6C6974 (satellit)",
            "count": 14,
            "length": 8
        },
        {
            "pattern": "2773206F72626974 ('s orbit)",
            "count": 13,
            "length": 8
        },
        {
            "pattern": "686520706C616E65 (he plane)",
            "count": 13,
            "length": 8
        },
        {
            "pattern": "74656C6573636F70 (telescop)",
            "count": 13,
            "length": 8
        },
        {
            "pattern": "46726F (Fro)",
            "count": 13,
            "length": 3
        },
        {
            "pattern": "5F4672 (_Fr)",
            "count": 13,
            "length": 3
        },
        {
            "pattern": "2077686963682061 ( which a)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "207468652073756E ( the sun)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "2074686520706C61 ( the pla)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "206D6F76696E6720 ( moving )",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "6F6D20 (om )",
            "count": 12,
            "length": 3
        },
        {
            "pattern": "726F6D (rom)",
            "count": 12,
            "length": 3
        },
        {
            "pattern": "7065637472756D20 (pectrum )",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "2073746172732C20 ( stars, )",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "616C74686F756768 (although)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "706C616E65742773 (planet's)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "20476C ( Gl)",
            "count": 12,
            "length": 3
        },
        {
            "pattern": "6520706C616E6574 (e planet)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "6520737461727320 (e stars )",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "207468652073616D ( the sam)",
            "count": 12,
            "length": 8
        },
        {
            "pattern": "206D617920626520 ( may be )",
            "count": 11,
            "length": 8
        },
        {
            "pattern": "697374616E636520 (istance )",
            "count": 11,
            "length": 8
        },
        {
            "pattern": "2E205F (. _)",
            "count": 11,
            "length": 3
        },
        {
            "pattern": "205F46 ( _F)",
            "count": 11,
            "length": 3
        },
        {
            "pattern": "747765656E207468 (tween th)",
            "count": 11,
            "length": 8
        }
    ]
}