Collation - Collation

Agrupamento é a reunião de informações escritas em um pedido padrão. Muitos sistemas de agrupamento são baseados em ordem numérica ou ordem alfabética , ou extensões e combinações das mesmas. O agrupamento é um elemento fundamental da maioria dos sistemas de arquivamento de escritório , catálogos de biblioteca e livros de referência .

O agrupamento difere da classificação porque as próprias classes não são necessariamente ordenadas. No entanto, mesmo que a ordem das classes seja irrelevante, os identificadores das classes podem ser membros de um conjunto ordenado, permitindo que um algoritmo de classificação organize os itens por classe.

Falando formalmente, um método de agrupamento normalmente define uma ordem total em um conjunto de identificadores possíveis, chamados de chaves de classificação, que consequentemente produz uma pré - ordem total no conjunto de itens de informação (itens com o mesmo identificador não são colocados em nenhuma ordem definida).

Um algoritmo de agrupamento, como o algoritmo de agrupamento Unicode, define uma ordem por meio do processo de comparação de duas cadeias de caracteres fornecidas e de decidir qual deve vir antes da outra. Quando uma ordem é definida dessa forma, um algoritmo de classificação pode ser usado para colocar uma lista de qualquer número de itens nessa ordem.

A principal vantagem do agrupamento é que torna mais rápido e fácil para o usuário localizar um elemento na lista ou confirmar que ele está ausente da lista. Em sistemas automáticos, isso pode ser feito usando um algoritmo de pesquisa binária ou pesquisa de interpolação ; a pesquisa manual pode ser realizada usando um procedimento aproximadamente semelhante, embora isso muitas vezes seja feito inconscientemente. Outras vantagens são que se pode encontrar facilmente o primeiro ou o último elemento da lista (provavelmente útil no caso de dados classificados numericamente), ou elementos em um determinado intervalo (útil novamente no caso de dados numéricos, e também com dados ordenados alfabeticamente, quando se pode ter certeza de apenas as primeiras letras do item ou itens procurados).

Encomenda

Numérico e cronológico

As sequências que representam números podem ser classificadas com base nos valores dos números que representam. Por exemplo, "−4", "2,5", "10", "89", "30.000". Observe que a aplicação pura deste método pode fornecer apenas uma ordenação parcial nas strings, uma vez que strings diferentes podem representar o mesmo número (como com "2" e "2.0" ou, quando a notação científica é usada, "2e3" e "2000" )

Uma abordagem semelhante pode ser feita com strings representando datas ou outros itens que podem ser ordenados cronologicamente ou de alguma outra maneira natural.

Ordem alfabética

A ordem alfabética é a base de muitos sistemas de agrupamento em que os itens de informação são identificados por sequências que consistem principalmente de letras de um alfabeto . A ordem das strings depende da existência de uma ordem padrão para as letras do alfabeto em questão. (O sistema não se limita a alfabetos no sentido técnico estrito; linguagens que usam um silabário ou abugida , por exemplo Cherokee , podem usar o mesmo princípio de ordenação, desde que haja uma ordem definida para os símbolos usados.)

Para decidir qual das duas strings vem primeiro em ordem alfabética, inicialmente suas primeiras letras são comparadas. A string cuja primeira letra aparece no início do alfabeto vem primeiro em ordem alfabética. Se as primeiras letras forem iguais, as segundas letras serão comparadas e assim por diante, até que a ordem seja decidida. (Se uma string ficar sem letras para comparar, então é considerada a primeira; por exemplo, "carrinho" vem antes de "carthorse".) O resultado de organizar um conjunto de strings em ordem alfabética é que as palavras com as mesmas primeiro letras são agrupadas e, dentro de tal grupo, palavras com as mesmas duas primeiras letras são agrupadas e assim por diante.

Letras maiúsculas são normalmente tratadas como equivalentes às letras minúsculas correspondentes. (Para tratamentos alternativos em sistemas computadorizados, consulte Agrupamento automatizado , abaixo.)

