harmanlama - Collation

Harmanlama , yazılı bilgilerin standart bir düzende birleştirilmesidir. Birçok harmanlama sistemi, sayısal sıraya veya alfabetik sıraya veya bunların uzantılarına ve kombinasyonlarına dayanır . Harmanlama, çoğu ofis dosyalama sisteminin , kütüphane kataloglarının ve referans kitaplarının temel bir unsurudur .

Harmanlama , sınıfların kendilerinin zorunlu olarak sıralanmadıkları için sınıflandırmadan farklıdır . Bununla birlikte, sınıfların sırası alakasız olsa bile, sınıfların tanımlayıcıları sıralı bir kümenin üyeleri olabilir ve bir sıralama algoritmasının öğeleri sınıfa göre düzenlemesine izin verir .

Biçimsel olarak konuşursak, bir harmanlama yöntemi tipik olarak, sıralama anahtarları adı verilen bir dizi olası tanımlayıcı üzerinde toplam bir sıra tanımlar ve bu da sonuç olarak bilgi öğeleri kümesinde bir toplam ön sipariş oluşturur (aynı tanımlayıcıya sahip öğeler herhangi bir tanımlanmış sıraya yerleştirilmez).

Unicode harmanlama algoritması gibi bir harmanlama algoritması , verilen iki karakter dizisini karşılaştırma ve hangisinin diğerinden önce gelmesi gerektiğine karar verme süreci aracılığıyla bir sıra tanımlar . Bir sipariş bu şekilde tanımlandığında, herhangi bir sayıda öğenin bir listesini bu sıraya koymak için bir sıralama algoritması kullanılabilir.

Harmanlamanın ana avantajı, kullanıcının listede bir öğeyi bulmasını veya listede bulunmadığını doğrulamasını hızlı ve kolay hale getirmesidir. Otomatik sistemlerde bu, ikili arama algoritması veya enterpolasyon araması kullanılarak yapılabilir ; manuel arama, kabaca benzer bir prosedür kullanılarak gerçekleştirilebilir, ancak bu genellikle bilinçsizce yapılır. Diğer avantajlar, listedeki ilk veya son öğelerin (sayısal olarak sıralanmış veriler durumunda yararlı olması muhtemeldir) veya belirli bir aralıktaki öğelerin (sayısal veriler söz konusu olduğunda tekrar yararlıdır) kolayca bulunabilmesidir. Aranan öğe veya öğelerin yalnızca ilk birkaç harfinden emin olunduğunda alfabetik olarak sıralanmış veriler).

sipariş

Sayısal ve kronolojik

Sayıları temsil eden diziler, temsil ettikleri sayıların değerlerine göre sıralanabilir. Örneğin, "−4", "2,5", "10", "89", "30.000". Farklı diziler aynı sayıyı temsil edebildiğinden ("2" ve "2.0" ile veya bilimsel gösterim kullanıldığında "2e3" ve "2000" gibi) bu yöntemin salt uygulamasının diziler üzerinde yalnızca kısmi bir sıralama sağlayabileceğini unutmayın. ).

Benzer bir yaklaşım, kronolojik olarak veya başka bir doğal şekilde sıralanabilen tarihleri veya diğer öğeleri temsil eden dizeler için de kullanılabilir.

Alfabetik

Alfabetik sıra , bilgi öğelerinin esas olarak bir alfabedeki harflerden oluşan dizelerle tanımlandığı birçok harmanlama sisteminin temelidir . Dizelerin sıralaması, söz konusu alfabenin harfleri için standart bir sıralamanın varlığına bağlıdır. (Sistem katı teknik anlamda alfabelerle sınırlı değildir; hece veya abugida kullanan diller , örneğin Cherokee , kullanılan semboller için bir dizi sıralama olması koşuluyla aynı sıralama ilkesini kullanabilir.)

Alfabetik sıraya göre iki diziden hangisinin önce geldiğine karar vermek için öncelikle ilk harfleri karşılaştırılır. Alfabede ilk harfi daha önce görünen dize alfabetik sıraya göre önce gelir. İlk harfler aynıysa, ikinci harfler karşılaştırılır ve sıralamaya karar verilene kadar bu böyle devam eder. (Bir dizgede karşılaştırılacak harfler biterse, önce geldiği kabul edilir; örneğin, "araba", "carthorse"dan önce gelir.) harfler birlikte gruplanır ve böyle bir grup içinde aynı ilk iki harfe sahip kelimeler birlikte gruplanır, vb.

