複数の基準を使用してアイテムをグループ化するための最適な汎用戦略
-
05-07-2019 - |
質問
オブジェクト指向アプローチを使用して解決したい、シンプルで現実的な問題があります。 ハードドライブが混乱しています。 1.500.000個のファイル、重複、完全な重複フォルダーなどがあります...
最初のステップは、もちろん、すべてのファイルをデータベースに解析することです。これまでのところ問題はありませんが、今では「自然にグループ化された」種類の素晴らしいエントリがたくさんありました。この単純なグループ化の例は、次のような単純なクエリを使用して取得できます。
- 100MBを超えるすべてのファイルを提供する
- 3日より古いすべてのファイルを表示する
- docxで終わるすべてのファイルを受け取る
しかし、もう少し自然な意味を持つグループを見つけたいと仮定します。これには、「ユースケース」に応じてさまざまな戦略があります。
ダウンロードしたすべてのファイルを最初にデスクトップに置くという悪い習慣があると仮定します。次に、ZIPファイルを常に削除せずに、適切なフォルダーに展開します。私はそれらを「屋根裏部屋」に移動しますフォルダ。システムでは、このグループのファイルを見つけるには、時間指向の検索アプローチと、「ZIPが同じかどうかをチェックしてからフォルダX」を組み合わせることもできます。適切です。
ファイルを複製する別の悪い習慣があると仮定します。 素敵な構造と、別の乱雑なフォルダにあります。クリーンフォルダーには20個の画像ギャラリーがあり、乱雑なフォルダーには5個の複製ギャラリーと1個の新しいギャラリーがあります。人間のユーザーは、「ああ、それはただの複製であり、それは新しいものだ」と表示することで、このロジックを簡単に識別できるので、新しいフォルダーをクリーンフォルダーに入れて、すべての複製をゴミ箱に入れます」
それでは、ここで要点を説明します。
このような状況に取り組むために使用する戦略またはパターンの組み合わせ。 「最も難しい」フィルタをチェーンした場合、勝つだろうし、システムに「テスト」させる方法がわからない。適切な組み合わせに。そして、それは単なるフィルタリング以上のものであるように思えます。複数の基準を組み合わせて「ベスト」を見つけることによる動的なグループ化グループ。
非常に大まかなアプローチの1つは次のとおりです。
- 最初は、すべてのファイルが等しい
- 最初の、そうではない「良い」 groupはディレクトリです
- あなたが大きくてきれいなディレクトリである場合、ポイント(均等に分配された名前)を獲得します
- すべてのファイルの作成日が同じ場合、「自動作成」される可能性があります
- あなたがProgram-Filesの子供である場合、私はあなたをまったく気にしません
- グループAをグループCに移動すると、「エントロピー」が改善されます
この状況に最適なパターンは何ですか。戦略、フィルター、パイプ、「グループ化」..コメントを歓迎します!
回答に応じて編集:
タグ付けアプローチ: もちろん、タグ付けは私の心を越えました。しかし、どこで線を引きますか。 InDirTag、CreatedOnDayXTag、TopicZTag、AuthorPTagなど、さまざまなタグタイプを作成できます。これらのタグは階層構造で構成することもできますが、グループ化の方法は残ります。しかし、私はこれにいくつかの考えを与え、ここに私の洞察を追加します。
先延ばしのコメント: はい、そうですね。しかし、これらのファイルは、私が思いつくことができる最も単純な例にすぎません(現時点で最も関連性の高いものです)。実際には、関連するデータを動的な方法でグループ化する全体像の一部です。これを強調するために、もっと抽象的にしたほうがいいかもしれません:私はツールのタグ付けツールや検索エンジンではなく、アルゴリズムやパターンこの問題にアプローチするには...(またはタグ付けなどのアイデア)
クリス
解決
解決策はありませんが(見たいと思います)、ファイルから明確な名前、サイズ、タイムスタンプ以外のメタデータを抽出することをお勧めします。
- MP3 ID3タグなどの帯域内メタデータ、EXE / DLLのバージョン情報、HTMLタイトルとキーワード、Officeドキュメントの概要情報など。画像ファイルでも興味深いメタデータを持つことができます。重複を探す場合は、コンテンツ全体のハッシュが役立ちます。
- NTFS代替データストリームに保存できる帯域外メタデータ-たとえばOffice以外のファイルの[概要]タブで編集できるもの
- ブラウザは、ファイルをダウンロードした場所に関する情報を保持します(ただし、Operaはそれを長期間保持しません)。
他のヒント
手続きをしています。それを止めて、混乱をきれいにしてください。本当に大きい場合は、次の戦術をお勧めします。
- ドライブ上のすべてのもののコピーを外部ディスク(USBなど)に作成します
- システムのクリーンインストールを行う
- 何かが必要だとわかったらすぐに、コピーからそれを取得し、明確に定義された場所に置きます
- 6か月後、外付けドライブを捨てます。そこにあるものはどれもそれほど重要ではありません。
Googleデスクトップをインストールすることもできます。これにより、混乱は解消されませんが、少なくとも効率的に検索できます。
将来これが起こらないようにするには、コンピューター上で物事を整理する方法を変更する必要があります。
これが役立つことを願っています。