<p>Actually, I think a more interesting question is how many distinct characters there are in a book that aren't considered "common". To that effect, I used the <a href="https://github.com/Haozun/Road/blob/master/small_projects/chinese-book_word-count/res_of_three-body1" rel="noreferrer">2854 results from rambler's answer for the three body problem 1</a> and the <a href="https://zh.wikisource.org/wiki/%E9%80%9A%E7%94%A8%E8%A7%84%E8%8C%83%E6%B1%89%E5%AD%97%E8%A1%A8#%E4%B8%80%E7%BA%A7%E5%AD%97%E8%A1%A8" rel="noreferrer">list of the 3500 commonly used characters</a> (一级字/常用字)  as presented in <a href="https://en.wikipedia.org/wiki/Table_of_General_Standard_Chinese_Characters" rel="noreferrer">通用规范汉字表, which was published in 2013 by the government of China</a>. Then I ran the following python script (I had to remove the data values because of space limitations here)--you can see it in action <a href="https://repl.it/repls/TightFrankDeskscan" rel="noreferrer">here</a>:</p>

<pre><code># -*- coding: utf-8 -*-
unicode_ranges = [0x3007,0x3007],[0x3400,0x4DBF],[0x4E00,0x9FEF],[0x20000,0x2EBFF]

most_common = list("") #insert stuff here!

most_common = [hanzi for hanzi in most_common if any(map(lambda x:x[0]&lt;=ord(hanzi)&lt;=x[1],unicode_ranges))]

print(len(most_common))

threebody1result =  list("") #insert stuff here!

threebody1result = [hanzi for hanzi in threebody1result if any(map(lambda x:x[0]&lt;=ord(hanzi)&lt;=x[1],unicode_ranges))]
print(len(threebody1result))

not_common_words = [hanzi for hanzi in threebody1result if not hanzi in most_common]
print(not_common_words)
print(len(not_common_words))
</code></pre>

<p>I found 191 characters in the book that weren't in the list of characters considered "most common". A number of these are just onomatopoeia and characters that appear to be used primarily for names. </p>

<blockquote>
  <p>['淼', '霖', '纣', '陛', '伽', '阮', '穹', '曦', '朕', '雯', '楠', '眸', '篝', '眩',
  '兮', '炽', '粼', '阈', '忏', '咔', '嚓', '嘟', '姬', '嗯', '噼', '羲', '沌', '袅',
  '烬', '咯', '摞', '咚', '瞥', '踹', '曳', '噬', '嗤', '礴', '骸', '哒', '皙', '呗',
  '瘠', '阱', '惚', '舷', '瘙', '呓', '萦', '湍', '漉', '柯', '瑶', '咝', '觑', '炯',
  '诣', '锢', '褶', '涟', '漪', '瓮', '骷', '髅', '冕', '悻', '铠', '啷', '呸', '汐',
  '婷', '氦', '狙', '睑', '霏', '垩', '睽', '栩', '啾', '晗', '恫', '韦', '坍', '蜿',
  '癫', '柞', '栎', '瞟', '擀', '瘴', '狍', '潦', '渥', '囔', '盥', '咣', '攥', '壕',
  '侃', '遛', '裔', '撂', '涸', '诧', '霆', '涓', '晷', '幺', '揶', '晖', '髂', '戾',
  '溏', '噢', '杳', '惺', '忪', '霓', '靓', '颚', '寐', '诏', '纂', '羟', '黝', '鬈',
  '臆', '锵', '遁', '诠', '攘', '虔', '吋', '啐', '茨', '戟', '嬴', '楔', '俑', '鞘',
  '亘', '咦', '迸', '邃', '慑', '犄', '蹒', '跚', '昕', '鄢', '搐', '瞌', '剐', '嗔',
  '恻', '皲', '碴', '炙', '橇', '阂', '飒', '仟', '锨', '黏', '蚜', '咫', '谙', '燎',
  '悸', '袒', '皈', '湮', '啬', '铰', '梵', '斓', '煦', '阙', '邸', '甄', '狩', '坞',
  '镊', '磐', '潞', '怫', '汲', '熵', '霾', '湛', '眺']</p>
