SoftMatcha: A Soft and Fast Pattern Matcher for Billion-Scale Corpus Searches
Hiroyuki Deguchi, Go Kamoda, Yusuke Matsushita, Chihiro Taguchi, Kohei Suenaga, Masaki Waga, Sho Yokoi
TL;DR
SoftMatcha tackles the challenge of pattern search in massive corpora by introducing a soft pattern matcher that uses word embeddings to tolerate orthographic variation and paraphrase. It combines a two-stage process—softening the pattern over the vocabulary via cosine similarity of embeddings, followed by efficient hard matching using an inverted index—to achieve complete enumeration in under a second on billion-scale data. The approach outperforms exact string matching in terms of recall for semantically related variants and competes with dense vector search in speed while providing precise location of matches. The authors validate the method on English and Japanese Wikipedia corpora and a Latin corpus, demonstrating practical applicability for NLP and corpus linguistics, and they provide an accessible web demo and open-source implementations.
Abstract
Researchers and practitioners in natural language processing and computational linguistics frequently observe and analyze the real language usage in large-scale corpora. For that purpose, they often employ off-the-shelf pattern-matching tools, such as grep, and keyword-in-context concordancers, which is widely used in corpus linguistics for gathering examples. Nonetheless, these existing techniques rely on surface-level string matching, and thus they suffer from the major limitation of not being able to handle orthographic variations and paraphrasing -- notable and common phenomena in any natural language. In addition, existing continuous approaches such as dense vector search tend to be overly coarse, often retrieving texts that are unrelated but share similar topics. Given these challenges, we propose a novel algorithm that achieves \emph{soft} (or semantic) yet efficient pattern matching by relaxing a surface-level matching with word embeddings. Our algorithm is highly scalable with respect to the size of the corpus text utilizing inverted indexes. We have prepared an efficient implementation, and we provide an accessible web tool. Our experiments demonstrate that the proposed method (i) can execute searches on billion-scale corpora in less than a second, which is comparable in speed to surface-level string matching and dense vector search; (ii) can extract harmful instances that semantically match queries from a large set of English and Japanese Wikipedia articles; and (iii) can be effectively applied to corpus-linguistic analyses of Latin, a language with highly diverse inflections.
