대조

Collation

대조는 쓰여진 정보를 표준 주문으로 모으는 것입니다.많은 대조 시스템은 숫자 순서 또는 알파벳 순서 또는 확장자와 조합에 기초한다.조합은 대부분의 사무실 파일 시스템, 라이브러리 카탈로그 및 참고서의 기본 요소입니다.

대조는 클래스 자체가 반드시 순서가 매겨지는 것은 아니라는 점에서 분류와 다릅니다.그러나 클래스의 순서가 무관하더라도 클래스의 식별자는 정렬된 집합의 멤버일 수 있으므로 정렬 알고리즘은 항목을 클래스별로 정렬할 수 있다.

공식적으로 말하면, 대조법은 일반적으로 정렬 키라고 불리는 가능한 식별자 집합의 총 순서를 정의하며, 결과적으로 정보 항목 집합의 총 사전 주문을 생성합니다(같은 식별자를 가진 항목은 정의된 순서로 배치되지 않음).

Unicode 대조 알고리즘과 같은 대조 알고리즘은 주어진2개의 문자열을 비교하여 어느 것이 다른 문자열보다 우선해야 하는지를 결정하는 프로세스를 통해 순서를 정의합니다.순서가 이렇게 정의된 경우 정렬 알고리즘을 사용하여 원하는 수의 항목 목록을 해당 순서에 넣을 수 있습니다.

조합의 주요 장점은 사용자가 목록 내의 요소를 빠르고 쉽게 찾거나 목록에 없는 요소를 확인할 수 있다는 것입니다.자동 시스템에서는 바이너리 검색 알고리즘 또는 보간 검색을 사용하여 수행할 수 있습니다. 수동 검색은 거의 비슷한 절차를 사용하여 수행될 수 있지만, 종종 무의식적으로 수행됩니다.다른 장점은 목록의 첫 번째 또는 마지막 요소(숫자로 정렬된 데이터의 경우 가장 유용할 수 있음) 또는 주어진 범위의 요소(숫자 데이터의 경우 다시 유용하고 검색된 항목의 처음 몇 글자만 확인할 수 있는 경우 알파벳 순서로 정렬된 데이터)를 쉽게 찾을 수 있다는 것입니다.

주문

수치 및 연대기

숫자를 나타내는 문자열은 숫자 값에 따라 정렬할 수 있습니다.예를 들어 "-4", "2.5", "10", "89", "30,000" 등입니다.다른 문자열이 동일한 숫자("2"와 "2.0" 또는 과학적 표기법 사용 시 "2e3"과 "2000"과 같이)를 나타낼 수 있기 때문에 이 메서드를 순수하게 적용하면 문자열에 대한 부분 순서만 제공할 수 있습니다.

날짜 또는 기타 항목을 나타내는 문자열로 시간순으로 또는 기타 자연스러운 방법으로 주문할 수 있는 유사한 접근법을 취할 수 있다.

알파벳순

알파벳 순서는 정보 항목이 주로 알파벳 문자로 구성된 문자열로 식별되는 많은 대조 시스템의 기초입니다.문자열의 순서는 해당 알파벳 문자의 표준 순서가 존재하는지 여부에 달려 있습니다(엄격한 기술적 의미에서는 알파벳에 한정되지 않으며, 예를 들어 체로키와 같이 음절 문자나 압구다를 사용하는 언어도 사용하는 문자의 순서가 정해져 있는 한 동일한 순서를 사용할 수 있습니다).

두 문자열 중 어떤 문자열이 알파벳 순서로 먼저 오는지 결정하기 위해 첫 번째 문자를 비교합니다.알파벳의 앞부분에 첫 글자가 나타나는 문자열은 알파벳 순서로 첫 번째가 됩니다.첫 번째 글자가 같을 경우 순서가 결정될 때까지 두 번째 글자를 비교합니다.(비교할 문자가 부족한 문자열이 있으면 해당 문자열이 우선으로 간주됩니다.예를 들어 "cart"가 "carthorse" 앞에 나옵니다.)문자열 세트를 알파벳 순으로 배열하면 첫 글자가 같은 단어가 그룹화되고 첫 글자가 같은 그룹 내에서 두 글자가 같은 단어가 그룹화되는 등 계속됩니다.