</blockquote>

CC BY-SA 4.0
2019-02-19T21:05:15.513Z
2019-02-19T22:48:04.803Z
2019-02-19T22:48:04.803Z
Ringil
<p>OK, here is my test.</p>
<p><strong>Dragonlance: Dragons of Autumn Twilight</strong></p>
<p>total: 238,872 (only Chinese is counted),</p>
<p>individual: 2,882</p>
<p>I have never read this book, 2,882 is a friend number. There isn't a lot of 'magic' words in a fantasy novel.</p>
<hr />
<p><strong>Sherlock·Holmes: A Study in Scarlet</strong></p>
<p>Total:72,217</p>
<p>Individual_sum: 2,546</p>
<hr />
<p><strong>聊斋志异</strong></p>
<p>total:389,165,</p>
<p>individual:4,935</p>
<p>Classical is 2 times complicate than modern novels. (wrong)</p>
<hr />
<p><strong>射雕英雄传</strong></p>
<p>total:781,529,</p>
<p>individual:4,088</p>
<p>A wuxia novel that is full of traditional.</p>
<hr />
<p><strong>三国志</strong></p>
<p>total:443,202</p>
<p>individual:4,433</p>
<p>A classical history book.</p>
<hr />
<p><strong>The Shawshank Redemption</strong></p>
<p>total:69,530</p>
<p>individual: 2,439</p>
<hr />
<p>The big four.</p>
<p><strong>红楼梦</strong> total:730,537, individual:4,251</p>
<p><strong>水浒传</strong> total&quot;:705,811, individual: 4,074</p>
<p><strong>西游记</strong> total&quot;:604,456, individual: 4,574</p>
<p><strong>三国演义</strong> total:486,106, individual:4,025</p>
<hr />
<p>Finally, an Internet novel.</p>
<p><strong>东北往事:黑道风云二十年(一)</strong></p>
<p>total:679,231, individual:3,625,</p>

CC BY-SA 4.0
2019-02-19T16:11:30.013Z
2020-02-12T15:11:02.573Z
2020-06-17T09:50:11.587Z
sfy
<h1>Harry Potter</h1>

<p>Referring to 哈利·波特与魔法石 (the version with the first sentence "家住女贞路4号的德思礼夫妇总是得意地说他们是非常规矩的人家。". There is another version floating around.)</p>

<ul>
<li>132,016 total characters</li>
<li>2735 unique characters</li>
<li>2305 unique characters used more than once</li>
<li>87,584 total words (where a word is in CEDICT or a character name)</li>
<li>7780 unique words</li>
<li>4593 unique words used more than once</li>
</ul>

CC BY-SA 4.0
2020-02-13T06:31:46.890Z
2020-02-13T06:31:46.890Z
Ben Jackson
<p>IMO, a direct answer should be obvious: It depends!</p>

<p>我觉得嘛，与其思考一本书里会有多少互不相同的汉字，不如关注一些更实际的事情。根据<a href="https://en.wikipedia.org/wiki/Chinese_characters" rel="nofollow noreferrer">维基百科</a> (English)：</p>

<blockquote>
  <p>Studies in China have shown that functional literacy in written Chinese requires a knowledge of between three and four thousand characters.</p>
</blockquote>

<p>也就是说，如果你想要无障碍进行中文读写，需要认识 3 千到 4 千汉字。取决于你打算阅读的内容及来源<sup>1</sup>，你可能需要认识更多字。例如，一些古典名著（如《西游记》）会出现更多的现在已经不常用的字。</p>

<p>另一方面，常见的内容通常不会包含太多生僻字，所以据我自己估计，根据内容不同，一本书通常会包含 2 千到 5 千不同的字。一本《读者》杂志，每期64页，包含 1.5k 到 2k 不同汉字；而一本长篇小说（如《活着》，余华），则有 4 千以上。（Trivia: 小学一年级的语文书甚至都有 1 千以上的不同汉字）</p>

