위키백과:템플릿 분석:문제 변환
Wikipedia:![]() | 이것은 수필이다. 그것은 한 명 이상의 위키백과 기고자들의 조언이나 의견을 담고 있다.이 페이지는 백과사전 기사도 아니며, 지역사회에서 철저히 조사되지 않았기 때문에 위키백과 정책이나 지침의 것도 아니다.어떤 에세이는 널리 퍼진 규범을 나타내고, 다른 에세이는 단지 소수의 관점만을 나타낸다. |
![]() | 이 에세이는 현재 고아가 되어 있다 |
Template을 사용하여 측정값을 변환하는 데 많은 문제가 있었다.2008-2009년 동안 변환하십시오.이러한 템플릿 패밀리는 각 변환에 대해 20~26개의 중첩 템플릿의 복잡성이 증가하고 오류 비교에 사용될 수 있었던 유사한 템플릿의 지속적인 삭제로 인해 업데이트하기가 점점 더 어려워지고 있다.이 문제는 자원 봉사자들이 복잡한 범위 옵션을 모두 갖춘 변환 템플릿-패밀리를 지속적으로 유지하는 것이 매우 어렵기 때문에 지속되어 왔다.헌신적인 자원봉사자들조차 그런 일에 대해 느리고 서투른 것 같다.
가장 가까운 10개 단위로 기본 반올림
몇몇 사용자들은 컨버터가 10마일 반올림, 10파운드 반올림, 10cm 반올림 등 10s대 단위의 세계 표준의 양에 훨씬 못 미치는 반올림 수를 보인다는 점에 주목했다.해결 방법으로 변환 템플릿은 변환된 금액을 반올림하기 위한 카운트를 지정할 수 있다.예를 들면 다음과 같다.
- 발/인치-cm의 경우 0: {{전환 6ft 2 in cm 0}}}을(를) 추가하십시오.
- 피트 대 미터(feet-to-meter)의 경우, 1: {{변환 6ft m:1}}을 추가한다.
- 대형 km-mile의 경우 0: {{변환 6 km mi 0}}}을(를) 추가하십시오.
- 소형 km 대 마일인 경우, 2: {{변환 2 km mi 0}}}을(를) 추가하십시오.
- 리터 투 갤런의 경우, 2: {{변환 7 L {{}}}}을(를) 추가하십시오.
반올림을 지정하지 않은 경우 변환은 매우 특이한 변환을 생성했다.예를 들면 다음과 같다.
- {{변환 32m ft}} 부여: 32m(100ft) - 표준 105ft
- {{변환 300kmmi}} 부여: 300km(190mi) - 표준은 186마일
수많은 사람들이 문제를 알아차렸지만, 표준 변환 금액을 표시하기 위해 템플릿을 변경할 수 있는 사람이 충분하지 않았다.분명히 32미터와 100피트를 동일시한다는 생각은 정책 WP를 위반하는 것이었다.NOR, 105ft의 표준이 아닌 "100ft"로 결과를 뒷받침하는 신뢰할 수 있는 소스는 없을 것이기 때문이다.현재 이 2가지 변환은 다음과 같은 결과를 준다.
- {{변환 32m ft}} 오늘 제공: 32m(105ft) - 표준 105ft
- {{변환 300kmmi}} 오늘 제공: 300km(190mi) - 표준은 186마일이다.
템플릿의 복잡성:3,150개 이상의 하위 도표를 포함한 변환은 모든 사례에 대해 완전한 구현에 몇 주 또는 몇 달이 걸렸다.
20~26개의 템플릿을 사용하는 템플릿 크리프(km/마일)
06-10-2009: 2009년 동안 수백 편의 기사에서 T:Convert의 실제 성능을 분석하면서, 나는 km를 마일 단위로 변환하기 위한 템플릿-creep이 반올림에 따라 각 변환에 대해 호출되는 20-26개의 템플릿에 도달했음을 알게 되었다.대신 대체 템플릿 1개만 사용하여 반올림, 약어, 슬래시, 형용사 하이픈으로 km/마일 변환이 가능하다.Template:Kmbot은 T:Convert for km/miles의 기능을 단 1개의 템플릿 내에서 수행하도록 간소화하는 동시에 다른 희귀 변환이 현재의 20-26의 중첩 템플릿을 사용할 수 있음을 입증했다.사용자:에서 삭제된 템플릿을 복원한 경우:Wikid77/템플릿:비교 및 개념 증명용 Kmbot.단일 템플릿을 사용하여 km-to-마일 변환을 처리할 수 있는 능력은 단순한 가설이 아니라, Kmbot의 작업에 의해 2009년 동안 모두 사실인 것으로 나타났다.당연히 T:Convert는 그 어떤 버그들의 근원이 될 수도 있는 20~26개의 템플릿을 호출하기 때문에, T:Convert는 희귀한 레인지 변환과 더불어 무수히 많은 버그와 반올림 문제를 일으킬 것으로 예상할 수 있는데, 이는 단순히 1개의 능률화된 템플릿을 사용하는 것이 아니라, 오히려 {{Convert}가 20~26개의 템플릿을 호출하기 때문에 고치기 더 어려운 것이다., 그리고 그 이상.템플릿-creep이 확장되면 복잡한 템플릿이 여전히 신뢰할 수 있다는 것을 입증하기가 더욱 어려워진다.
실제 기사에서 km/마일(마일)에 대해 고지된 문제
06-102009:빠르게 삭제된 템플릿:Kmbot 대 {{Convert}}을(를) 실행하는 동안 표면화된 수많은 문제가 있다.대체 변환 전술을 탐구하는 템플릿은 위키백과에서 빠르게 삭제되기 때문에 더 나은 방법과는 비교가 거의 없었다.아이디어의 다양성 때문에 T:Kmbot과 T:Convert 사이에 다음과 같이 해결해야 할 많은 문제들을 쉽게 볼 수 있었다.
- {{변환}}}은 20km를 12.4마일(mile)이 아닌 "12 mi"로 변환한다.디폴트 라운딩은 20km 등 저거리에 비해 너무 심한 것 같다.초점: 저거리에 대해 10분의 1마일을 포함하는 것을 고려한다.
- {{Convert}}은(는) "km"가 알려진 측정일 때 기본값으로 "20km(12mi)"를 표시하고, "12mi"는 이물질로 표시한다.기사의 초점을 고려할 때 보다 논리적인 표시는 "km"가 기사의 주제에 대해 잘 알려져 있기 때문에(그리고 "meter/meter" 편향은 피하므로) "20km(12마일)"가 될 것이고, 반면에 "mi"라는 용어는 "kmeter"에 관한 대부분의 기사에 외래어인 "마일"로 더 잘 설명되어 있다."mi"를 줄여서 쓰되 "km"를 쓰지 않는 선택은 논리적으로 km를 사용하는 대부분의 기사의 문화에는 뒤떨어진 것이다.초점: "km"를 표시할 일반적인 기본 항목으로 간주한다.
- {{Convert}}}은(는) 소수점 대 소수점 숫자 표시에 혼동을 줄 수 있지만 4자리 수로 콤마를 넣자고 주장한다.입력 형식(4+1/8)을 따르는 것이 훨씬 나을 것이다. 따라서 4125m는 4.125m(4+1/8)m의 소수 콤마 오타가 될 수 있는 "4,125m"로 강제하기 보다는 "4125m"로 유지된다.기억하라: 수많은 다국어 독자들이 영어 위키백과에서 일하기 때문에, 그 쉼표가 필요조차 없을 때 숫자상의 과도한 쉼표는 피하는 것이 좋을 것이다.0이 있는 양은 "4,100"이 4천 미터를 넘는 것처럼 분명 크지만 대부분의 고도는 0이 없다. "9,125"는 "9,125" 미터를 "9+" 미터로 오인할 수 있다.쉼표의 강요는 소수 콤마 문화의 실제 오자를 탐지하는 것을 어렵게 만든다.초점: 9999 내의 숫자에 대해 모든 곳에서 쉼표를 강요하지 마십시오.
- {{Convert}}}}은(는) 1200만 km의 광대한 거리를 마일(마일)로 변환하는 등 입력 번호에 있는 쉼표를 여전히 채운다.{Convert 1200만 km}}}는 2008~2009년 내내 죽어가고 있다.현재 {{Convert 1,200,000km}의 입력으로 쉼표를 사용한 라이브 결과는 다음과 같다:1200,000km(7,500,000mi).
초점: 변환에서 통신 허용을 우선 순위 변경으로 설정
- {{Convert}}}은 실제로 숫자 감각을 다루지 않는 반면, Template:Kmbot은 거리에 따라 논리적으로 둥글게 설계되어 주요 설계 목표로 삼았다.초점: {{Convert}}이(가) 숫자 감지까지 처리할 수 있는지, 아니면 그런 단일 템플릿에 비해 너무 복잡한지 생각해 보십시오.
물론 이러한 문제에 대한 가장 간단한 해결책은 {{Convert}}을(를) 사용하지 말고 {{Kmbot}만, 계속 삭제되지 않았다면!대신, 20-26 템플릿은 건너뛰고, "20km(12.4마일)" 또는 기타 측정값을 각 기사의 문화에 대해 더 논리적인 문구로 하드 코딩하십시오.숫자를 하드 코딩하면 12.4를 12로 반올림하지 않으며 페이지를 어지럽히도록 추가 쉼표를 강요하지 않는다.
엔드제로가 반올림된 양이라고 생각하는 변환
06-102009:컨버터가 처음부터 끝까지의 정밀도를 추정하는 것에 대해 "너무 영리하다"는 것은 정말 문제가 있다.만약 컨버터가 3개의 끝-제로 된 숫자 "1000"을 본다면, 그것은 그 금액이 가장 가까운 100으로 추정된 것처럼 결과를 반올림한다.반올림의 정밀도는 숫자 "1"이나 "0.0"을 더하면 강요할 수 있지만, 기사에서 이상하게 보일 수 있다: 정상의 높이가 1000.0m이거나 깊은 다이빙을 100m로 측정하기 때문에 잠수함이 201m에서 멈췄다(뭐?왜 201이 200이 아닌...오, 왜냐하면 컨버터는 200을 다룰 수 없기 때문이다.라이브 템플릿에서 200과 201을 비교해 보십시오.변환:
- {{변환 200m}}가 준다:200m(660ft), {{변환 201m}가 준다:201m(659ft).
- {{변환 200. m}}이(가) 준다:200m(656ft), {{변환 201.0m}이(가) 준다:201.0m(659.4ft)
숫자에서 다중 0 "00"이 우발적으로 발생하는 것과 관계없이, 더 나은 접근법은 수천 개(수백 개가 아니라)에서 가장 가까운 10개까지 반올림하는 것이라고 생각한다.한편, 200 & 201의 값은 서로 다르게 변환되어야 하며, 656 & 659 ft로 변환되어야 하며, 둘 다 660 ft로 변환되어서는 안 된다.그것은 거의 충격적일 정도로 초라한 성적이다.
0을 반올림하여 의심스러운 것처럼 보이도록 변환
미국 문화 내에서 판단되는 또 다른 주요 문제점은 두 배의 "00"의 반올림이 실제로 정확한 변환이 되기에는 "너무 매끄럽다"거나 "너무 편리하다"고 보이는 변환을 만들어 낼 수 있다는 것이다."600m" 라운딩 고려
- {{변환 600m}} 증정: 600m(2,000ft)
정확히 2,000개의 결과의 외형은 "어물"처럼 보인다. (가장 가까운 100으로 반올림했기 때문에, 가장 가까운 1,000개를 생산했다.)기본량은 600m=68ft이지만 32ft를 짝수 '2000'으로 반올림해 전체 변환이 엉성한 추정치처럼 보일 뿐이다.미국 문화는 그러한 문제에서 전형적으로 그런 수준의 라운딩을 다루지 않는다.그 결과, 1,970이라는 반올림된 값이 단지 2,000이라는 야구장 숫자에 불과하다고 간주하는 숫자 게임에 의해 그 액수가 더 줄어들었기 때문에 전체 기사에 의문이 생길 수 있다.
손상 제어 - 오류 변환
07-10-2009: 일단 진지하게 해결책을 찾으면, 심각한 라운딩 문제(위 공지사항)가 처리될 수 있다고 생각한다.1단계: 당황하지 마십시오.모든 라운딩이 절망적으로 불운하다고 단정짓지 마라.대부분의 중간 수준 금액에 대해 손상 관리 방법은 반올림 매개변수 "0"을 "항상"으로 사용하는 것이 될 것이다.따라서 킬로그램에서 포운드가 여러 개일 경우 다음을 사용하십시오.
- {{변환 81kg 0}}: 81kg(179lb) 및 {{변환 83kg 0}: 83kg(183lb)
- {{변환 82kg 0}}: 82kg(181lb) 및 {{변환 84kg 0}: 84kg(185lb)
나는 라운드 파라미터 "0"을 추가하면 5파운드 오류에 대한 두려움이 사라질 것이라고 생각한다.5마일에서 마일 사이의 오차에 대한 두려움도 마찬가지일 것이다.컨버터는 기본적으로 라운딩 문제가 심각하다는 것을 확인한 많은 사람들에게 감사해야 하지만, 대부분의 중간 단계에서는 라운딩을 "0"으로 강제 라운딩을 할 뿐이다.응, 무게 중심을 잘못 돌리면 5파운드 오차, 거리는 5마일 오차.작은 숫자의 경우 라운드 "0"의 사용도 마찬가지로 나쁠 수 있다는 점에 유의하십시오(많은 kg 또는 km의 양에 "0"만 표시).
- {{변환 8.1kg 0}} 증정: 8.1kg(18lb)
- {{변환 8.2kg 0}}} 증정: 8.2kg(18lb)
- {{변환 8.3kg 0}}} 증정: 8.3kg(18lb) (모두 동일)
대신 소량의 경우 2kg 또는 2km(10개 미만)의 양과 같이 "2"로 둥글게 한다.
- {{변환 1.81 kg {{}}} as: 1.81 kg(3.99 lb) & {{변환 1.83 2 kg} as: 1.83 kg (4.03 lb)
- {{변환 1.82kg{{{변환 4.01lb) & {{변환 1.84kg{}}}}: 1.84kg(4.06lb)
이번에도 컨버터 템플릿에서 반올림 오류의 충격적인 수준을 확인한 모든 분들께 감사드린다.그러나 당황하지 마십시오. 컨버터는 "비열한 위키피디아의 명성"을 얻을 수 없다.위키피디아는 수년 동안 나쁜 평판을 받아왔다. 많은 기사들은 해킹을 당했고, 유명한 사람들의 기사들은 구식이고, 공공 기물 파손은 많은 기사들(최소한 2년)에 수개월 또는 수년이 남아있다.변환 오류에 대한 인식은 개선을 위한 한 단계 더 나아가는 과정이다.다른 교훈으로 하자: R.M.S. 컨버터닉호는 침몰했지만, R.M.S. 컨버터 II를 건설할 때까지 구명보트로 이동하여 계속 나아가자.
변환이 일반 측정값의 범위를 초과함
몇몇 사람들은 2009년 10월까지 컨버터의 반올림 오류가 있다는 점에 주목했다.물론, "0마일로 반올림하는 것은 전혀 거리가 없기 때문에 1km = 10마일 (가장 가까운 10마일)과 같은 넓은 라운딩 규칙을 만들 수 있다."그러나 일반적인 측정치를 고려할 때 200m가 660ft라고 하는 것은 논리적이지 않으며, 창고 길이를 201m로 늘리면 새로운 길이가 660ft(동일)가 된다.맨 아래 줄:Convert는 일반적인 측정에서 반올림이라는 일부 충격적인 개념으로 디폴트되어 왔다.교황령 "원형 미터에서 10피트까지"는 언제 제정되었는가?대신 200m를 656ft로 처리하고 201m의 더 긴 창고를 기본값으로 659ft로 한다.사람들이 가장 가까운 10피트(또는 100피트)까지 반올림하고 싶을 때는 기본 높은 정밀도를 무시하도록 한다.300km의 거리는 186마일(또는 변환기 값 190이 아닌 "185mi"로 5바퀴 반올림)이어야 한다.다시, 300 km를 가장 가까운 10 마일까지 회전시켜라.근본적인 문제는 컨버터가 대부분의 위키백과 기사에 대해 논리적인 것을 넘어서 측정치를 "전반적으로" 사용했다는 것이다.위에서 다시 읽어본다면, 지금까지 제시된 모든 예에서, 그것은 정확성과 정밀성의 일반적인 개념과 비교하여 판단했을 때, 변환기의 반올림 오류에 대한 꽤 명백한 증거다.그것은 2009년 동안 많은 사람들이 말해왔던 것이다.
3,150 템플릿의 변환 제품군 변경
템플릿:변환은 실제로 숫자의 정밀도를 결정하는 데 사용되는 40개 이상의 템플릿을 포함하여 3,150개 이상의 하위 플레이트의 거대한 트리에서 최상위 템플릿일 뿐이다.많은 하위 템플릿은 유효 옵션의 조합을 위해 이름이 붙여졌다. 변환을 계산하기 위해 이름이 붙여진 템플릿과 결과를 표시하기 위해 이름이 붙여진 다른 템플릿("/" 또는 괄호 같은 구분 기호가 있는 양)이 있다.각 계산 템플릿은 명명 패턴을 따르며, 많은 표시 템플릿은 동일한 패턴을 따르며, 각 템플릿은 lk=on/off, abbr=on/off, disp=b/slash/or semicolon, sp=us/en, adj=on/off 등의 64개 이상의 조합으로 명명된다.계산 템플릿은 각각 변환된 결과를 다양한 반올림 템플릿에 전달한다.일반적으로 미터 대 피트(meter-to-ft)와 같은 일반적인 변환은 {{Convert 31m ft}}에 의해 20-26 템플릿이 호출된다.미터 대 피트 변환(생성 시: "31m(102ft)") 동안 다음과 같은 20개의 템플릿이 사용된다.모든 템플릿은 이름순으로 나열됨(호출된 순서대로 나열되지 않음):
- 템플릿:변환(보기 원본)(보호됨)
- 템플릿:변환/LoffAoffDbSoff(보기 소스) (보호됨)
- 템플릿:변환/LoffAonSoff(보기 소스)(보호됨)
- 템플릿:변환/ft(뷰 소스)(보호됨)
- 템플릿:변환/m(보기 소스)(보호됨)
- 템플릿:변환/numdisp(보기 소스)(보호됨)
- 템플릿:변환/numdisp/a(보기 소스)(보호됨)
- 템플릿:변환/회전(화면 소스)(보호됨)
- 템플릿:최대 2개(보기 소스)(보호됨)
- 템플릿:Ordomag(보기 소스) (보호됨)
- 템플릿:Ordomag/x(보기 소스)(보호됨)
- 템플릿:정밀도(뷰 소스)(보호됨)
- 템플릿:정밀도/0(화면 소스)(보호됨)
- 템플릿:정밀도/00(화면 소스)(보호됨)
- 템플릿:정밀도/a(뷰 소스)(보호됨)
- 템플릿:Rnd(보기 소스)(보호됨)
- 템플릿:Rnd/- (보기 소스)(보호됨)
- 템플릿:Rnd/a (2010년 4월 5일 이후 우회)
- 템플릿:Rnd/b1(화면 소스)(보호됨)
- 템플릿:Rnd/c4dec1 (보기 소스)(보호됨)
m-to-feet에 대한 변환 계수 "b"는 템플릿에 정의되어 있다.변환/ft(더 큰 숫자에 대해 작동할 수 있을 만큼 충분히 긴 정밀도)해당 템플리트가 템플리트 호출:실제 계산이 이루어지는 변환/LoffAoffDbSoff는 파라미터 1에 변환 계수 "b"를 곱한 값으로 한다.출력량이 템플릿에 전달됨:정밀도를 결정하는 변환/원형(템플릿 사용:최대/2 & 템플릿:템플릿에 전달된 서도마그):라운딩을 수행하는 Rnd.결과를 변경하려면, 발을 포함하는 변환에 기초하여 매개변수를 T:Convert/ft에서 T:Convert/LoffAoffDbSoff로 전달하고, 반올림량이 계산되는 T:Convert/round로 전달해야 한다.정밀도 이동의 경우, 0으로 디폴트되는 추가 명명 매개변수로서 시프트 값을 전달할 수 있지만, 정밀도를 추가하기 위한 추가 용어로서 T:Convert/Round에 포함될 수 있다.이 방법은 T:Convert/ft 내에서 시프트 옵션을 설정할 수 있지만 표시하기 전에 최종 값에 영향을 미친다.
템플릿의 이동 정밀도:변환/원형
2009년 10월 8일:템플릿과 같은 최상위 반올림 템플릿:변환기/원형을 변경하여 미터기 대 피트의 변환을 +1 유의 자릿수로 증가시키는 것과 같은 정밀 이동량 "pshift"을 수용할 수 있다.그러면 "65 m"의 값은 213 ft를 산출하는 기본값이 된다.
- 템플릿:변환/원형 - "+{{{pshift 0}}" 추가
- {{#ifexpr:{{{2}}}=0 0 {{formatnum:{{rnd {{}}}}{{max/2 {{#expr:({{max/2}}}}}}+{{5}}-0.5+(ln2/ln10) 라운드0}}}{#expr:1}}-{ordomag {{2}}}}}}}+{{pshift 0}}}}}}}}}}}}}}}}}}}}}}}}}}}
(기존 2007 템플릿 크기 제한으로 인해 코딩에 공백이 없음).
pshift=1은 "32m"을 고정시켜 "32m(105ft)"를 105ft로 세계 표준과 일치하도록 하며, 103.3-106.6ft의 라운딩 한계치 사이입니다.일반적인 (10대) 사용자는 적절한 시그니처=3(또는 더 많은 자릿수를 위해)을 지정할 필요 없이 {{Convert 32m}만 요청할 수 있다.템플릿을 재프로그래밍하고 pshift를 통과시키려면 큰 단위에 따라 pshift 값을 설정하기 위해 다른 하위 단위를 변경해야 하지만, 다른 템플릿/컨버전스는 변경되지 않고 기본 pshift=0만 사용한다.또한, 우리는 지금 그 템플릿에 설명 HTML 설명을 추가할 수 있다.pshift=1의 값은 196 km에서 마일까지와 같은 다른 변환에는 너무 클 것이다.따라서 pshift는 모든 변환에 대해 설정되지 않고 대규모 단위에 대해서만 설정될 것이다.보다 우아한 해법으로서(미래에는) 일반적으로 스케일 팩터가 1, (또는 2)보다 크면 pshift=1을 설정한다고 생각한다.
테스트 결과 예제
실험 코드를 사용하여 결과를 비교하는 예는 다음과 같다.
- Gconvert -
Gconvert - 잘못된 매개 변수: adj=yes; 형용사 모드의 경우 adj=on 또는 adj=off를 시도하십시오. - Gconvert - 19인치(cm)
- Gconvert - 32m(ft)
- Gconvert - 83kg(lb)
- Gconvert - 200km(mi)
- Gconvert - 200km(mi) - 라운드 1
- Gconvert - 8,848m(ft)
- Gconvert - 88*100+48m(ft)
- Gconvert - 29 * 1,000+29피트(m)
- Gconvert - 사용자:Wikid77/템플릿:변환/
- Gconvert - 8,848m(ft) -rnd -1
- Gconvert - 6피트 2인치(cm)
- Gconvert - 6피트 2인치(m)
- Gconvert - 6피트 2인치(m) -rnd 0
- {{콘브이 8,848pm=on}} - {{콘버트/길이 계산 8,848pm=on}}}
- {{변환/길이 계산 67m}} - {{변환/길이 계산 67m}}
- {{변환 67m}}-
그것들은 2008년과 2009년 사이에 지금까지 언급된 몇몇 논문들이다.이들 중 상당수는 템플릿의 토크 페이지에서 논의된 바 있다.Template_talk:개종하다.이 에세이는 엑스포로 의도된 것이 아니라 이 모든 문제들이 수년간 지속되어 왔다는 일반적인 경고에 불과하다.한편, 보다 적절하거나 정확한 변환을 계산하려고 하는 대체 템플릿(예: {{Kmbot} )은 빠르게 삭제되어 (논의 없이) Template에 의해 생성되는 엉성하고 부정확한 결과에 의존할 수밖에 없다.2009년 10월에도 변환하십시오.