대문자는 일반적으로 대응하는 소문자와 동등하게 취급됩니다(컴퓨터화된 시스템의 대체 처리에 대해서는 아래의 자동 대조 참조).

알파벳 순서를 사용할 경우 다음과 같은 제한사항, 복잡성 및 특별한 표기법이 적용될 수 있습니다.

  • 문자열에 공백 또는 다른 단어 구분선이 포함되어 있는 경우, 이러한 구분선을 무시할지 또는 알파벳의 다른 모든 문자 앞에 있는 기호로 처리할지 결정해야 합니다.예를 들어, 첫 번째 접근방식을 취하면 "주차장"은 "탄소"와 "카프" 뒤에 오는 반면, 두 번째 접근방식에서는 "주차장"이 이 두 단어 앞에 온다.첫 번째 규칙은 많은 사전(전부는 아니지만)에서 사용되고 두 번째 규칙은 전화 디렉토리에 사용됩니다(그러므로 윌슨, 짐 K는 윌슨, 짐이라는 이름의 다른 사람과 함께 나타나며, 짐보 뒤에 나타나지 않습니다).
  • 약어는 완전한 철자를 사용한 것으로 취급할 수 있다.예를 들어, "St."(영어 Saint의 줄임말)가 포함된 이름은 "Saint"로 쓰인 것처럼 정렬되는 경우가 많습니다.영어에는 맥과 M'으로 시작하는 성이 맥이라고 쓰인 것처럼 나열되는 전통 관습도 있다.
  • 개인 이름을 나타내는 문자열은 이름이 먼저 나오더라도 대부분의 경우 성 알파벳 순으로 나열됩니다.예를 들어 후안 에르난데스와 브라이언 오리어리는 이런 식으로 표기되지 않더라도 "Hernandes, Juan"과 "O'Leary, Brian"으로 분류되어야 한다.
  • 영어의 The와 같은 매우 일반적인 첫 단어는 정렬 목적으로 무시되는 경우가 많습니다.그래서 The Shining은 그냥 "Shinning" 또는 "Shinning, The"로 분류됩니다.
  • 일부 문자열에 숫자(또는 기타 문자 이외의 문자)가 포함되어 있는 경우 다양한 접근법이 가능합니다.때때로 그러한 문자는 알파벳의 모든 문자 앞이나 뒤에 온 것처럼 취급된다.또 다른 방법은 숫자를 알파벳 순으로 정렬하는 것입니다. 를 들어 1776은 "7676"으로 표기된 것처럼 정렬되고 24는 "빙트-쿼트"로 표기된 것처럼 du Mans로 분류됩니다." (프랑스어로 '24'라는 뜻)숫자나 다른 기호가 특수 그래픽 형태의 문자로 사용될 경우, 1337년 리트 또는 Se7en의 영화 제목인 Seven과 같이, 마치 그 문자인 것처럼 정렬될 수 있다.
  • 언어에는 수정된 문자와 특정 문자의 조합을 취급하는 다른 규칙이 있습니다.예를 들어 스페인어에서는 문자 is이 n 에 오는 기본 문자로 취급되며, 디그래프 ch와 ll은 과거(1994년까지) c와 l 뒤에 오는 기본 문자로 취급되었지만 현재는 두 글자 조합으로 알파벳으로 분류된다.다양한 언어에 대한 이러한 표기법 목록은 알파벳 순서 language 언어별 표기법에서 찾을 수 있습니다.

몇몇 언어에서는 시간이 지남에 따라 규칙이 바뀌었기 때문에 오래된 사전은 현대의 사전과 다른 순서를 사용할 수 있습니다.또한 조합은 용도에 따라 달라질 수 있습니다.예를 들어 독일어 사전과 전화 디렉터리는 서로 다른 접근 방식을 사용합니다.