<p>如果你需要进行统计研究，我建议你获取电子版文档然后自己处理；如果你只是为了估计流畅阅读需要认识的字数，那么我觉得没必要在乎，遇到不认识的字查字典就行了。</p>

<hr>

<p>Notes:</p>

<ol>
<li>近几十年来中国大陆、Malaysia 和 Singapore 的出版物以简体中文为主，各自有一点用词等方面的偏好；而港澳台 (Hong Kong, Macau and Taiwan) 的出版物以繁体中文为主。如果你希望同时读懂这两种文字，你还需要认识更多字。</li>
</ol>

CC BY-SA 4.0
2019-02-07T12:39:09.680Z
typing Chinese is easier for me ATM. I can give this answer in English if needed.
iBug
CC BY-SA 4.0
2019-02-07T12:37:33.497Z
2019-02-07T12:37:33.497Z
iBug
<p>Counting distinct characters/words in chinese books is really easy, but what exactly does "typical" means?</p>

<p>You can solve it by python. 
Then every time you meet a "typical" book(txt,mobi,azw format etc), you can count it by yourself.</p>

<h2>input</h2>

<ul>
<li>The txt file of The Three-Body Problem I:Remembrance of Earth's Past</li>
<li>The txt file of The Three-Body Problem II:The Dark Forest</li>
<li>The txt file of The Three-Body Problem III:Death's End</li>
</ul>

<h2>program</h2>



<pre><code>import sys
import string
from collections import defaultdict
file_loc="tb3.txt"
try:
    f = open(file_loc,"r",encoding='gbk')
    allstr=f.read()
except UnicodeDecodeError:
    f = open(file_loc,"r",encoding='utf-8')
    allstr=f.read()

#dict to count chars, default to zero
d=defaultdict(int) 
for i in allstr:
    d[i]+=1

#count how many dinstinct words
#import jieba
#for i in jieba.cut(allstr):
#    d[i]+=1

# one pass filter, you can just use this filter
for c in string.printable:
    d.pop(c,0)

# select chinese characters directly
unicode_ranges = [0x3007,0x3007],[0x3400,0x4DBF],[0x4E00,0x9FEF],[0x20000,0x2EBFF]
for i,key in list(enumerate(d)):
    if not any(map(lambda x:x[0]&lt;=ord(key)&lt;=x[1],unicode_ranges)):
        del d[key]
print(len(d))

# map word_count to list of chars
d2=defaultdict(list)
for key,val in d.items():
    d2[val].append(key)

#sort by val
for key,val in sorted(d2.items(),key=lambda x:x[0],reverse=True): 
    print(key,val)

</code></pre>

<p><a href="https://stackoverflow.com/a/54739064/7721525">chinese character reference</a></p>

<h2>conclusion</h2>

<ol>
<li>three body problem 1: 2854</li>
<li>three body problem 2: 2986</li>
<li>three body problem 3: 3034</li>
</ol>

<p>(welcome to add your count results of other books here)</p>

<p>3000 characters cover 100%!,</p>

<p>You can use <code>sum(d.values())</code> to count the total #chinese-characters
in three body problem 1, you will find 2109 characters covers 99.393256% 
2370 chars(delete char that occurs only once) covers 99.7%,
In addition, </p>

<p>You said</p>

<blockquote>
  <p>there's a rough average of six characters you need to either look up or accept not knowing how to pronounce!</p>
</blockquote>

<p>That's false in the 99.4% version, you can learn a meaning of character in this way. You are likely to meet the same char again in this book if you only know 2109 characters.</p>

<p>If you are insterested in details, see all the results<a href="https://github.com/Haozun/Road/blob/master/small_projects/chinese-book_word-count/res_of_three-body1" rel="noreferrer">here</a></p>

