I am currently working on a project in which I use natural language processing to extract emotions from text in order to correlate them with contextual information.
Definition of contextual information: Each information that is relevant to the description of the essence of the situation in space time.
Description of the data structure I'm looking for:
There is an arbitrary number of entities (an entity can be either a person or a group (etc. with hash tags)), of which I want to track contextual information and their conversations with other objects. Conversations between entities are processed to classify their emotional characteristics. The main emotional features consist of a vector that indicates their percentage: {fear: 0.1, happiness: 0.4, joy: 0.1, surprise: 0.9, anger: 0} Subjects can also provide any contextual information that they would like to share, for example : location, room temperature, blood pressure, etc. (We will call this as contextual variables). Since neither the number of conversations of an entity, nor the number of context variables that they want to share, are clear at any given time, the data structure should be able to adjust accordingly.
It is important . Each change in the data should also represent its own state, as I look forward to the correlation of certain state changes with each other.
An example . Bob and Alice have a conversation that shows a high degree of fear. After a couple of hours, they have another conversation in which there is no longer fear, but happiness. It can now be argued that fear of great magnitude, accompanied by happiness, can be construed as a relief of emotions.
However, in order to be able to extract this very information, I need to be able to correlate different states with each other. The same goes for using contextual information to correlate them with tracked emotions in conversations. That is why every state change must be recorded and made available.
To make this clearer for you, I created a graphic and attached it to the question.
Now, the actual question I have is: What database / data structure can I use to solve this problem? I looked through the event databases, but was not sure if I could easily recreate the graph structure with them. I also looked at graphical databases, but did not find what I was looking for.
Therefore, it would be nice if someone here could at least point me in the right direction or help me adjust my structure to solve the problem. If, however, there are data structures supporting what I call it graphical databases with snapshots, then usability is probably the most important function for filtering.