Files
2nd/10_Wiki/Topics/AI_and_ML/Search-Methodology.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

6.6 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-search-methodology Search Methodology 10_Wiki/Topics verified self
Systematic Search
Literature Search
Research Methodology
none A 0.88 applied
research
methodology
prisma
systematic-review
literature-search
2026-05-10 pending
language framework
python none

Search Methodology

매 한 줄

"매 reproducible literature search — define question, query strategy, screen, extract, synthesize". PRISMA 2020 매 standard for systematic reviews. 매 2026 update: AI-augmented (Elicit, Consensus, Undermind) + traditional database search 매 hybrid.

매 핵심

매 Research question framing

  • PICO (clinical): Population, Intervention, Comparator, Outcome.
  • PEO (qualitative): Population, Exposure, Outcome.
  • SPIDER (mixed methods): Sample, Phenomenon, Design, Eval, Research-type.

매 PRISMA 2020 flow

  1. Identification: 매 records from databases + registers + other.
  2. Screening: 매 title/abstract → eligible.
  3. Eligibility: 매 full-text review.
  4. Included: 매 final corpus → synthesis.

매 Database strategy

  • Medical: PubMed, EMBASE, Cochrane CENTRAL.
  • CS: Google Scholar, Semantic Scholar, ACM/IEEE/arXiv.
  • Social: Web of Science, Scopus, PsycINFO.
  • 매 매 multiple databases 매 essential — 매 single source 매 missing 30-50%.

매 Query construction

  • Boolean: AND, OR, NOT.
  • 매 controlled vocabulary: MeSH, Emtree, ACM CCS.
  • 매 truncation: child* matches child, children.
  • 매 proximity: "machine learning" NEAR/3 medicine.

매 AI-augmented (2024-2026)

  • Elicit: 매 question → relevant papers + extraction.
  • Consensus: 매 yes/no claim verification.
  • Undermind: 매 deep search agents.
  • OpenAlex API: 매 250M scholarly works open.

매 응용

  1. Systematic review / meta-analysis.
  2. Tech due diligence.
  3. PhD literature review.
  4. Patent landscape analysis.

💻 패턴

Boolean query construction

from itertools import product

terms = {
    "concept_a": ["machine learning", "ML", "deep learning"],
    "concept_b": ["medical imaging", "radiology", "diagnostic imaging"],
    "concept_c": ["systematic review", "meta-analysis"],
}

def build_query(terms):
    blocks = []
    for concept, alts in terms.items():
        block = "(" + " OR ".join(f'"{t}"' for t in alts) + ")"
        blocks.append(block)
    return " AND ".join(blocks)

print(build_query(terms))
# ("machine learning" OR "ML" OR "deep learning") AND ("medical imaging" ...) AND ...

PubMed E-utilities

import requests

def pubmed_search(query, max_results=200):
    base = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
    r = requests.get(f"{base}/esearch.fcgi", params={
        "db": "pubmed", "term": query, "retmax": max_results, "retmode": "json"
    })
    pmids = r.json()["esearchresult"]["idlist"]
    r2 = requests.get(f"{base}/esummary.fcgi", params={
        "db": "pubmed", "id": ",".join(pmids), "retmode": "json"
    })
    return r2.json()["result"]

Semantic Scholar API

def s2_search(query, limit=100):
    url = "https://api.semanticscholar.org/graph/v1/paper/search"
    fields = "title,abstract,authors,year,citationCount,openAccessPdf"
    r = requests.get(url, params={"query": query, "limit": limit, "fields": fields})
    return r.json()["data"]

Deduplication

from rapidfuzz import fuzz

def dedupe(records):
    unique = []
    seen_titles = []
    for r in records:
        title = r["title"].lower().strip()
        if any(fuzz.ratio(title, t) > 92 for t in seen_titles):
            continue
        seen_titles.append(title)
        unique.append(r)
    return unique

Screening with LLM (title+abstract)

from anthropic import Anthropic

client = Anthropic()

def llm_screen(record, inclusion_criteria):
    prompt = f"""Inclusion criteria: {inclusion_criteria}

Title: {record['title']}
Abstract: {record['abstract']}

Decision (INCLUDE / EXCLUDE / UNSURE) + 1-line reason:"""
    r = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=100,
        messages=[{"role": "user", "content": prompt}],
    )
    return r.content[0].text

# 매 always 매 human verify UNSURE + sample of INCLUDE/EXCLUDE.

PRISMA flow tracking

class PRISMA:
    def __init__(self):
        self.counts = {
            "identified_db": 0, "identified_reg": 0, "identified_other": 0,
            "duplicates": 0, "screened": 0, "excluded_screen": 0,
            "fulltext_sought": 0, "fulltext_unavailable": 0,
            "fulltext_assessed": 0, "excluded_eligibility": {},
            "included": 0,
        }
    def render(self):
        for k, v in self.counts.items():
            print(f"{k}: {v}")

Forward / backward citation chasing

def snowball(seed_dois, depth=1):
    frontier = set(seed_dois)
    found = set()
    for _ in range(depth):
        new = set()
        for doi in frontier:
            refs = s2_get_references(doi)
            cites = s2_get_citations(doi)
            new.update(refs + cites)
        found.update(frontier)
        frontier = new - found
    return found

매 결정 기준

상황 Approach
Cochrane systematic review 매 PRISMA 2020 + 2-reviewer double screen
Tech scouting 매 AI tools (Elicit, Consensus) + Semantic Scholar
Patent search 매 EPO Espacenet + PatentScope
Quick lit review 매 Google Scholar + snowball
AI-augmented full review 매 LLM screen + 100% human verify

기본값: 매 PRISMA 2020 + Boolean across ≥3 databases + LLM-assist screening + human verification.

🔗 Graph

🤖 LLM 활용

언제: 매 large-corpus screening (10k+ titles), 매 extraction template fill, 매 query expansion. 언제 X: 매 final inclusion decision (매 always human), 매 citation accuracy claim (매 hallucination risk).

안티패턴

  • Single database: 매 30-50% missing.
  • No protocol: 매 publication bias 매 invisible.
  • Single reviewer: 매 ≥2 with kappa agreement.
  • LLM-only screening: 매 hallucination + bias 매 verify 100%.
  • No PRISMA flow: 매 unreproducible.

🧪 검증 / 중복

  • Verified (PRISMA 2020 statement, Cochrane Handbook v6.4).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — PRISMA, Boolean, AI-augmented tools