CC BY-SA 4.0
2019-02-18T06:58:18.310Z
Thanks, this is a handy piece of code with really fun stats it can generate. And I’m delighted, the situation is much more optimistic than I had hoped!
WillG
CC BY-SA 4.0
2019-02-18T17:38:21.550Z
Very nice!  I wonder if there is any easy way to count the number of “words”?
Tom Gewecke
CC BY-SA 4.0
2019-02-18T19:50:59.543Z
@TomGewecke yes, good advice, I'll perfect it in my answer.
Voyager
CC BY-SA 4.0
2019-02-18T01:36:24.767Z
2019-02-18T19:57:18.097Z
2019-02-18T19:57:18.097Z
Voyager
<p><a href="https://chinese.stackexchange.com/questions/36/how-many-characters-do-i-need-to-learn">This</a> post gives some great statistics on Chinese character frequency, but I'm curious about the total number of distinct characters that appear in a "typical" book. By "typical" I mean something like a popular modern novel: say, "<a href="https://en.wikipedia.org/wiki/The_Three-Body_Problem_(novel)" rel="noreferrer">The Three-Body Problem</a>," or the translation of the first Harry Potter.</p>

<p>I'm guessing the number will be disturbingly high, much greater than 3000, which I think I've heard quoted as a good benchmark for reading fluently. If, as suggested in the first link, the top 3000 characters cover at most 99.4% of characters that appear in random text, that's depressingly low. It means if you know 3000 characters, then on every page (I just counted around 1000 characters/page in Harry Potter) there's a rough average of six characters you need to either look up or accept not knowing how to pronounce! </p>

