This topic should explore the fundamental principles and strategies for building a simple AI (Artificial Intelligence) using neural networks, with an example being a categorizer for forum posts.
AI and neural networks are currently used in many areas, but mostly through the use of computer clusters and significant hardware resources. Examples include Google's image search or digital assistants like Siri or Cortana. However, with the recently available TPUs (Tensor Processing Units) or even a regular PC, it is possible to create powerful applications yourself.
Our categorizer is designed to capture text from forum posts and classify it into different categories.
Basic understanding in the field of machine learning and neural networks can be found, for example, on the YouTube channel of Siraj Raval:
https://www.youtube.com/watch?v=vOppzHpvTiQ
Our categorizer should be structured as follows:
An input module receives sensory impressions; in this case, text, which is mapped to a sequence of multi-dimensional vectors (feature vectors) that represent the meaning of the text. The advantage of this approach is that, regardless of the type of sensory impression – whether it's an image, text, or audio – the same or very similar feature vector is generated.
An image of an "ice cream cone" therefore generates a description vector that is very close to the description vector of an image of an "ice cream scoop in a waffle cone."
Similarly, the word sequence "Eis am Stil" should lead to a very similar or identical description vector.
Therefore, the word "ice" must be understood within its context, otherwise it could refer to ice in the Arctic or ice on a shovel handle, which would have a completely different descriptive meaning.
How do we obtain such a descriptive vector, starting from the input of a sequence of words? We must consider not only the preceding and following nearby word inputs, but also punctuation marks (!?,.,; etc.). This is the situation.
A sequence of words and punctuation marks must therefore be related to preceding and subsequent words. Even minor spelling errors should be possible without resulting in completely different descriptive vectors.
That is to say, even small differences in the words can only produce small differences in the resulting description vectors.
It is also important to consider the language of the words; therefore, each word group should include the respective language as one of its vector dimensions. We can preserve the language by analyzing the order and frequency of letters within a text.
The output of this text input module is a sequence of descriptive vectors that correspond to the word input and describe its meaning.
It will continue as desired, at one's leisure, and according to the available time. Suggestions, comments, and questions are welcome.