Zipf's law 齐普夫定律
这是自然语言处理领域的一个有趣的定律,其实称为规律更合适,因为这是一个经验性的结果,是通过统计数据得出来的近似的规律。
它的定义有些绕口,就是说,在一个自然语言的语料库中,一个词的出现频数和这个词在这个语料中的排名(这个排名是基于出现次数的)成反比。
"Zipf's law states that given some corpus of natural language utterances, the frequency of any word is inversely proportional to its rank in the frequency table. "
举个例子,在Brown Corpus中,‘the’的排名是最高的,第一位,而它的出现次数是69971。排名第二位的词是‘of’,出现的次数为36411。 1/2 约等于 36411 / 69971。
再举个例子,根据M. L. Hanley(1937)中有关James Joyce Ulysses的用词数据,从中抽取了第10、20等序号的词,其序号(r)与在书中的出现次数(f)的乘积分别如下表的III栏。除了最后三个数字出入稍大一点,其他的都在26,000左右。而且,Zipf发现常数C乘以10跟该书的实际总词数260,430很接近,如IV栏所示。
I
Rank
(r)
|
II
Frequency
(f)
|
III
Product of I and II
(r × f = C)
|
IV
Theoretical Length of Ulysses
(C × 10)
|
10
|
2,653
|
26,530
|
265,300
|
20
|
1,311
|
26,220
|
262,200
|
30
|
926
|
27,780
|
277,800
|
40
|
717
|
28,680
|
286,800
|
50
|
556
|
26,500
|
278,000
|
100
|
265
|
26,500
|
265,000
|
200
|
133
|
26,600
|
266,000
|
300
|
84
|
25,200
|
252,000
|
400
|
62
|
24,800
|
248,000
|
500
|
50
|
25,000
|
250,000
|
1,000
|
26
|
26,000
|
260,000
|
2,000
|
12
|
24,000
|
240,000
|
3,000
|
8
|
24,000
|
240,000
|
4,000
|
6
|
24,000
|
240,000
|
5,000
|
5
|
25,000
|
250,000
|
10,000
|
2
|
20,000
|
200,000
|
20,000
|
1
|
20,000
|
200,000
|
29,899
|
1
|
29,899
|
298,990
|
r × f = C这个公式还说明,一个词的出现次数跟它的等级序号成反比。出现次数越多,序号越小。出现次数最多的排第一,出现次数最少的排最后。这原本没有什么特别 的:序号就是根据出现次数排的。但它们的乘积是常数这一点,却使得分别以词的序号和出现次数为轴线的双对数表(doubly logarithmic chart)呈现极大的规律性——它几乎是一条45度的直线。
尽管zipf's law是在语言学中被发现的,但是现在已经深入到了很多其它领域当中。比如,在生物学中,蛋白质序列中就可能存在着zipf's law。[3]中给出了一些zipf's law在互联网中的存在。