2017-03-12 8 views
-1

私はスタートアッププロジェクトを持っており、それはファイルに関するものです。私はアルゴリズムを作成しようとしましたが、できませんでした。これらの目的のためにデータベースと一緒にアルゴリズムを作成したいファイルを他のファイルと比較して、前に存在していたかどうかを確認しますか?

データベースにファイルが多数あります(ファイルまたはファイルとの関係は関係ありません)。別のファイルが来たら、そのファイルをすべて私のファイルとそれが80%以上の類似性を持っている場合、私は自分のデータベースに他のすべてのファイルとの類似性が80%未満であるという条件で他のデータベースに保存することはできません。

+0

類似性を定義する:バイトシーケンス、言葉?サポートするファイルタイプは?コードなしで、これはここで話題にはなりません。私は多くの で一つのファイルを比較すると問題を抱えている – dlatikay

+0

@dlatikay親愛なる友人はそれは私のファイルは、私はすべてのファイルの種類で実行したいが、あなたは[見たいかもしれません –

+0

特別にPDFとのdocxタイプ をファイルに固執していない時間 を取ります近くの重複検出](http://stackoverflow.com/a/23053827/572670)は、あなたにとってうまくいくようです。 – amit

答えて

0

3つの変数、類似度、サイズ1およびサイズ2(すべて0に初期化されています)を格納する必要があります。

まず、charからchar(またはビット単位または必要なものすべて)をファイルから比較し始めます。charを読み込むと、charが同じであれば、Similarityで1を増やします。各文字比較の後、Size1とSize2で1を増やします。

ファイルのいずれかが終了するまでこの比較を実行してから、大きなファイルに残っている文字を数え、Size1またはSize2を増やすだけです。

次に、類似性をデータベースのサイズ(Size1またはSize2)で割って、新しいものと80%以上類似しているかどうかを確認します。

希望するもの:

+0

あなたの答えのために私の友人に感謝 しかし、それは2ファイルのために、私は多くのファイル(実際には多くのファイルと多くのファイル)と比較する1つのファイルでそれを実行する場合はそれあまりにも多くの時間がかかります しかし、まだあなたの答えをお寄せいただきありがとうございます;-) –

+0

よく、あなたがチェックしたいファイルを他の人と比較することができます(たとえば、10文字を比較すると最適化できます。異なる、あなたはこの比較をスキップします) – Daniel

+0

あなたは正しいですが、たぶんいくつかの文字を(例えばバイト)をpdfファイルに入れてアップロードしているかもしれません。もしそれが私がチェックしているバイトの範囲の間であれば、それは問題 –

関連する問題