Certas limitações, complicações e convenções especiais podem ser aplicadas quando a ordem alfabética é usada:

  • Quando as strings contêm espaços ou outros divisores de palavras, deve-se decidir se deve ignorar esses divisores ou tratá-los como símbolos que precedem todas as outras letras do alfabeto. Por exemplo, se a primeira abordagem for adotada, "estacionamento" virá depois de "carbono" e "carpa" (como viria se fosse "estacionamento"), enquanto na segunda abordagem "estacionamento" virá antes daqueles duas palavras. A primeira regra é usada em muitos (mas não em todos) dicionários , a segunda em listas telefônicas (de modo que Wilson, Jim K apareça com outras pessoas chamadas Wilson, Jim e não após Wilson, Jimbo).
  • As abreviaturas podem ser tratadas como se tivessem sido escritas por extenso. Por exemplo, nomes contendo "St." (abreviação da palavra inglesa Saint ) são frequentemente ordenadas como se estivessem escritas como "Saint". Também existe uma convenção tradicional em inglês de que os sobrenomes que começam com Mc e M ' são listados como se esses prefixos fossem escritos em Mac .
  • As sequências que representam nomes pessoais geralmente são listadas por ordem alfabética do sobrenome, mesmo que o nome fornecido seja o primeiro. Por exemplo, Juan Hernandes e Brian O'Leary devem ser classificados como "Hernandes, Juan" e "O'Leary, Brian", mesmo que não tenham sido escritos dessa forma.
  • Palavras iniciais muito comuns, como The em inglês, são freqüentemente ignoradas para fins de classificação. Portanto, O Iluminado seria classificado apenas como "Brilhante" ou "Iluminado, O".
  • Quando algumas das strings contêm numerais (ou outros caracteres que não são letras), várias abordagens são possíveis. Às vezes, esses caracteres são tratados como se viessem antes ou depois de todas as letras do alfabeto. Outro método é os números serem classificados em ordem alfabética como seriam escritos: por exemplo, 1776 seria classificado como se estivesse escrito "dezessete setenta e seis" e 24 heures du Mans como se escrito "vingt-quatre ..." (francês para "vinte e quatro"). Quando numerais ou outros símbolos são usados ​​como formas gráficas especiais de letras, como em 1337 para leet ou Se7en para o título do filme Seven , eles podem ser classificados como se fossem aquelas letras.
  • Os idiomas têm convenções diferentes para o tratamento de letras modificadas e certas combinações de letras. Por exemplo, em espanhol, a letra ñ é tratada como uma letra básica após n , e os dígrafos ch e ll eram anteriormente (até 1994) tratados como letras básicas após c e l , embora agora estejam em ordem alfabética como combinações de duas letras. Uma lista dessas convenções para vários idiomas pode ser encontrada em Ordem alfabética § Convenções específicas do idioma .

Em vários idiomas, as regras mudaram com o tempo e, portanto, os dicionários mais antigos podem usar uma ordem diferente dos modernos. Além disso, o agrupamento pode depender do uso. Por exemplo, dicionários alemães e listas telefônicas usam abordagens diferentes.

Classificação radical e traço

Veja também Indexação de caracteres chineses

Outra forma de agrupamento é a classificação radical-and-stroke , usada para sistemas de escrita não alfabéticos, como o hanzi do chinês e o kanji do japonês , cujos milhares de símbolos desafiam a ordenação convencional. Nesse sistema, os componentes comuns dos personagens são identificados; estes são chamados de radicais em chinês e sistemas logográficos derivados do chinês. Os caracteres são agrupados por seu radical primário e, em seguida, ordenados pelo número de traços de caneta dentro dos radicais. Quando não há radical óbvio ou mais de um radical, a convenção governa qual é usado para comparação. Por exemplo, o caractere chinês 妈 (que significa "mãe") é classificado como um caractere de seis toques no radical primário de três toques 女.

O sistema radical-and-stroke é complicado em comparação com um sistema alfabético no qual existem alguns caracteres, todos inequívocos. A escolha de quais componentes de um logógrafo compreendem radicais separados e qual radical é o principal não é clara. Como resultado, as linguagens logográficas freqüentemente complementam a ordenação radical e de traços com a classificação alfabética de uma conversão fonética dos logógrafos. Por exemplo, a palavra kanji Tōkyō (東京) pode ser classificada como se fosse escrita nos caracteres japoneses do silabário hiragana como "to-u-ki- yo -u" (と う き ょ う), usando a ordem de classificação convencional para estes personagens.

Além disso, na Grande China, a ordenação do toque de sobrenome é uma convenção em alguns documentos oficiais em que os nomes das pessoas são listados sem hierarquia.

O sistema radical-and-stroke, ou algum método semelhante de correspondência de padrões e contagem de traços, era tradicionalmente o único método prático para construir dicionários que alguém poderia usar para procurar um logógrafo cuja pronúncia era desconhecida. Com o advento dos computadores, agora estão disponíveis programas de dicionário que permitem escrever um caractere à mão usando um mouse ou caneta.

Automação

Quando as informações são armazenadas em sistemas digitais, o agrupamento pode se tornar um processo automatizado. É então necessário implementar um algoritmo de agrupamento apropriado que permita que as informações sejam classificadas de maneira satisfatória para a aplicação em questão. Freqüentemente, o objetivo será alcançar uma ordem alfabética ou numérica que siga os critérios padrão descritos nas seções anteriores. No entanto, nem todos esses critérios são fáceis de automatizar.

