Table of Contents
Fetching ...

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.

SoftMatcha: A Soft and Fast Pattern Matcher for Billion-Scale Corpus Searches

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.

Paper Structure

This paper contains 42 sections, 9 figures, 7 tables, 1 algorithm.

Figures (9)

  • Figure 1: Preprocessing: Build the inverted index of the corpus text.
  • Figure 2: Matching Step 1: Soften the pattern into the soft pattern.
  • Figure 3: Matching Step 2-1: Get the soft inverted index.
  • Figure 4: Matching Step 2-2: Find the soft matches.
  • Figure 6: Running time (sec) of indexing and search in the English and Japanese Wikipedia articles.
  • ...and 4 more figures