Büyük harfler tipik olarak karşılık gelen küçük harflere eşdeğer olarak kabul edilir. (Bilgisayarlı sistemlerde alternatif tedaviler için aşağıdaki Otomatik harmanlama bölümüne bakın.)

Alfabetik sıra kullanıldığında belirli sınırlamalar, komplikasyonlar ve özel kurallar geçerli olabilir:

  • Dizeler boşluklar veya başka sözcük bölücüler içerdiğinde , bu bölücülerin göz ardı edilip edilmeyeceğine veya alfabenin diğer tüm harflerinden önce gelen semboller olarak ele alınıp alınmayacağına karar verilmelidir. Örneğin, ilk yaklaşımda “karbon” ve “sazan”dan sonra “otopark” gelirken (“otopark” yazıldığında olduğu gibi), ikinci yaklaşımda “otopark” bunlardan önce gelir. iki kelime. İlk kural birçok (ancak hepsinde değil) sözlüklerde kullanılır , ikincisi telefon rehberlerinde (böylece Wilson, Jim K, Wilson, Jimbo adlı diğer kişilerle birlikte görünür ve Wilson, Jimbo'dan sonra olmaz).
  • Kısaltmalar tam olarak yazılmış gibi değerlendirilebilir. Örneğin, "St." içeren adlar. (İngilizce Aziz kelimesinin kısaltması ) genellikle "Aziz" olarak yazılmış gibi sıralanır. Ayrıca İngilizce'de Mc ve M' ile başlayan soyadlarının sanki bu önekler Mac yazılmış gibi listelendiği geleneksel bir kural vardır .
  • Kişisel adları temsil eden dizeler, verilen ad önce gelse bile, genellikle soyadının alfabetik sırasına göre listelenir . Örneğin, Juan Hernandes ve Brian O'Leary, bu şekilde yazılmasalar bile "Hernandes, Juan" ve "O'Leary, Brian" olarak sıralanmalıdır.
  • İngilizcedeki The gibi çok yaygın başlangıç ​​sözcükleri, sıralama amacıyla genellikle göz ardı edilir. Yani The Shining sadece "Shining" veya "Shining, The" olarak sıralanacaktı.
  • Dizelerin bazıları sayılar (veya diğer harf olmayan karakterler) içerdiğinde , çeşitli yaklaşımlar mümkündür. Bazen bu tür karakterlere alfabenin tüm harflerinden önce veya sonra gelmiş gibi davranılır. Başka bir yöntem de sayıların yazıldığı gibi alfabetik olarak sıralanmasıdır: örneğin 1776 , "on yedi yetmiş altı" yazılmış gibi ve 24 heures du Mans "vingt-quatre..." (Fransızca) yazılmış gibi sıralanır. "yirmi dört" için). Rakamları veya diğer semboller gibi harflerin özel grafiksel formlar olarak kullanıldığında 1337 için leet veya Se7en film başlığı için Yedi onlar o mektuplar sanki bunlar sıralanabilir.
  • Dillerin, değiştirilmiş harfleri ve belirli harf kombinasyonlarını işlemek için farklı kuralları vardır . Örneğin, İspanyolca yazmak ñ aşağıdaki temel bir harf olarak kabul edilir , n ve digraphs ch ve II , aşağıdaki temel harfleri muamelesi (1994 kadar) eskiden c ve l şimdi iki harfli kombinasyonları gibi alfabetik rağmen,. Çeşitli diller için bu tür kuralların bir listesi Alfabetik sıra § Dile özgü kurallar bölümünde bulunabilir .

Birçok dilde kurallar zamanla değişti ve bu nedenle eski sözlükler modern sözlüklerden farklı bir düzen kullanabilir. Ayrıca, harmanlama kullanıma bağlı olabilir. Örneğin, Almanca sözlükler ve telefon rehberleri farklı yaklaşımlar kullanır.

Radikal ve vuruşlu sıralama

Ayrıca bkz . Çince karakterlerin indekslenmesi

Harmanlama başka şeklidir radikal-ve-inme sıralama gibi alfabetik olmayan yazı sistemleri için kullanılan, hanzi ait Çince ve kanji ait Japonca olan binlerce sembollerin Kongre tarafından sipariş meydan okur. Bu sistemde karakterlerin ortak bileşenleri belirlenir; bunlara Çince'de radikaller ve Çince'den türetilen logografik sistemler denir . Karakterler daha sonra birincil radikallerine göre gruplandırılır, ardından radikaller içindeki kalem vuruşlarının sayısına göre sıralanır. Belirgin bir radikal veya birden fazla radikal olmadığında, harmanlama için kullanılan kongre yönetir. Örneğin, Çince karakter 妈 ("anne" anlamına gelir), üç zamanlı birincil radikal 女 altında altı çizgili bir karakter olarak sıralanır.