래디컬 앤 스트로크 정렬

참고 항목: 한자 색인화

대조법의 또 다른 형태는 중국어한자일본어한자와 같은 알파벳이 아닌 문자 체계에 사용되는 부수적 정렬로, 수천 개의 기호가 관습에 의해 명령을 거스른다.이 시스템에서는 문자의 공통적인 구성 요소가 식별됩니다.중국어에서는 부수라고 불리며 중국어에서 유래한 기록 시스템입니다.그 후, 문자는 1차 부수별로 그룹화되고, 그 후 부수 내의 펜 스트로크 수로 정렬됩니다.명확한 과수가 없거나 하나 이상의 과수가 없는 경우, 규약은 대조하는 데 사용됩니다.예를 들면, 「어머니」라는 의미의 한자 「 (」는, 3 스트로크의 1차 부수 「女」아래에 6 스트로크로 분류됩니다.

알파벳 체계에 비해 소수 문자는 모두 모호하지 않습니다.로그그래프의 어떤 구성요소가 별도의 라디칼로 구성되고 어떤 라디칼이 일차적인지를 선택하는 것은 명확하지 않다.그 결과, 로지그래픽 언어는, 로지그래픽의 음성 변환의 알파벳 정렬에 의해, 래디컬과 스트로크 순서를 보충하는 경우가 많다.를 들면, 히라가나 음절의 일본어 문자로 표기한 것처럼,[citation needed] 기존의 정렬 순서를 사용해 「토우키--우yo」로 분류할 수 있다.

또한 중화권에서 성 획 순서는 일부 공식 문서에서 사람들의 이름이 계층 없이 나열되는 관습이다.

자동화

정보가 디지털 시스템에 저장될 때, 대조는 자동화된 프로세스가 될 수 있습니다.그런 다음 해당 애플리케이션에 대해 정보를 만족스럽게 정렬할 수 있는 적절한 대조 알고리즘을 구현할 필요가 있습니다.대부분의 경우, 그 목적은 이전 섹션에서 설명한 표준 기준을 따르는 알파벳 또는 숫자 순서를 달성하는 것입니다.그러나 이러한 기준이 모두 [1]자동화되기 쉬운 것은 아닙니다.

가장 간단한 종류의 자동 대조는 ASCII 부호화(또는 유니코드 상위 집합)와 같은 문자 집합의 기호 숫자 코드를 기반으로 하며, 기호는 코드의 숫자 순서로 정렬되며, 이 순서는 알파벳 o의 기본 원칙에 따라 문자열로 확장됩니다.rdering(사전적 순서)입니다.따라서 컴퓨터 프로그램은 문자 a, b, C, d $를 $, C, a, b, d 순으로 처리할 수 있습니다(대응 ASCII 코드는 $ = 36, a = 97, b = 98, C = 67, d = 100).따라서 C, M 또는 Z로 시작하는 문자열은 소문자 a, b 등의 문자열 앞에 정렬됩니다.이것은 ASCII betical order라고 불리기도 합니다.이는 표준 알파벳 순서에서 벗어납니다. 특히 모든 소문자 앞에 대문자가 정렬되어 있기 때문입니다(공백 및 기타 문자가 아닌 문자의 처리도 가능합니다).따라서 ASCII 값을 비교하기 전에 대소문자를 대소문자로 변환하는 것이 가장 명백합니다[note 1].

많은 대조 알고리즘에서 비교는 문자의 숫자 코드가 아니라 대조 시퀀스(문자가 조회를 위해 오는 것으로 가정되는 시퀀스)와 주어진 애플리케이션에 적합한 기타 순서 규칙에 근거합니다.이는 해당 언어에서 알파벳 순서에 사용되는 올바른 규약을 적용하는 데 도움이 될 수 있으며, 위의 알파벳 순서 및 알파벳 순서 문서에서 자세히 설명한 바와 같이 다른 괄호로 묶인 문자, 수정된 문자, 이중문자, 특정 약어 등을 적절히 다룰 수 있습니다.이러한 알고리즘은 잠재적으로 매우 복잡하며,[1] 텍스트를 여러 번 통과해야 할 수 있습니다.

그럼에도 불구하고 알고리즘이 여러 언어를 포함해야 하는 경우 문제는 여전히 일반적입니다.예를 들어, 독일어 사전에서 okonomisch라는 단어offenbarolfaktorisch 사이에 있는 반면, 터키어 사전에서는 o와 o를 obur 앞에 놓고 다른 문자로 취급한다.

표준 유니코드 기호로 구성된 문자열 집합을 조합하는 표준 알고리즘은 유니코드 조합 알고리즘입니다.이는 기본 대조 테이블을 맞춤화함으로써 특정 언어에 적합한 대조 시퀀스를 사용하도록 조정할 수 있습니다.이러한 커스터마이징은 Common Locale Data Repository에 수집됩니다.

정렬 키

일부 응용 프로그램에서는 항목을 조합하는 데 사용되는 문자열이 표시되는 식별자와 다를 수 있습니다.를 들어 [Shining]는 [Shining], [Shining]로 정렬할 수 있지만(위의 알파벳 순서 참조), [Shining]으로 표시하는 것이 바람직할 수 있습니다.이 경우 표시용 문자열과 대조용 문자열 두 세트를 저장할 수 있습니다.이와 같이 대조하는 데 사용되는 문자열을 정렬 키라고 합니다.

숫자에 관한 문제

경우에 따라서는 올바른 숫자 순서를 사용하여 숫자가 포함된 텍스트를 주문하는 것이 바람직합니다.예를 들어 Unicode에서 '7'은 '1' 뒤에 오지만 '그림 7b'는 '그림 11a' 앞에 온다.이것은 로마 숫자로 확장될 수 있습니다.이 동작은 정수만 정렬하면 특별히 어렵지 않지만 정렬 속도가 크게 느려질 수 있습니다.예를 들어, 마이크로소프트 윈도우즈파일 이름을 정렬할 때 이 작업을 수행합니다.

소수를 올바르게 정렬하는 것은 조금 더 어렵습니다.로컬마다 소수점에 대해 다른 기호를 사용하고, 경우에 따라 "섹션 3.2.5"와 같이 소수점으로 사용되는 동일한 문자를 구분 기호로 사용할 수도 있기 때문입니다.이러한 문자열을 정렬하는 방법에 대한 보편적인 답은 없습니다. 규칙은 응용 프로그램에 따라 다릅니다.

주문품목 라벨링

일부 문맥에서는 숫자와 문자가 순서를 확립하기 위한 기준이 아니라 이미 주문된 항목에 라벨을 붙이는 수단으로 사용됩니다.예를 들어, 페이지, 섹션, 장 등, 리스트의 항목은, 이러한 방법으로 「번호부」되는 경우가 많습니다.사용할 수 있는 일련의 라벨에는 일반 아라비아 숫자(1, 2, 3, ...), 로마 숫자(I, II, III, ... 또는 i, ii, ii, III, ...) 또는 문자(A, B, C, ... 또는 a, b, c, ...)가 포함된다(이것들을 번호를 매기지 않고 목록 항목을 표시하는 대체 방법은 글머리 기호 목록을 사용하는 것이다).

알파벳 문자를 열거 목적으로 사용할 경우 사용되는 문자에 대한 특정 언어별 규칙이 있습니다.예를 들어 러시아어 문자 and, which(문자는 의 자음을 수정하는 데만 사용), 보통 ы, й, ё도 생략된다.또한 확장 라틴 문자를 사용하는 많은 언어에서는 수정된 문자가 열거에 사용되지 않는 경우가 많습니다.

「 」를 참조해 주세요.

메모들

  1. ^ 지금까지 컴퓨터는 대문자로 된 텍스트만 처리했습니다(이것은 전신 규약으로 거슬러 올라갑니다).

레퍼런스

  1. ^ a b M 프로그래밍: 포괄적인 가이드, 리처드 F.월터스, 디지털 프레스, 1997

외부 링크