O tipo mais simples de agrupamento automatizado é baseado nos códigos numéricos dos símbolos em um conjunto de caracteres , como a codificação ASCII (ou qualquer um de seus superconjuntos , como Unicode ), com os símbolos sendo ordenados em ordem numérica crescente de seus códigos, e isso a ordenação sendo estendida a strings de acordo com os princípios básicos da ordenação alfabética (matematicamente falando, ordenação lexicográfica ). Portanto, um programa de computador pode tratar os caracteres a , b , C , d e $ como sendo ordenados $ , C , a , b , d (os códigos ASCII correspondentes são $ = 36, a = 97, b = 98, C = 67 e d = 100). Portanto, strings que começam com C , M ou Z seriam classificadas antes de strings com minúsculas a , b , etc. Isso às vezes é chamado de ordem ASCIIbética . Isso se desvia da ordem alfabética padrão, principalmente devido à ordem das letras maiúsculas antes de todas as minúsculas (e, possivelmente, o tratamento de espaços e outros caracteres que não são letras). Portanto, é frequentemente aplicado com certas alterações, sendo a mais óbvia a conversão de maiúsculas e minúsculas, por razões históricas, antes da comparação dos valores ASCII.

Em muitos algoritmos de agrupamento, a comparação é baseada não nos códigos numéricos dos caracteres, mas com referência à sequência de agrupamento - uma sequência na qual os caracteres são assumidos para o propósito de agrupamento - bem como outras regras de ordenação apropriadas para o aplicativo fornecido. Isso pode servir para aplicar as convenções corretas usadas para a ordem alfabética no idioma em questão, lidando corretamente com letras maiúsculas e minúsculas diferentes, letras modificadas , dígrafos , abreviações particulares e assim por diante, conforme mencionado acima em ordem alfabética , e em detalhes na ordem alfabética encomendar artigo. Esses algoritmos são potencialmente bastante complexos, possivelmente exigindo várias passagens pelo texto.

No entanto, os problemas ainda são comuns quando o algoritmo precisa abranger mais de um idioma. Por exemplo, nos dicionários alemães a palavra ökonomisch vem entre offenbar e olfaktorisch , enquanto os dicionários turcos tratam o e ö como letras diferentes, colocando oyun antes de öbür .

Um algoritmo padrão para agrupar qualquer coleção de strings compostas de quaisquer símbolos Unicode padrão é o algoritmo de agrupamento Unicode . Isso pode ser adaptado para usar a sequência de intercalação apropriada para um determinado idioma, adaptando sua tabela de intercalação padrão. Vários desses ajustes são coletados no Common Locale Data Repository .

Classificar chaves

Em alguns aplicativos, as strings pelas quais os itens são agrupados podem diferir dos identificadores exibidos. Por exemplo, The Shining pode ser classificado como Shining, The (consulte a ordem alfabética acima), mas ainda pode ser desejado exibi-lo como The Shining . Nesse caso, dois conjuntos de strings podem ser armazenados, um para fins de exibição e outro para fins de agrupamento. As strings usadas para agrupamento dessa maneira são chamadas de chaves de classificação .

Problemas com números

Às vezes, é desejável ordenar o texto com números incorporados usando a ordem numérica apropriada. Por exemplo, a "Figura 7b" vem antes da "Figura 11a", embora '7' venha depois de '1' em Unicode . Isso pode ser estendido para algarismos romanos . Esse comportamento não é particularmente difícil de produzir, desde que apenas inteiros devam ser classificados, embora possa diminuir significativamente a classificação. Por exemplo, o Microsoft Windows faz isso ao classificar nomes de arquivos .

Classificar decimais corretamente é um pouco mais difícil, porque diferentes localidades usam símbolos diferentes para uma vírgula decimal e, às vezes, o mesmo caractere usado como vírgula decimal também é usado como separador, por exemplo "Seção 3.2.5". Não existe uma resposta universal sobre como classificar essas strings; todas as regras dependem do aplicativo.

A ordem crescente dos números difere da ordem alfabética, por exemplo, 11 vem em ordem alfabética antes de 2. Isso pode ser corrigido com zeros à esquerda : 02 vem em ordem alfabética antes de 11. Veja, por exemplo, ISO 8601 .

Além disso, −13 vem em ordem alfabética após −12, embora seja menor. Com números negativos, para fazer com que a ordem ascendente corresponda à classificação alfabética, medidas mais drásticas são necessárias, como adicionar uma constante a todos os números para torná-los todos positivos.

Rotulagem de itens pedidos

Em alguns contextos, números e letras são usados ​​não tanto como base para estabelecer um pedido, mas como um meio de etiquetar itens que já foram pedidos. Por exemplo, páginas, seções, capítulos e semelhantes, bem como os itens de listas, são freqüentemente "numerados" dessa maneira. As séries de rotulagem que podem ser usadas incluem algarismos arábicos comuns (1, 2, 3, ...), algarismos romanos (I, II, III, ... ou i, ii, iii, ...) ou letras (A , B, C, ... ou a, b, c, ...). (Um método alternativo para indicar itens de lista, sem numerá-los, é usar uma lista com marcadores .)

Quando as letras de um alfabeto são usadas para esse propósito de enumeração , existem certas convenções específicas do idioma sobre quais letras são usadas. Por exemplo, as letras russas Ъ e Ь (que, por escrito, são usadas apenas para modificar a consoante precedente ), e geralmente também Ы , Й e Ё , são omitidas. Também em muitos idiomas que usam a escrita latina estendida , as letras modificadas geralmente não são usadas na enumeração.

Veja também

Notas

Referências

links externos