CC BY-SA 4.0
2019-02-04T05:54:41.550Z
I'm voting to close this question as off-topic because it has nothing to do with Chinese studying.
Tang Ho
CC BY-SA 4.0
2019-02-04T05:59:03.170Z
I'd like to know how many characters I'd have to "study" in order to read a book comfortably without having to constantly look up characters or guess at pronunciations.
WillG
CC BY-SA 4.0
2019-02-04T06:22:12.277Z
Even if you knew every single characters in dictionary, that would be ten of thousands of them, you still can't read Chinese books without knowing compound words and Chinese grammar.  What do you expect ? If you have to learn too many characters then you quit? You study one character word at a time, you study one compound word at a time, and you study one grammar rule after another until you reach the level that you can read typical Chinese text, How does knowing this trivial fact of "How many distinct characters a typical Chinese book contains" help you?
Tang Ho
CC BY-SA 4.0
2019-02-04T17:46:36.997Z
I won’t quit if I have to learn too many characters, but it’s helpful for me to have a concrete benchmark to strive toward (# of characters in a book) so that I can measure my progress with one extra metric. If someone were training to run a long race and asked how many miles it would be, would you say “who cares, you just need to keep running one mile at a time until you improve”?
WillG
CC BY-SA 4.0
2019-02-04T18:22:53.783Z
As for compound words, those can often be learned on the fly from context. For example, if I know the words “讨厌” and “烦恼”, but not “厌烦,” it will still be fairly easy to figure out the meaning from context. Whereas if I see a new word with *characters* I don’t know, then it’s  hard to guess the meaning based on prior knowledge and also impossible to know exactly how to pronounce unless I look it up.
WillG
CC BY-SA 4.0
2019-02-04T18:40:15.027Z
Also I think it’s reasonable to say that questions about character frequency are “about the Chinese language,” which is the first criterion for on-topic questions for this site as stated here: (the page makes no mention of “studying”) https://chinese.meta.stackexchange.com/questions/237/faq-what-is-on-topic-and-off-topic-on-this-site
WillG
CC BY-SA 4.0
2019-02-05T03:56:30.100Z
Instead of speculating, it is possible to use an online version of "The three body problem" to mine the number of unique characters, which may give you a rough estimate.
dROOOze
CC BY-SA 4.0
2019-02-05T16:54:36.187Z
@WillG As a native who once roughly measured the amount of characters at my command and is confident of reading basically any modern material without the need of looking up dictionary, my answer is if you know  7000~8000 distinct characters, you will face no problem reading.(／≧ω＼)
Toosky Hierot
CC BY-SA 4.0
2019-02-05T16:57:39.450Z
@WillG And this level of knowledge is enough for reading classical materials （not too ancient）（And you need to know the meanings of characters which are rarely used now）.
Toosky Hierot
CC BY-SA 4.0
2019-02-11T14:30:32.280Z
@TooskyHierot I'm curious: how did you measure that? Did you read a dictionary and marked the characters you knew?
Enrico Brasil
CC BY-SA 4.0
2019-02-11T16:12:48.720Z
@TangHo That's why I think natives aren't fit to teach beginers. You don't have a clue of how hard the path is to us at all.
Enrico Brasil
CC BY-SA 4.0
2019-02-12T12:28:53.930Z
@EnricoBrasil emmm I did it on a website. It will show you 100 or more characters from different level and you pick those you know.(／≧ω＼)
Toosky Hierot
CC BY-SA 4.0
2019-02-12T12:32:58.690Z
@EnricoBrasil btw, there are 字帖, such as 《田英章常用7000字字帖》, I am sure I know every of the characters on it.
Toosky Hierot
CC BY-SA 4.0
2019-02-12T12:43:34.197Z
@EnricoBrasil hanzi.sjz.io Aha, i find it.
Toosky Hierot
CC BY-SA 4.0
2019-02-15T12:39:22.523Z
@TooskyHierot Interesting tool, although it counts simplified and traditional separately, making the numbers not that much trustworthy (I found 贝 and 貝 together).
Enrico Brasil
<characters><reading>
How many distinct characters are there in a typical Chinese book?
# How many distinct characters are there in a typical Chinese book?

(Asked by: username_0 on 2019-02-04)

[This](https://chinese.stackexchange.com/questions/36/how-many-characters-do-i-need-to-learn) post gives some great statistics on Chinese character frequency, but I'm curious about the total number of distinct characters that appear in a "typical" book. By "typical" I mean something like a popular modern novel: say, "[The Three-Body Problem](https://en.wikipedia.org/wiki/The_Three-Body_Problem_(novel))," or the translation of the first Harry Potter.

I'm guessing the number will be disturbingly high, much greater than 3000, which I think I've heard quoted as a good benchmark for reading fluently. If, as suggested in the first link, the top 3000 characters cover at most 99.4% of characters that appear in random text, that's depressingly low. It means if you know 3000 characters, then on every page (I just counted around 1000 characters/page in Harry Potter) there's a rough average of six characters you need to either look up or accept not knowing how to pronounce!

**Tags:** characters, reading

> **Comments:**
> **username_1**: I'm voting to close this question as off-topic because it has nothing to do with Chinese studying.  
> **username_0**: I'd like to know how many characters I'd have to "study" in order to read a book comfortably without having to constantly look up characters or guess at pronunciations.  
> **username_1**: Even if you knew every single characters in dictionary, that would be ten of thousands of them, you still can't read Chinese books without knowing compound words and Chinese grammar.  What do you expect ? If you have to learn too many characters then you quit? You study one character word at a time, you study one compound word at a time, and you study one grammar rule after another until you reach the level that you can read typical Chinese text, How does knowing this trivial fact of "How many distinct characters a typical Chinese book contains" help you?  
> **username_0**: I won’t quit if I have to learn too many characters, but it’s helpful for me to have a concrete benchmark to strive toward (# of characters in a book) so that I can measure my progress with one extra metric. If someone were training to run a long race and asked how many miles it would be, would you say “who cares, you just need to keep running one mile at a time until you improve”?  
> **username_0**: As for compound words, those can often be learned on the fly from context. For example, if I know the words “讨厌” and “烦恼”, but not “厌烦,” it will still be fairly easy to figure out the meaning from context. Whereas if I see a new word with *characters* I don’t know, then it’s  hard to guess the meaning based on prior knowledge and also impossible to know exactly how to pronounce unless I look it up.  
> **username_0**: Also I think it’s reasonable to say that questions about character frequency are “about the Chinese language,” which is the first criterion for on-topic questions for this site as stated here: (the page makes no mention of “studying”) https://chinese.meta.stackexchange.com/questions/237/faq-what-is-on-topic-and-off-topic-on-this-site  
> **username_2**: Instead of speculating, it is possible to use an online version of "The three body problem" to mine the number of unique characters, which may give you a rough estimate.  
> **username_3**: @username_0 As a native who once roughly measured the amount of characters at my command and is confident of reading basically any modern material without the need of looking up dictionary, my answer is if you know  7000~8000 distinct characters, you will face no problem reading.(／≧ω＼)  
> **username_3**: @username_0 And this level of knowledge is enough for reading classical materials （not too ancient）（And you need to know the meanings of characters which are rarely used now）.  
> **username_4**: @username_3 I'm curious: how did you measure that? Did you read a dictionary and marked the characters you knew?  
> **username_4**: @username_1 That's why I think natives aren't fit to teach beginers. You don't have a clue of how hard the path is to us at all.  
> **username_3**: @username_4 emmm I did it on a website. It will show you 100 or more characters from different level and you pick those you know.(／≧ω＼)  
> **username_3**: @username_4 btw, there are 字帖, such as 《田英章常用7000字字帖》, I am sure I know every of the characters on it.  
> **username_3**: @username_4 hanzi.sjz.io Aha, i find it.  
> **username_4**: @username_3 Interesting tool, although it counts simplified and traditional separately, making the numbers not that much trustworthy (I found 贝 and 貝 together).  

---

## 5 answers

### Answer by username_9 on 2019-02-18. Score: 8 | Accepted answer

Counting distinct characters/words in chinese books is really easy, but what exactly does "typical" means?

You can solve it by python.
Then every time you meet a "typical" book(txt,mobi,azw format etc), you can count it by yourself.

## input

* The txt file of The Three-Body Problem I:Remembrance of Earth's Past
* The txt file of The Three-Body Problem II:The Dark Forest
* The txt file of The Three-Body Problem III:Death's End

## program

```
import sys
import string
from collections import defaultdict
file_loc="tb3.txt"
try:
    f = open(file_loc,"r",encoding='gbk')
    allstr=f.read()
except UnicodeDecodeError:
    f = open(file_loc,"r",encoding='utf-8')
    allstr=f.read()

#dict to count chars, default to zero
d=defaultdict(int) 
for i in allstr:
    d[i]+=1

#count how many dinstinct words
#import jieba
#for i in jieba.cut(allstr):
#    d[i]+=1

# one pass filter, you can just use this filter
for c in string.printable:
    d.pop(c,0)

# select chinese characters directly
unicode_ranges = [0x3007,0x3007],[0x3400,0x4DBF],[0x4E00,0x9FEF],[0x20000,0x2EBFF]
for i,key in list(enumerate(d)):
    if not any(map(lambda x:x[0]<=ord(key)<=x[1],unicode_ranges)):
        del d[key]
print(len(d))

# map word_count to list of chars
d2=defaultdict(list)
for key,val in d.items():
    d2[val].append(key)

#sort by val
for key,val in sorted(d2.items(),key=lambda x:x[0],reverse=True): 
    print(key,val)

```

[chinese character reference](https://stackoverflow.com/a/54739064/7721525)

## conclusion

1. three body problem 1: 2854
2. three body problem 2: 2986
3. three body problem 3: 3034

(welcome to add your count results of other books here)

3000 characters cover 100%!,

You can use `sum(d.values())` to count the total #chinese-characters
in three body problem 1, you will find 2109 characters covers 99.393256%
2370 chars(delete char that occurs only once) covers 99.7%,
In addition,

You said

> there's a rough average of six characters you need to either look up or accept not knowing how to pronounce!

That's false in the 99.4% version, you can learn a meaning of character in this way. You are likely to meet the same char again in this book if you only know 2109 characters.

If you are insterested in details, see all the results[here](https://github.com/Haozun/Road/blob/master/small_projects/chinese-book_word-count/res_of_three-body1)

> **Comments:**
> **username_0**: Thanks, this is a handy piece of code with really fun stats it can generate. And I’m delighted, the situation is much more optimistic than I had hoped!  
> **username_10**: Very nice!  I wonder if there is any easy way to count the number of “words”?  
> **username_9**: @username_10 yes, good advice, I'll perfect it in my answer.  

---

### Answer by username_5 on 2019-02-19. Score: 8

Actually, I think a more interesting question is how many distinct characters there are in a book that aren't considered "common". To that effect, I used the [2854 results from rambler's answer for the three body problem 1](https://github.com/Haozun/Road/blob/master/small_projects/chinese-book_word-count/res_of_three-body1) and the [list of the 3500 commonly used characters](https://zh.wikisource.org/wiki/%E9%80%9A%E7%94%A8%E8%A7%84%E8%8C%83%E6%B1%89%E5%AD%97%E8%A1%A8#%E4%B8%80%E7%BA%A7%E5%AD%97%E8%A1%A8) (一级字/常用字) as presented in [通用规范汉字表, which was published in 2013 by the government of China](https://en.wikipedia.org/wiki/Table_of_General_Standard_Chinese_Characters). Then I ran the following python script (I had to remove the data values because of space limitations here)--you can see it in action [here](https://repl.it/repls/TightFrankDeskscan):

```
# -*- coding: utf-8 -*-
unicode_ranges = [0x3007,0x3007],[0x3400,0x4DBF],[0x4E00,0x9FEF],[0x20000,0x2EBFF]

most_common = list("") #insert stuff here!

most_common = [hanzi for hanzi in most_common if any(map(lambda x:x[0]<=ord(hanzi)<=x[1],unicode_ranges))]

print(len(most_common))

threebody1result =  list("") #insert stuff here!

threebody1result = [hanzi for hanzi in threebody1result if any(map(lambda x:x[0]<=ord(hanzi)<=x[1],unicode_ranges))]
print(len(threebody1result))

not_common_words = [hanzi for hanzi in threebody1result if not hanzi in most_common]
print(not_common_words)
print(len(not_common_words))

```

I found 191 characters in the book that weren't in the list of characters considered "most common". A number of these are just onomatopoeia and characters that appear to be used primarily for names.

> ['淼', '霖', '纣', '陛', '伽', '阮', '穹', '曦', '朕', '雯', '楠', '眸', '篝', '眩',
> '兮', '炽', '粼', '阈', '忏', '咔', '嚓', '嘟', '姬', '嗯', '噼', '羲', '沌', '袅',
> '烬', '咯', '摞', '咚', '瞥', '踹', '曳', '噬', '嗤', '礴', '骸', '哒', '皙', '呗',
> '瘠', '阱', '惚', '舷', '瘙', '呓', '萦', '湍', '漉', '柯', '瑶', '咝', '觑', '炯',
> '诣', '锢', '褶', '涟', '漪', '瓮', '骷', '髅', '冕', '悻', '铠', '啷', '呸', '汐',
> '婷', '氦', '狙', '睑', '霏', '垩', '睽', '栩', '啾', '晗', '恫', '韦', '坍', '蜿',
> '癫', '柞', '栎', '瞟', '擀', '瘴', '狍', '潦', '渥', '囔', '盥', '咣', '攥', '壕',
> '侃', '遛', '裔', '撂', '涸', '诧', '霆', '涓', '晷', '幺', '揶', '晖', '髂', '戾',
> '溏', '噢', '杳', '惺', '忪', '霓', '靓', '颚', '寐', '诏', '纂', '羟', '黝', '鬈',
> '臆', '锵', '遁', '诠', '攘', '虔', '吋', '啐', '茨', '戟', '嬴', '楔', '俑', '鞘',
> '亘', '咦', '迸', '邃', '慑', '犄', '蹒', '跚', '昕', '鄢', '搐', '瞌', '剐', '嗔',
> '恻', '皲', '碴', '炙', '橇', '阂', '飒', '仟', '锨', '黏', '蚜', '咫', '谙', '燎',
> '悸', '袒', '皈', '湮', '啬', '铰', '梵', '斓', '煦', '阙', '邸', '甄', '狩', '坞',
> '镊', '磐', '潞', '怫', '汲', '熵', '霾', '湛', '眺']


---

### Answer by username_6 on 2019-02-19. Score: 7

OK, here is my test.

**Dragonlance: Dragons of Autumn Twilight**

total: 238,872 (only Chinese is counted),

individual: 2,882

I have never read this book, 2,882 is a friend number. There isn't a lot of 'magic' words in a fantasy novel.

---

**Sherlock·Holmes: A Study in Scarlet**

Total:72,217

Individual\_sum: 2,546

---

**聊斋志异**

total:389,165,

individual:4,935

Classical is 2 times complicate than modern novels. (wrong)

---

**射雕英雄传**

total:781,529,

individual:4,088

A wuxia novel that is full of traditional.

---

**三国志**

total:443,202

individual:4,433

A classical history book.

---

**The Shawshank Redemption**

total:69,530

individual: 2,439

---

The big four.

**红楼梦** total:730,537, individual:4,251

**水浒传** total":705,811, individual: 4,074

**西游记** total":604,456, individual: 4,574

**三国演义** total:486,106, individual:4,025

---

Finally, an Internet novel.

**东北往事:黑道风云二十年(一)**

total:679,231, individual:3,625,


---

### Answer by username_7 on 2020-02-13. Score: 2

# Harry Potter

Referring to 哈利·波特与魔法石 (the version with the first sentence "家住女贞路4号的德思礼夫妇总是得意地说他们是非常规矩的人家。". There is another version floating around.)

* 132,016 total characters
* 2735 unique characters
* 2305 unique characters used more than once
* 87,584 total words (where a word is in CEDICT or a character name)
* 7780 unique words
* 4593 unique words used more than once


---

### Answer by username_8 on 2019-02-07. Score: 0

IMO, a direct answer should be obvious: It depends!

我觉得嘛，与其思考一本书里会有多少互不相同的汉字，不如关注一些更实际的事情。根据[维基百科](https://en.wikipedia.org/wiki/Chinese_characters) (English)：

> Studies in China have shown that functional literacy in written Chinese requires a knowledge of between three and four thousand characters.

也就是说，如果你想要无障碍进行中文读写，需要认识 3 千到 4 千汉字。取决于你打算阅读的内容及来源1，你可能需要认识更多字。例如，一些古典名著（如《西游记》）会出现更多的现在已经不常用的字。

另一方面，常见的内容通常不会包含太多生僻字，所以据我自己估计，根据内容不同，一本书通常会包含 2 千到 5 千不同的字。一本《读者》杂志，每期64页，包含 1.5k 到 2k 不同汉字；而一本长篇小说（如《活着》，余华），则有 4 千以上。（Trivia: 小学一年级的语文书甚至都有 1 千以上的不同汉字）

如果你需要进行统计研究，我建议你获取电子版文档然后自己处理；如果你只是为了估计流畅阅读需要认识的字数，那么我觉得没必要在乎，遇到不认识的字查字典就行了。

---

Notes:

1. 近几十年来中国大陆、Malaysia 和 Singapore 的出版物以简体中文为主，各自有一点用词等方面的偏好；而港澳台 (Hong Kong, Macau and Taiwan) 的出版物以繁体中文为主。如果你希望同时读懂这两种文字，你还需要认识更多字。

> **Comments:**
> **username_8**: typing Chinese is easier for me ATM. I can give this answer in English if needed.  

---

