5.4.2 Delta Encoding
All of the coding techniques we will consider in this chapter assume that small
numbers are more likely to occur than large ones. This is an excellent assumption for word count data; many words appear just once in a document, and some
appear two or three times. Only a small number of words appear more than 10
times. Therefore, it makes sense to encode small numbers with small codes and
large numbers with large codes.
However, document numbers do not share this property. We expect that a
typical inverted list will contain some small document numbers and some very
large document numbers. It is true that some documents contain more words,
and therefore will appear more times in the inverted lists, but otherwise there is
not a lot of entropy in the distribution of document numbers in inverted lists.
The situation is different if we consider the differences between document
numbers instead of the document numbers themselves. Remember that inverted
list postings are typically ordered by document number. An inverted list without
counts, for example, is just a list of document numbers, like these:
1, 5, 9, 18, 23, 24, 30, 44, 45, 48
Since these document numbers are ordered, we know that each document number
in the sequence is more than the one before it and less than the one after it. This
fact allows us to encode the list of numbers by the differences between adjacent
document numbers:
1, 4, 4, 9, 5, 1, 6, 14, 1, 3
This encoded list starts with 1, indicating that 1 is the first document number. The
next entry is 4, indicating that the second document number is 4 more than the
first: 1 + 4 = 5. The third number, 4, indicates that the third document number
is 4 more than the second: 5 + 4 = 9.
This process is called delta encoding, and the differences are often called d-gaps.
Notice that delta encoding does not define the bit patterns that are used to store
the data, and so it does not save any space on its own. However, delta encoding is
particularly successful at changing an ordered list of numbers into a list of small
numbers. Since we are about to discuss methods for compressing lists of small
numbers, this is a useful property.
Before we move on, consider the inverted lists for the words “entropy” and
“who.” The word “who” is very common, so we expect that most documents will
contain it. When we use delta encoding on the inverted list for “who,” we would
expect to see many small d-gaps, such as:
1, 1, 2, 1, 5, 1, 4, 1, 1, 3, ...
By contrast, the word “entropy” rarely appears in text, so only a few documents
will contain it. Therefore, we would expect to see larger d-gaps, such as:
109, 3766, 453, 1867, 992, ...
However, since “entropy” is a rare word, this list of large numbers will not be very
long. In general, we will find that inverted lists for frequent terms compress very
well, whereas infrequent terms compress less well.
5.4.2 เดลต้าการเข้ารหัสเทคนิคการเขียนโปรแกรมเราจะพิจารณาในบทนี้ทั้งหมดสมมติว่าขนาดเล็กตัวเลขน่าจะเกิดมากกว่าคนใหญ่ขึ้น นี่คือข้อสมมติฐานที่ยอดเยี่ยมสำหรับข้อมูลจำนวน word คำหลาย ๆ คำปรากฏเพียงครั้งเดียว ในเอกสาร และบางปรากฏ สอง หรือสามครั้ง เพียงจำนวนน้อยของคำปรากฏ มากกว่า 10ครั้ง ดังนั้น มันทำให้รู้สึกการเข้ารหัสตัวเลขขนาดเล็กรหัสขนาดเล็ก และจำนวนมาก มีรหัสขนาดใหญ่อย่างไรก็ตาม หมายเลขเอกสารไม่แบ่งปันนี้ เราคาดหวังว่าการรายการทั่วไปคว่ำจะประกอบด้วยบางหมายเลขเอกสารขนาดเล็กและบางมากหมายเลขเอกสารขนาดใหญ่ มันเป็นความจริงว่า เอกสารบางอย่างประกอบด้วยคำศัพท์และดังนั้น จะปรากฏหลายครั้งในรายการคว่ำ แต่อย่างอื่น มีไม่มากของ entropy ในการกระจายของหมายเลขเอกสารในรายการคว่ำสถานการณ์แตกต่างถ้าเราพิจารณาความแตกต่างระหว่างเอกสารหมายเลขแทนเอกสารหมายเลขตัวเอง จำไว้ว่า คว่ำหมายเลขเอกสารมักจะสั่งการลงรายการบัญชีรายการ รายชื่อกลับไม่มีจำนวนนับ เช่น เป็นเพียงรายการของหมายเลขเอกสาร เช่นนี้:1, 5, 9, 18, 23, 24, 30, 44, 45, 48เนื่องจากหมายเลขเอกสารเหล่านี้มีสั่ง เรารู้ว่าแต่ละหมายเลขเอกสารในลำดับมากกว่าหนึ่งก่อนที่จะและน้อยกว่าหนึ่งหลัง นี้ข้อเท็จจริงให้เราได้เข้ารหัสรายการของหมายเลข โดยความแตกต่างระหว่างที่อยู่ติดกันหมายเลขเอกสาร:1, 4, 4, 9, 5, 1, 6, 14, 1, 3รายการเข้ารหัสเริ่มต้น ด้วย 1 แสดงว่า 1 เป็นหมายเลขแรกของเอกสาร การรายการถัดไปคือ 4 แสดงว่า หมายเลขเอกสารสองอยู่ 4 มากกว่าการครั้งแรก: 1 + 4 = 5 ที่สามหมายเลข 4 บ่งชี้ว่า หมายเลขเอกสารสาม4 มากกว่าที่สอง: 5 + 4 = 9กระบวนการนี้เรียกว่าเดลต้าเข้ารหัส และความแตกต่างมักจะเรียกว่าช่อง dสังเกตว่า การเข้ารหัสของเดลต้าไม่ได้กำหนดรูปแบบบิตที่ใช้ในการเก็บข้อมูล และดัง นั้นจึงประหยัดพื้นที่ใด ๆ ในตัวเองไม่ เดลต้าเข้ารหัสอย่างไรก็ประสบความสำเร็จในการเปลี่ยนแปลงเป็นรายการลำดับเลขในรายการขนาดเล็กโดยเฉพาะอย่างยิ่งหมายเลข เนื่องจากเราจะหารือเกี่ยวกับวิธีการสำหรับการบีบอัดรายการของขนาดเล็กหมายเลข นี้เป็นคุณสมบัติที่เป็นประโยชน์ก่อนเราย้ายที่ พิจารณากลับรายการสำหรับคำว่า "entropy" และ"ใคร" คำว่า "ใครเป็นเรื่องธรรมดามาก ดังนั้นเราคาดหวังว่า เอกสารส่วนใหญ่จะ"ประกอบด้วยมัน เมื่อเราใช้การเข้ารหัสในรายการคว่ำ "ที่" เดลต้า เราจะอยากดูมากมาย d-ช่องว่างขนาดเล็ก เช่น:1, 1, 2, 1, 5, 1, 4, 1, 1, 3, ...โดยคมชัด "entropy" ไม่ค่อยปรากฏในข้อความ เอกสารไม่กี่ที่เท่านั้นจะประกอบด้วยมัน ดังนั้น เราคาดหวังว่าจะดูช่อง d ขนาดใหญ่ เช่น:109, 3766, 453, 1867, 992, ...อย่างไรก็ตาม ตั้งแต่ "entropy" เป็นคำที่หายาก รายการจำนวนมากจะไม่มากยาว ทั่วไป เราจะพบว่า รายการคว่ำสำหรับเงื่อนไขบ่อยบีบอัดมากดี ในขณะที่เงื่อนไขไม่บ่อยนักที่บีบอัดอย่างน้อย
การแปล กรุณารอสักครู่..
5.4.2 เดลต้าเข้ารหัส
ทั้งหมดของเทคนิคการเข้ารหัสที่เราจะพิจารณาในบทนี้สมมติว่าขนาดเล็ก
ตัวเลขมีแนวโน้มที่จะเกิดขึ้นกว่าคนที่มีขนาดใหญ่ นี้เป็นสมมติฐานที่ดีเยี่ยมสำหรับข้อมูลการนับจำนวนคำ; หลายคำปรากฏเพียงครั้งเดียวในเอกสารและบางส่วน
ปรากฏสองหรือสามครั้ง มีเพียงจำนวนน้อยของคำปรากฏมากกว่า 10
ครั้ง ดังนั้นจึงทำให้ความรู้สึกในการเข้ารหัสหมายเลขขนาดเล็กที่มีขนาดเล็กและรหัส
ตัวเลขขนาดใหญ่ที่มีขนาดใหญ่รหัส.
แต่เลขที่เอกสารไม่ได้ใช้คุณสมบัตินี้ เราคาดว่า
รายชื่อคว่ำโดยทั่วไปจะมีเลขที่เอกสารบางอย่างมีขนาดเล็กและบางมาก
เลขที่เอกสารขนาดใหญ่ มันเป็นความจริงว่าเอกสารบางส่วนมีคำมากขึ้น
และดังนั้นจึงจะปรากฏขึ้นอีกครั้งในรายการคว่ำ แต่อย่างอื่นมี
ไม่มากของเอนโทรปีในการกระจายของเลขที่เอกสารในรายการคว่ำ.
สถานการณ์ที่แตกต่างกันถ้าเราพิจารณาความแตกต่างระหว่าง เอกสาร
ตัวเลขแทนเลขที่เอกสารของตัวเอง โปรดจำไว้ว่ากลับ
โพสต์รายชื่อจะได้รับคำสั่งจากจำนวนเอกสารโดยทั่วไป รายการคว่ำโดยไม่
นับเช่นเป็นเพียงรายการของหมายเลขเอกสารเช่นนี้:
1, 5, 9, 18, 23, 24, 30, 44, 45, 48
ตั้งแต่เลขที่เอกสารเหล่านี้จะมีคำสั่งให้เรารู้ว่าแต่ละ หมายเลขเอกสาร
ในลำดับมากกว่าหนึ่งก่อนที่มันจะน้อยกว่าหนึ่งหลังจากนั้น นี้
เป็นจริงช่วยให้เราสามารถเข้ารหัสรายการของตัวเลขจากความแตกต่างระหว่างที่อยู่ติดกัน
เลขที่เอกสาร:
1, 4, 4, 9, 5, 1, 6, 14, 1, 3
รายการนี้เข้ารหัสเริ่มต้นด้วย 1 แสดงให้เห็นว่า 1 เป็นครั้งแรก หมายเลขเอกสาร.
รายการต่อไปคือ 4 แสดงให้เห็นว่าจำนวนเอกสารที่สองคือ 4 มากขึ้นกว่า
ครั้งแรก: 1 + 4 = 5 จำนวนสาม, 4, แสดงให้เห็นว่าจำนวนเอกสารที่สาม
คือ 4 มากกว่าที่สอง: 5 + 4 = 9
กระบวนการนี้เรียกว่าการเข้ารหัสของเดลต้าและความแตกต่างมักจะเรียกว่า D-ช่องว่าง.
ขอให้สังเกตว่าการเข้ารหัสเดลต้าไม่ได้กำหนดรูปแบบบิตที่ใช้ในการจัดเก็บ
ข้อมูลและดังนั้นจึงไม่ประหยัดพื้นที่ใด ๆ ในตัวของมันเอง อย่างไรก็ตามการเข้ารหัสเดลต้าเป็น
ที่ประสบความสำเร็จโดยเฉพาะอย่างยิ่งในการเปลี่ยนแปลงรายการสั่งซื้อของตัวเลขลงในรายการของขนาดเล็ก
ตัวเลข เนื่องจากเรากำลังจะพูดคุยเกี่ยวกับวิธีการสำหรับการบีบอัดรายการขนาดเล็ก
จำนวนนี้เป็นคุณสมบัติที่มีประโยชน์.
ก่อนที่เราจะย้ายไปพิจารณารายการคว่ำสำหรับคำว่า "เอนโทรปี" และ
"ใคร." คำว่า "ใคร" เป็นเรื่องธรรมดามากดังนั้น เราคาดหวังว่าเอกสารส่วนใหญ่จะ
มีมัน เมื่อเราใช้การเข้ารหัสเดลต้าในรายการคว่ำสำหรับ "ใคร" ที่เราจะ
คาดหวังที่จะเห็นหลายขนาดเล็ก D-ช่องว่างเช่น:
1, 1, 2, 1, 5, 1, 4, 1, 1, 3, .. .
โดยคมชัดคำว่า "เอนโทรปี" ไม่ค่อยปรากฏในข้อความเท่านั้นดังนั้นเอกสารไม่กี่
จะมีมัน ดังนั้นเราคาดว่าจะเห็นขนาดใหญ่ D-ช่องว่างเช่น
109, 3766, 453, 1867, 992, ...
อย่างไรก็ตามตั้งแต่ "เอนโทรปี" เป็นคำที่หายากรายการของตัวเลขขนาดใหญ่นี้จะไม่มาก
ยาว โดยทั่วไปเราจะพบว่ารายการคว่ำสำหรับคำที่ใช้บ่อยในการบีบอัดมาก
ดีขณะแง่ไม่บ่อยนักในการบีบอัดน้อยดี
การแปล กรุณารอสักครู่..
5.4.2 เดลต้าโดยทั้งหมดของเทคนิคการเข้ารหัสเราจะพิจารณาในบทนี้ถือว่า ขนาดเล็กที่ตัวเลขมีแนวโน้มที่จะเกิดขึ้นมากกว่าขนาดใหญ่ นี้เป็นสมมติฐานที่ดีสำหรับข้อมูลคํานับ ; หลายคำปรากฏเพียงครั้งเดียวในเอกสาร และบางปรากฏสองหรือสามครั้ง เพียงจำนวนน้อยของคำที่ปรากฏมากกว่า 10ครั้ง ดังนั้นมันทำให้รู้สึกเพื่อเข้ารหัสตัวเลขขนาดเล็กกับรหัสเล็กรหัสตัวเลขขนาดใหญ่ที่มีขนาดใหญ่อย่างไรก็ตาม ตัวเลข เอกสาร ไม่ใช้คุณสมบัตินี้ เราคาดว่าโดยทั่วไปจะประกอบด้วยตัวเลขบางตัวรายการเอกสารขนาดเล็กและบางมากหมายเลขเอกสารขนาดใหญ่ มันเป็นความจริงว่ามีเอกสารประกอบด้วยถ้อยคำเพิ่มเติมและดังนั้นจึงจะปรากฏเพิ่มมากขึ้นในแบบรายการ แต่อย่างอื่นมีไม่มากของเอนโทรปีในการกระจายของตัวเลขในเอกสารแบบรายการสถานการณ์ที่แตกต่างกัน ถ้าเราพิจารณาความแตกต่างระหว่างเอกสารตัวเลขแทนเอกสารตัวเลขเอง จำได้ว่ากลับหัวรายการประกาศโดยทั่วไปจะสั่งตามหมายเลขเอกสาร กลับรายการไม่มีนับ ตัวอย่าง เป็นเพียงรายการของหมายเลขเอกสาร ดังนี้ :1 , 5 , 9 , 18 , 23 , 24 , 30 , 44 , 45 , 48ตั้งแต่หมายเลขเอกสารเหล่านี้ให้เราทราบว่าเอกสารแต่ละหมายเลขในลำดับมากกว่าหนึ่งก่อนที่มันจะน้อยกว่าหนึ่งหลัง นี้ความเป็นจริงจะช่วยให้เราสามารถเข้ารหัสรายการของตัวเลขโดยความแตกต่างระหว่างที่อยู่ติดกันหมายเลขเอกสาร :1 , 2 , 4 , 9 , 5 , 1 , 6 , 14 , 1 , 3สร้างรายการเริ่มต้นด้วย 1 ที่ระบุว่า 1 เป็นเลขที่เอกสารก่อน ที่รายการต่อไปคือ 4 , ระบุว่าเลขที่เอกสารที่สองคือ 4 มากกว่าครั้งแรก : 1 + 4 = 5 หมายเลข 3 , 4 พบว่าเลขที่เอกสารที่สาม4 มากกว่าสอง : 5 + 4 = 9กระบวนการนี้เรียกว่า เดลต้า การเข้ารหัส และความแตกต่างที่มักจะเรียกว่า d-gaps .สังเกตเห็นว่า เดลต้าไม่กำหนดรูปแบบการเข้ารหัสบิต ที่ใช้เก็บข้อมูล และดังนั้น มันไม่ได้ประหยัดพื้นที่บนของตัวเอง อย่างไรก็ตาม เดลต้า การเข้ารหัสเป็นโดยเฉพาะอย่างยิ่งความสําเร็จในการสั่งรายการของตัวเลขในรายการเล็ก ๆตัวเลข เนื่องจากเรากำลังจะหารือเกี่ยวกับวิธีการบีบอัดรายการเล็ก ๆตัวเลขนี้เป็นคุณสมบัติที่มีประโยชน์ก่อนที่เราจะย้ายให้พิจารณากลับรายการสำหรับคำว่า " เอนโทรปี " และ" ใคร " คำว่า " ใคร " ที่เป็นกันมาก ดังนั้น เราคาดว่า เอกสารส่วนใหญ่จะประกอบด้วย เมื่อเราใช้เดลต้าการเข้ารหัสบนกลับรายการสำหรับ " ใคร " เราจะคาดว่าจะเห็น d-gaps ขนาดเล็กมากเช่น :1 , 1 , 2 , 1 , 1 , 1 , 1 , 1 , 2 , 3 , . . .ในทางตรงกันข้าม คำว่า " เอนโทรปี " ไม่ค่อยปรากฏในเอกสารข้อความ ดังนั้นเพียงไม่กี่จะประกอบด้วย ดังนั้น เราคาดหวังที่จะเห็น d-gaps ขนาดใหญ่ เช่น :109 , 3766 453 1867 , 992 , , , . . .อย่างไรก็ตาม เนื่องจาก " เอนโทรปี " เป็นคำที่หายาก รายการนี้จำนวนมากจะไม่ได้รับมากยาว โดยทั่วไป เราจะพบว่า กลับรายการสำหรับเงื่อนไขบีบบ่อยมากดีในขณะที่แง่ infrequent บีบอัดน้อยดี
การแปล กรุณารอสักครู่..