import { useState } from "react"; import { api } from "../api"; import { useApiCall } from "../hooks/useApiCall"; import ScoreBar from "./ScoreBar"; import StatusMessage from "./StatusMessage"; interface SimilarWord { word: string; score: number; } export default function SimilarWords() { const [word, setWord] = useState(""); const [topK, setTopK] = useState(10); const { data: results, loading, error, run } = useApiCall(); async function handleSearch() { if (!word.trim()) return; await run(() => api.similarWords({ word: word.trim(), top_k: topK }).then((r) => r.similar)); } return (

Similar Words

Find words that appear in similar contexts using transformer embeddings. Unlike Word2Vec (static, one vector per word), this uses the model's contextual understanding.

setWord(e.target.value)} onKeyDown={(e) => e.key === "Enter" && handleSearch()} placeholder="e.g. Epstein, flight, island" />
setTopK(+e.target.value)} min={1} max={50} />
{error && } {results && results.length > 0 && (

Words similar to "{word}" ({results.length})

{results.map((r, i) => ( ))}
WordSimilarity
{r.word}
)}
); }