Dadataがアウトレットのリストで重複を探す方法。 アルゴリズムを解析する



当社の顧客は数千の企業のリストを保持しており、通常は手付かずの混乱があります。

農業生産者が全国で商品を販売する店舗のリストを取ります。 店舗名は必要に応じて書き込まれるため、一般的なリストは次のようになります。

  1. ユーラシア
  2. 「さくら」日本料理。
  3. 支配的
  4. ショップブティック「ユーラシア」。
  5. Milenium、LLC、食料品店。
  6. キウイ/ LLC /チェリャビンスク。
  7. エコ製品のスーパーマーケット「支配的」。

ポイント番号1と4-重複、番号3と7-も、しかしそれを把握してください。

しかし、あなたはそれを理解する必要があります:1000のアウトレットのリストに300のテイクがあるとき、メーカーは問題を抱え始めます。


最初の反応は、生きているオペレーターの手をきれいにすることです。 無駄です。 時々、名前が非常にエキゾチックに書かれているので、人々はまだ間違っています。 はい、それは高価です。

既製のソリューションを列挙することで問題を取り上げました。

完成したツールが合わない


古き良きExcelは明らかに、 「Name1 = Name2」という複製条件が機能しないため、タスクに対処しません。 「Name1とName2の類似性> 95%」で同じこと:「Eco-shop」と「LLC「Cosiness "」は95%未満の類似性ですが、これは1つのポイントです。

個人の重複の「ダダトフスキー」 検索も適合しませんでした。 彼は人々を名前、住所、電話のような追加フィールドで比較します。 しかし、氏名を比較するアルゴリズムは氏名には適さず、1つの住所だけで重複を見つけることはできません。多数のブティック部門があるショッピングセンターでは、すべての統計情報が破壊されます。

まだチャンスがありました:Faktorエンタープライズエンジンがあり、名前を登録簿の形式(法人の状態レジストリ)にもたらします。 しかし、彼はどちらも助けませんでした:ポイントの名前はしばしば法人の名前とは何の関係もありません。 Vector + LLCがUyutという名前の場合、Uyutが報告されます。 登録は役に立ちません。

その結果、個人による重複の検索を行い、最終決定しました。 彼は住所を比較しました。名前を比較する方法を教えなければなりませんでした。

名前の意味の基礎を見つける


企業の名前を比較するには、最初にそれらを殻から剥がす必要があります-意味の基礎を見つけるために。 これは正規表現で行います。

句読点をきれいに:

  1. コンマの後にスペースを追加します。
  2. 取り消し線をスペースに変更します。
  3. 名前から文字、数字、スペースを除くすべてを削除します。

典型的なパターンに該当するものはすべて削除します。 アナリストは、アウトレットレポートで10,000件のレコードを調べました。 最後に、彼は名前を散らかすパターンのデータベースを作りました。 Dadataの削除:


必要に応じて、アルゴリズムをバイパスするのは簡単です。パターンはほとんどありません。 しかし、重複の問題は、悪意ではなく標準の欠如が原因で発生します。 実際には、上記で十分です。

OPFを削除します。ZAO、OJSC、PAO、およびタイプ「open。」の復号化。 acc。 合計。

その結果、Dadataが比較する会社名のセマンティックパーツのみが残ります。

セマンティックの基盤とアドレスを比較する


名前の一致自体は非常に弱い基準です。 したがって、「Dadatu」は通常、住所、および場合によっては電話もダウンロードします。

このサービスは、名前のセマンティック基盤を見つけ、アドレスを標準化します。 そして、重複排除自体が始まります。Dadataは入力ファイルからエントリをヒープに収集し、それぞれを比較します。

アルゴリズムはシナリオに従ってペアをチェックします。合計で10個あります。 例:
スクリプト二重確率
名前が一致し、他のフィールドは空です100%
名前は似ていますが、アドレスは一致します95%
名前は一致し、住所は家番号の拡張子(文字、文字など)で区別されます95%
名前は似ていますが、電話は同じです70%
アルゴリズムの特徴は何ですか:


サービスが重複の可能性を見つけると、判定を下します。


このアルゴリズムでは、すべての重複が100%として検出されるわけではありません。 オペレーターが手でそれらを分解できるように、彼は単に同様のポイントをマークします。 改善の余地がありますが、まだ完了しています。

ロボットを機能させる


その間、 重複検索の価格 10倍に引き下げました 。 現在、Dadataは、処理されたレコードごとに1つのコペックだけで同じ人と会社を探しています。


Dadataは最初にファイルを受け入れ、テイクの数を表示してから、支払いたいかどうかを尋ねます。

登録 、ファイルのアップロード-アウトレット、請負業者、顧客、誰でも重複リストを消去できます。

Source: https://habr.com/ru/post/J343150/


All Articles