Radikal ve vuruş sistemi, tümü açık olan birkaç karakterin bulunduğu alfabetik bir sisteme kıyasla hantaldır. Bir logografın hangi bileşenlerinin ayrı radikalleri içerdiği ve hangi radikalin birincil olduğu seçimi net değildir. Sonuç olarak, logografik diller genellikle logografların fonetik dönüşümünün alfabetik sıralamasıyla radikal ve vuruşlu sıralamayı destekler. Örneğin, kanji kelimesi Tōkyō (東京) hiragana hecesindeki Japonca karakterlerde "to-u-ki- yo -u" (とうきょう) olarak yazılmış gibi sıralanabilir. karakterler.

Buna ek olarak, Büyük Çin'de soyadı vuruş sıralaması , bazı resmi belgelerde kişilerin adlarının hiyerarşi olmadan listelendiği bir kuraldır.

Radikal-ve-vuruş sistemi veya benzer bir model eşleştirme ve vuruş sayma yöntemi, birinin telaffuzu bilinmeyen bir logografı aramak için kullanabileceği sözlükler oluşturmak için geleneksel olarak tek pratik yöntemdi. Bilgisayarların ortaya çıkmasıyla birlikte, bir fare veya ekran kalemi kullanarak bir karakterin elle yazılmasına izin veren sözlük programları artık mevcuttur.

Otomasyon

Bilgi dijital sistemlerde depolandığında, harmanlama otomatik bir süreç haline gelebilir. Daha sonra, söz konusu uygulama için bilgilerin tatmin edici bir şekilde sıralanmasını sağlayan uygun bir harmanlama algoritmasının uygulanması gereklidir . Genellikle amaç, önceki bölümlerde açıklanan standart kriterleri izleyen alfabetik veya sayısal bir sıralama elde etmek olacaktır. Ancak, bu kriterlerin tümünün otomatikleştirilmesi kolay değildir.

Otomatik harmanlama basit tür bir simgelerin sayısal kodların dayanan karakter kümesi gibi, ASCII kodlama (ya da herhangi bir Süpersetler gibi Unicode semboller ile) bunların kodları sayısal artan sırada sıralı ve bu da sıralama, alfabetik sıralamanın temel ilkelerine göre dizgelere genişletilir (matematiksel olarak, sözlüksel sıralama ). Bir bilgisayar programı karakterleri tedavi olabilir Yani bir , b , C , d ve $ sipariş edilmiş olarak $ , C , bir , b , d (gelen ASCII kodları $ = 36, bir = 97, b = 98, C = 67 ve d = 100). Bu nedenle, C , M veya Z ile başlayan dizeler, a , b vb. küçük harfli dizelerden önce sıralanır . Buna bazen ASCIIbetical order denir . Bu, özellikle büyük harflerin tüm küçük harflerden önce sıralanmasından (ve muhtemelen boşlukların ve diğer harf olmayan karakterlerin işlenmesinden) dolayı standart alfabetik düzenden farklıdır. Bu nedenle, genellikle belirli değişikliklerle uygulanır, en belirgin olanı ASCII değerlerinin karşılaştırılmasından önce büyük/küçük harfe dönüştürmedir (tarihsel nedenlerle genellikle büyük harfe).

Birçok harmanlama algoritmasında, karşılaştırma, karakterlerin sayısal kodlarına değil, harmanlama dizisine (karakterlerin harmanlama amacıyla geldiği varsayılan bir dizi) ve ayrıca uygun diğer sıralama kurallarına göre yapılır. verilen uygulama. Bu, yukarıda Alfabetik sıra altında ve ayrıntılı olarak Alfabetik Sırada belirtildiği gibi farklı büyük harfli harfler, değiştirilmiş harfler , digraflar , belirli kısaltmalar vb. ile düzgün bir şekilde ilgilenerek söz konusu dilde alfabetik sıralama için kullanılan doğru kuralların uygulanmasına hizmet edebilir. sipariş makalesi. Bu tür algoritmalar potansiyel olarak oldukça karmaşıktır ve muhtemelen metinden birkaç geçiş gerektirir.

