I have often considered (and had suggestions) that it is worth reading some books only reading certain characters Point of Views. Particularly for Epic Fantasy, where there are many many characters.

Consider Wheel of Time, Which conveniently has stats on it POVs:.
If you only read the main character - Rand - you would only read about 20% of the word count, which is about 1 million words. Having read most of that series twice I would say it would be the best 1M words in the series. The plot would move on at 5x the speed. (As the number of characters increases I really find the story slows down).
Consider instead reading just the 100 or so characters with less than 10 POVs. Again you would be just reading about 20% of the book, but this time you would only be hearing rumours of what the main characters are doing. Kinda like a person in the world, hearing about the greats.

I, myself, wouldn't do this the first time, but maybe in a reread. Could be interesting.

So I am looking for a tool to manage the POVs in my ebook collection. This would be for personal use only, I wouldn't be redistributing modified books etc.

So a feature list:

  • Must support books with chapters labelled with POV
  • Should support books with unlabelled chapters written in 3rd person
  • Should support EPUB for input and output: but if it doesn't I can use Calibre to convert
  • Should support splitting on Paragraph as well as Chapter level
  • Ideally would collect stats on the POV's and allow selection like: "Only most common character."
  • Ideally would support going across multiple files, so that a whole series can be processed
  • Ideally would be a Calibre plug in.

I don't think this would be too hard to make, but before I do so myself, I thought I would check out what was available. How it could be done for books that don't have labelled chapters, a fairly solid heuristic would be taking the first dictionary word, and checking that it meets some word count requirement. More complex solutions could be made with machine learning.

Note: This question has associated meta question here. If an extended discussion of whether or not this question is on topic is needed, please use the meta question.


Calibre's EpubSplit plugin should be able to do what you need, but as far as I know you have to manually select which chapters you want to extract.


You mentioned you were thinking of programming it yourself.

Here is IPython notebook, demonstrating how that could be done.

It only meets your must have case, of splitting based on character chapters that are already annotated with character names (in a heading).

It likely would also need customizing for each book, but because of how much books vary, I suspect your going to need something this customizable anyway.


I have created machine learning based software to detect the point of view character for exactly your use case. For the more difficult case where the chapters are not annotated.

You can use it as a webapp, it is free and easy I think. http://novelperspective.ucc.asn.au

It is open source: https://github.com/oxinabox/NovelPerspective

See how to use it with the YouTube Demo

Also wrote a paper about it, which has measures of how well it works.

NovelPerspective: Identifying Point of View Characters, 2018; Lyndon White, Roberto Togneri, Wei Liu, and Mohammed Bennamoun. 56th Annual Meeting of the Association for Computational Linguistics (ACL), System Demonstrations

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.