The Witcher Network Map
Introduction
The world of "The Witcher", crafted by Andrzej Sapkowski, is an epic fantasy series that has made waves in the realms of literature, gaming, and entertainment alike. This series, with its rich narrative and complex characters, has been the foundation for several adaptations, including video games and a Netflix original series. In particular, the latest season, "The Witcher 2," has sparked a renewed interest and enthusiasm in audiences worldwide. After immersing myself in the second season of this gripping series, I was compelled to delve deeper into its intricacies, leading to the inception of this research project.
Objectives:
This research aims to provide a comprehensive exploration of "The Witcher 2," focusing primarily on the series' key characters and communities. By analyzing these elements, I seek to enhance our understanding of the series' narrative structure and its portrayal of a multifaceted universe. The objectives of this research are:
Planning:
Extract character names
This Witcher fandom had created all the Characters in the story. We will use Selenium to scrap all character names and the books.
Plot a chart of Character count for each book
We have located a valuable resource on GitHub, which includes text files of all books in the Witcher series. Our next step will involve importing these files for further processing. We plan to utilize Named Entity Recognition (NER) for identifying and classifying the named entities of all characters present within these texts.
The Witcher 2 series on Netflix is based on the plot of The Blood of Elves Novel. So we will put this book to examine the character's named entities.
Now the rendered visualization will show the identified named entities in the text as highlighted phrases, with a label indicating the type of entity (e.g., person, organization, location, etc.)
Clean the data. Remove some brackets and takes the first name of the characters
Get named entity list per sentence
Next, I will go sentence by sentence through the books and create a list of entities for those sentences
We see that ['Geralt of Rivia'] and ['Geralt'] identify as 2 different entities. It will cause a false relationship between entities. Our solution only takes the first character just to be consistent.
Create relationships
Now it is an important part. I will extract the character entities from each sentence in a window of 5 sentences, remove duplicates, and create relationships between adjacent characters. The relationships are stored in a DataFrame named relationship_df, which is displayed at the end of the code.
I sorted the character alphabetically so that the relationship between Ciri to Geralt and Geralt to Ciri is the same. Then count the relationships between them.
Graph analysis and visualization
Network visualization
Conclusion
In conclusion, throughout this research article, we have delved into the complex and captivating world of The Witcher 2 series to identify and analyze the most significant characters and communities that exist within its realm. Utilizing a combination of qualitative analysis and data visualization through Pyvis, we have determined that the most important characters in the series are Geralt, Ciri, and Yennefer.
These characters not only drive the narrative but also play critical roles in shaping the different communities in the universe. By plotting the relationships between characters, we have been able to gain a deeper understanding of the intricate connections and alliances that form the backbone of this richly detailed world. Furthermore, this analysis has provided valuable insights into the dynamics and intricacies of the various communities that populate The Witcher 2 series, highlighting the importance of these key characters in the broader narrative context.