Google Spread Sheet で、
似ている 文字列を 調べる 方法
一般的な 検索方法
以下の
完全一致
文字列が完全に 一致するかを 判定する 方法です。 部分一致
SQL でいうと like '%xx%'
による 比較で ヒットする データを 抽出する 方法です。
RDB の場合、 index が 効きません。 前方一致
SQL でいうと like '%xx'
による 比較で ヒットする データを 抽出する 方法です。
RDB の場合、 index が 効きます。 後方一致
SQL でいうと like 'xx%'
による 比較で ヒットする データを 抽出する 方法です。 文字列同士の
距離の 比較
ルーベンシュタイン距離
、ジャロ・ウィンクラー距離
という 距離の 求め方が あります。
この記事では、 文字列の 距離に ついて 記載します。
Google スプレッドシート での 関数
完全一致
完全一致の判定は EXACT
を使用すると 実現できます。 部分一致
一部 ワイルドカード*
が使用可能な 式が あり、 その 式を 使用すると 実現できます。 前方一致
部分一致と同じ式で *xxx
指定することで 実現できます。 後方一致
部分一致と同じ式で xxx*
指定することで 実現できます。 文字列同士の
距離の 比較
ルーベンシュタイン距離を計算する Function を 作成している 方が いました。 mlemos/lev-dis-google-sheets: Levenshtein Distance (Edit Distance) function for Google Sheets を コンテナバインドスクリプトと して 登録すれば、 式と しても 使用する ことができます。
テキストの 補正
検索、
一般的な 補正の 方法
全角半角変換
半角または、全角を どちらかに 統一します。 大文字小文字変換
大文字または、小文字を どちらかに 統一します。 全角、
半角スペースの 置換
全角、半角スペースを どちらかに 置換、 または なかった ことにします。
全角半角変換
を行っていれば 実施は 不要かもしれません。 名寄せ
(株)
を株式会社
に置換する 等の 処理を 行います。
別名、俗称を 正式名称に 変換する 等です。
Google スプレッドシート での 式の 説明
全角半角変換 (半角 > 全角変換)
半角 > 全角変換を行う Excel で いう JIS
関数は2018年9月時点では Google Spread Sheet にはありません。
ただ、function を 公開してくれている 方が いて、 部分的には 変換が 可能です。 全角半角変換 (全角 > 半角変換)
全角 > 半角変換は、ASC
関数で実現する ことができます。 大文字小文字変換 (大文字 > 小文字変換)
大文字 > 小文字変換は、LOWER
で実現できます。 大文字小文字変換 (小文字 > 大文字変換)
小文字 > 大文字変換は、UPPER
で実現できます。 大文字小文字変換 (先頭の
文字のみ 大文字化)
他、先頭の 一文字だけを 大文字に 変換する PROPER
という 関数が あります。 全角、
半角スペースの 置換
これは、ASC で 全角スペース > 半角スペースの 置換は 実現できます。 名寄せ
REGEXEXTRACT
、REGEXREPLACE
、REPLACE
、SUBSTITUTE
を使って 実現できます。
参考
以下、
テキストの
ルーベンシュタイン距離
- Javascriptで
レーベンシュタイン距離の 実演 - javascriptで
実装された 編集距離 (レーベンシュタイン距離, Levenshtein Distance)を 検証してみました。 - @camelmasaの 開発日記 - 文字列間の
レーベンシュタイン距離を 求める | blog.PanicBlanket.com
残存エラー率
調査した
文字列の 距離に ついて
スプレッドシート の 関数
テキスト関連の
Python
Python の
JavaScript difflib の 実装
JavaScript の
cemerick/jsdifflib: A javascript library for diffing text and generating corresponding HTML views
Lodashを
使って 2つの オブジェクトの Diffを 抽出する - tacamy–log
Lodash でdiff を 検出します。 文字列の それではないです。
Jaro-Winkler 距離 JavaScirpt での 実装
Jaro-Winkler 距離 を
jaro-winkler-JS/jaro_winkler.js at master · thsig/jaro-winkler-JS
shannonarcher/jarowinkler-js: Approximate string comparison using Jaro-Winkler distance formula.
以上です。
コメント