Algoritmanın birden fazla dili kapsaması gerektiğinde sorunlar yine de yaygındır. Örneğin, Alman sözlükler kelime ökonomisch arasındaki gelir offenbar ve olfaktorisch ederken, Türk sözlükleri tedavi o ve ö yerleştirerek farklı harfler gibi game önce obur .

Herhangi bir standart Unicode sembolünden oluşan herhangi bir dizi koleksiyonunu harmanlamak için standart bir algoritma , Unicode Harmanlama Algoritmasıdır . Bu, varsayılan harmanlama tablosunu uyarlayarak belirli bir dil için uygun harmanlama sırasını kullanmak üzere uyarlanabilir. Bu tür birkaç uyarlama, Common Locale Data Repository'de toplanır .

Sıralama tuşları

Bazı uygulamalarda, öğelerin harmanlandığı dizeler, görüntülenen tanımlayıcılardan farklı olabilir. Örneğin, parlayan olabilir kriteri olarak , parlayan (bkz Alfabetik sıraya aşamasından), ama yine de olarak görüntülemek için arzu edilebilir Parlayan . Bu durumda, biri görüntüleme amacıyla, diğeri harmanlama amacıyla olmak üzere iki dizi dizi saklanabilir. Bu şekilde harmanlama için kullanılan dizelere sıralama anahtarları denir .

Sayılarla ilgili sorunlar

Bazen, uygun sayısal sırayı kullanarak gömülü sayılarla metin sipariş etmek istenir. Örneğin, Unicode'da '7', '1'den sonra gelse bile, "Şekil 7b", "Şekil 11a"dan önce gelir . Bu, Romen rakamlarına kadar genişletilebilir . Sıralamayı önemli ölçüde yavaşlatabilmesine rağmen, yalnızca tamsayılar sıralanacak olduğu sürece bu davranışın üretilmesi özellikle zor değildir. Örneğin, Microsoft Windows bunu dosya adlarını sıralarken yapar .

Ondalık sayıları düzgün şekilde sıralamak biraz daha zordur, çünkü farklı yerel ayarlar ondalık nokta için farklı semboller kullanır ve bazen ondalık nokta olarak kullanılan aynı karakter ayırıcı olarak da kullanılır, örneğin "Bölüm 3.2.5". Bu tür dizilerin nasıl sıralanacağına dair evrensel bir cevap yoktur; herhangi bir kural uygulamaya bağlıdır.

Sayıların artan sırası alfabetik sırayla farklıdır, örneğin 11 alfabetik olarak 2'den önce gelir. Bu, baştaki sıfırlarla sabitlenebilir : 02, 11'den önce alfabetik olarak gelir . Bkz. örneğin ISO 8601 .

Ayrıca -13, daha az olmasına rağmen -12'den sonra alfabetik olarak gelir. Negatif sayılarla, artan düzenin alfabetik sıralamaya karşılık gelmesi için, tüm sayıları pozitif hale getirmek için tüm sayılara bir sabit eklemek gibi daha sert önlemler gerekir.

Sipariş edilen ürünlerin etiketlenmesi

Bazı bağlamlarda, sayılar ve harfler, bir sipariş oluşturmak için bir temel olarak değil, halihazırda sipariş edilmiş olan öğeleri etiketlemek için bir araç olarak kullanılır. Örneğin, sayfalar, bölümler, bölümler ve benzerleri ile liste öğeleri sıklıkla bu şekilde "numaralandırılır". Kullanılabilecek etiketleme serileri, sıradan Arap rakamları (1, 2, 3, ...), Romen rakamları (I, II, III, ... veya i, ii, iii, ...) veya harfleri (A) içerir. , B, C, ... veya a, b, c, ...). (Liste öğelerini numaralandırmadan belirtmek için alternatif bir yöntem, madde işaretli liste kullanmaktır .)

Bu numaralandırma amacıyla bir alfabenin harfleri kullanıldığında , hangi harflerin kullanılacağına ilişkin dile özgü belirli kurallar vardır. Örneğin, Rus harfler Ъ ve Ь (ki yazılı sadece önceki modifiye etmek için kullanılan ünsüz ), ve genellikle aynı zamanda Ы , Й ve Ё , atlanmıştır. Ayrıca genişletilmiş Latin alfabesi kullanan birçok dilde , değiştirilmiş harfler genellikle numaralandırmada kullanılmaz.

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar