전체 텍스트 검색

Full-text search

텍스트 검색에서 전체 텍스트 검색은 단일 컴퓨터저장된 문서 또는 전체 텍스트 데이터베이스에 있는 집합을 검색하는 기술을 말합니다.전체 텍스트 검색은 메타데이터를 기반으로 하거나 데이터베이스에 표시되는 원본 텍스트의 일부(예: 제목, 요약, 선택한 섹션 또는 서지 참조)를 기준으로 하는 검색과 구분됩니다.

전체 텍스트 검색에서 검색 엔진은 검색 기준(예: 사용자가 지정한 텍스트)과 일치하려고 시도할 때 저장된 모든 문서의 모든 단어를 검사합니다.전체 텍스트 검색 기술은 1990년대에 [verification needed]온라인 서지 데이터베이스에서 보편화되었습니다.많은 웹 사이트 및 응용 프로그램(워드 프로세싱 소프트웨어 등)은 전체 텍스트 검색 기능을 제공합니다.AltaVista와 같은 일부 웹 검색 엔진은 전체 텍스트 검색 기술을 사용하는 반면, 다른 웹 엔진은 인덱싱 [1]시스템에서 검사한 웹 페이지의 일부만 인덱싱합니다.

색인화

적은 수의 문서를 처리할 때 전체 텍스트 검색 엔진이 쿼리로 문서 내용을 직접 스캔할 수 있으며, 이를 "시리얼 스캔"이라고 합니다.이것은 검색 시 GREP와 같은 일부 도구가 수행하는 작업입니다.

그러나 검색할 문서 수가 많거나 수행할 검색 질의의 양이 많은 경우 전체 텍스트 검색 문제는 색인 작성과 검색의 두 가지 태스크로 구분되는 경우가 많습니다.색인화 단계는 모든 문서의 텍스트를 스캔하고 검색어 목록을 작성합니다(일반적으로 색인이라고 하지만 더 정확하게 일치된 이름으로 지정됨).검색 단계에서는 특정 조회를 수행할 때 원본 문서의 [2]텍스트가 아닌 색인만 참조됩니다.

인덱서는 문서에서 발견된 각 용어 또는 단어에 대해 인덱스에 항목을 작성하고 문서 내의 상대적인 위치를 기록합니다.일반적으로 인덱서는 "the" 및 "and"와 같은 일반적이고 의미가 부족하여 검색에 유용한 중지 단어를 무시합니다.일부 인덱서는 색인화된 단어에 특정 언어 어원을 사용하기도 한다.예를 들어, "드라이브", "드롭", "드라이브"라는 단어는 인덱스에 "드라이브"라는 단일 개념 단어 아래에 기록됩니다.

정밀도 대 리콜의 트레이드오프

저정밀, 저호출 검색 다이어그램

리콜은 검색에 의해 반환된 관련 결과의 양을 측정하는 반면 정밀도는 반환된 결과의 품질을 측정하는 것입니다.리콜은 모든 관련 결과에 대해 반환되는 관련 결과의 비율입니다.Precision은 반환된 총 결과 수로 반환된 관련 결과 수입니다.

오른쪽 다이어그램은 저정밀, 저호출 검색을 나타냅니다.다이어그램에서 빨간색과 녹색 점은 특정 검색에 대한 잠재적 검색 결과의 총 모집단을 나타냅니다.빨간색 점은 관련 없는 결과를 나타내며 녹색 점은 관련 결과를 나타냅니다.연관성은 검색 결과가 내부 원의 중심에 근접한 것으로 나타납니다.표시된 모든 가능한 결과 중 실제로 검색에서 반환된 결과는 밝은 파란색 배경에 표시됩니다.이 예에서는 3개의 가능한 관련 결과에 대해 1개의 관련 결과만 반환되었으므로 리콜 비율은 1/3 또는 33%로 매우 낮습니다.반환된 4개의 결과 중 [3]1개만 관련되었기 때문에 이 예제의 정밀도는 1/4 또는 25%로 매우 낮습니다.

자연어의 모호성으로 인해 전체 텍스트 검색 시스템에는 일반적으로 정밀도를 높이기 위한 정지 단어 기억력을 높이기 위한 정지 단어와 같은 옵션이 포함되어 있습니다.또한 제어된 어휘 검색은 애매한 부분이 제거되도록 문서에 태그를 지정함으로써 정밀도가 낮은 문제를 완화하는 데 도움이 됩니다.정밀도와 리콜의 균형은 간단합니다. 정밀도가 증가하면 전체 리콜이 감소하지만 리콜이 증가하면 [4]정밀도가 저하됩니다.

오양성 문제

전체 텍스트 검색은 의도된 검색 질문과 관련이 없는 많은 문서를 검색할 수 있습니다.이러한 문서를 false positive라고 부릅니다(Type I 오류 참조).관련 없는 문서의 검색은 종종 자연 언어의 고유한 모호성에 의해 발생합니다.오른쪽 예제 다이어그램에서는 잘못된 긍정이 검색에서 반환된 관련 없는 결과(빨간색 점)로 표시됩니다(연청색 배경).

베이지안 알고리즘에 기반한 클러스터링 기술은 잘못된 긍정을 줄이는 데 도움이 됩니다."은행" 검색어의 경우, 클러스터링을 사용하여 문서/데이터 세계를 "금융 기관", "앉을 곳", "저장할 곳" 등으로 분류할 수 있습니다.카테고리에 관련된 단어의 발생에 따라 검색어 또는 검색 결과를 하나 이상의 카테고리에 배치할 수 있습니다.이 기술은 e-discovery [clarification needed]도메인에 광범위하게 도입되고 있습니다.

퍼포먼스 향상

