AIパーソナル・ラーニング
と実践的なガイダンス

SemHash: データクリーニング効率を向上させるセマンティックテキスト重複排除の高速実装

はじめに

SemHashは、意味的類似性によってデータセットの重複を排除するための軽量で柔軟なツールです。Model2Vecの高速な埋め込み生成とVicinityの効率的なANN(近似最近傍)類似検索を組み合わせています。SemHashは単一データセットの重複除去(トレーニングセットのクリーニングなど)と複数データセットの重複除去(テストセットとトレーニングセットの重複がないことの確認など)の両方をサポートしています。テキストリストのような単純なデータセットだけでなく、複数列の QA データセットのような複雑なデータセットにも適している。さらに、重複排除の結果をチェックする機能もあり、データクリーニングプロセスの理解と最適化を容易にします。

 

機能一覧

  • 高速エンベッディング生成:高速かつ正確なエンベッディングのためにModel2Vecを使用してエンベッディングを生成します。
  • 効率的な類似性探索:ビシニティによる効率的なANN類似性探索。
  • 単一データセットの重複排除:単一データセットをクリーンアップし、重複データを削除する。
  • 複数データセットの重複排除:データ漏洩を防ぐため、複数のデータセット間で重複がないようにする。
  • 複数列データセットの重複排除:QAデータセットのような複雑なデータセットの重複排除をサポート。
  • 重複排除結果チェック:重複排除結果の詳細なチェック機能を提供し、データクリーニングプロセスの最適化を支援する。

 

ヘルプの使用

設置プロセス

  1. ターミナルまたはコマンドラインツールを開く。
  2. 次のコマンドを入力して、SemHashをインストールします:
   pip install semhash

使用方法

単一データセットの重複排除

  1. データセットを読み込む:
   from datasets import load_dataset
from semhash import SemHash
texts = load_dataset("ag_news", split="train")["text"].
  1. SemHashインスタンスを初期化します:
   semhash = SemHash.from_records(records=texts)
  1. データセットの重みを取り除く:
   deduplicated_texts = semhash.self_deduplicate().deduplicated

複数データセットの重複排除

  1. 2つのデータセットをロードする:
   train_texts = load_dataset("ag_news", split="train")["text"].
test_texts = load_dataset("ag_news", split="test")["text"].
  1. SemHashインスタンスを初期化します:
   semhash = SemHash.from_records(records=train_texts)
  1. テストデータセットの重み付けを解除する:
   deduplicated_test_texts = semhash.deduplicate(records=test_texts, threshold=0.9).deduplicated

複数列データセットの重複排除

  1. 複数列のデータセットを読み込む:
   dataset = load_dataset("squad_v2", split="train")
records = [dict(row) for row in dataset] (レコード)
  1. SemHashインスタンスを初期化します:
   semhash = SemHash.from_records(records=records, columns=["question", "context"])
  1. データセットの重みを取り除く:
   deduplicated_records = semhash.self_deduplicate().deduplicated

重み付けなしの結果チェック

  1. 重複を削除したテキストを表示します:
   result = semhash.self_deduplicate(records=texts, threshold=0.99)
for duplicate in result.duplicates:
print("RECORD:")
print(duplicate.records)
if duplicate.exact: print("完全一致!")
print("完全一致!")
print("完全一致!")
print("重複:")
for corpus_duplicate in duplicate.duplicates: print(corpus_duplicate)
print(corpus_duplicate)
print("-" * 25)

以上の手順で、データセットのセマンティック重複排除をSemHashで素早く開始し、データクリーニングの効率を向上させることができます。


無断転載を禁じます:チーフAIシェアリングサークル " SemHash: データクリーニング効率を向上させるセマンティックテキスト重複排除の高速実装

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語