전문 검색의 결점은 다음 두 가지 방법으로 해결되었습니다.사용자에게 검색 질문을 보다 정확하게 표현할 수 있는 도구를 제공하고 검색 정밀도를 향상시키는 새로운 검색 알고리즘을 개발합니다.

향상된 쿼리 도구

  • 키워드문서 작성자(또는 훈련된 인덱서)는 이 주제를 설명하는 단어의 동의어를 포함하여 텍스트의 주제를 설명하는 단어 목록을 제공해야 합니다.키워드를 사용하면 특히 키워드 목록에 문서 텍스트에 없는 검색어가 포함된 경우 검색 기능이 향상됩니다.
  • 필드 제한 검색일부 검색 엔진에서는 "제목" 또는 "작성자"와 같은 저장된 데이터 레코드 의 특정 필드로 전체 텍스트 검색을 제한할 수 있습니다.
  • 부울 쿼리부울 연산자를 사용하는 검색(예:"Encarta"가 아닌 "Enclopedia"와 "Online"은 전체 텍스트 검색의 정확도를 크게 높일 수 있습니다.AND 연산자는 실제로 "이 두 용어를 모두 포함하지 않는 한 문서를 검색하지 마십시오."라고 말합니다.NOT 연산자는 실제로 "이 단어가 포함된 문서를 검색하지 마십시오."라고 말합니다.검색 목록이 너무 적은 수의 문서를 검색하는 경우, OR 연산자를 사용하여 리콜을 늘릴 수 있습니다. 예를 들어 "백과사전"과 "온라인" 또는 "엔카르타"아닌 "인터넷"을 고려해 보십시오.이 검색에서는 "온라인" 대신 "인터넷"이라는 용어를 사용하는 온라인 백과사전에 대한 문서를 검색합니다.이러한 정밀도의 증가는 대개 [5]리콜의 극적인 손실을 수반하기 때문에 매우 일반적으로 역효과를 일으킨다.
  • 구문 검색.구문 검색은 "Wikipedia, 무료 백과사전"과 같이 지정된 문구를 포함하는 문서만 일치시킵니다.
  • 컨셉 검색복합 용어 처리와 같은 다중 단어 개념을 기반으로 하는 검색입니다.이러한 유형의 검색은 많은 전자 정보 검색 솔루션에서 널리 사용되고 있습니다.
  • 일치 검색.일치 검색은 텍스트에서 발생하는 모든 주요 단어와 해당 문맥의 알파벳 순으로 목록을 생성합니다.
  • 근접 검색구문 검색은 지정된 수의 단어로 구분된 두 개 이상의 단어가 포함된 문서만 일치합니다. "Wikipedia" WITHINE2 "free"를 검색하면 "Wikipedia"와 "free"가 서로 두 단어 내에서 나타나는 문서만 검색합니다.
  • 정규 표현.정규 표현식에서는 검색 조건을 정확하게 지정하는 데 사용할 수 있는 복잡하지만 강력한 쿼리 구문을 사용합니다.
  • 퍼지 검색은 지정된 용어와 그 주변의 일부 변동과 일치하는 문서를 검색합니다(를 들어 편집 거리를 사용하여 여러 변동을 임계값으로 함).
  • 와일드카드 검색검색 쿼리에서 별표와 같은 와일드카드 문자를 하나 이상 대체하는 검색입니다.예를 들어 검색 쿼리 "s*n"에서 별표를 사용하면 텍스트에서 "sin", "son", "sun" 등이 검색됩니다.

향상된 검색 알고리즘

구글이 개발페이지랭크 알고리즘은 다른 웹페이지[6]링크된 문서에 더욱 두드러집니다.자세한 예는 검색 엔진을 참조하십시오.

소프트웨어

다음은 전체 텍스트 인덱싱 및 검색을 주로 수행하는 사용 가능한 소프트웨어 제품의 일부 목록입니다.이들 중 일부는 운영 이론 또는 내부 알고리즘에 대한 자세한 설명을 동반하며, 전체 텍스트 검색이 어떻게 수행될 수 있는지에 대한 추가적인 통찰력을 제공할 수 있습니다.

레퍼런스

  1. ^ 실제로 특정 검색 엔진이 어떻게 작동하는지 확인하는 것은 어려울 수 있습니다.웹 검색 서비스에 실제로 채용된 검색 알고리즘은 웹 사업가들이 검색 엔진 최적화 기술을 사용하여 검색 목록에서 두각을 나타낼 것을 우려하여 완전히 공개되는 경우가 거의 없습니다.
  2. ^ "Capabilities of Full Text Search System". Archived from the original on December 23, 2010.
  3. ^ Coles, Michael (2008). Pro Full-Text Search in SQL Server 2008 (Version 1 ed.). Apress Publishing Company. ISBN 978-1-4302-1594-3.
  4. ^ B., Yuwono; Lee, D. L. (1996). Search and ranking algorithms for locating resources on the World Wide Web. 12th International Conference on Data Engineering (ICDE'96). p. 164.
  5. ^ 연구에 따르면 대부분의 사용자는 부울 쿼리의 부정적인 영향을 이해하지 못하고 있습니다.[1]
  6. ^ US 6285999, Page, Lawrence, 1998-01-09 발행, 2001-09-04 "링크된 데이터베이스의 노드 랭킹 방법" 인용문을 포함한 문서의 데이터베이스, 월드 와이드 웹 또는 기타 하이퍼미디어 데이터베이스 등 링크된 데이터베이스 내의 노드에 중요도 순위를 할당하는 방법입니다.문서에 할당된 순위는 문서를 인용하는 문서의 순위에서 계산됩니다.또한 문서의 순위는 다음과 같습니다.."
  7. ^ "SAP Adds HANA-Based Software Packages to IoT Portfolio MarTech Advisor". www.martechadvisor.com.

「 」를 참조해 주세요.