学生、ライター、研究者のために
コード盗用チェッカー ZeroTell 提供 · 変数名を変えてもコピーは見逃しません
複数の提出コードを貼り付けるかアップロードすると、類似度マトリクスと、一致した行を左右に並べてハイライトした比較が表示されます。1 ファイルをウェブ上の公開コードと照合することもできます。
類似度レポート
ここにレポートが表示されます:類似度マトリクス、最も類似したペアとその一致行の並列表示、またはあなたのコードを含むウェブページ。
コード盗用チェッカーの仕組み
コードを正規化
コメントと空白を取り除き、変数名、関数名、数値、文字列をすべてプレースホルダーに置き換えるので、名前の変更や整形は結果に影響しません。
ファイルごとにフィンガープリントを作成
8 トークンずつ重なり合う並びをハッシュ化し、winnowing で代表的なサンプルを残します。よく知られた MOSS システムと同じ手法です。
すべてのペアを比較
2 つの提出コードが共有するフィンガープリントの割合が類似度となり、最大 10 ファイルまでマトリクスで表示されます。
一致した行を確認
ペアを選ぶと、2 つのファイルが左右に並び、一致した箇所がハイライト表示されます。
2 つのチェック方法
こんな方におすすめ
プログラミングの教員
変数名が変えられていても、構造が共通する提出コードのペアを見つけられます。
ティーチングアシスタント
大量の提出物から、じっくり読むべき数組のペアに絞り込めます。
学生
提出前に、チュートリアルから流用したコードの出典が明記されているかを確認できます。
エンジニアリングマネージャー
リリース前に、コード片が公開リポジトリやフォーラムに載っていないかを確認できます。
よくある質問
できません。フィンガープリント作成前に名前、リテラル、コメント、空白を取り除くため、変数名をすべて変えたコピーでも完全なコピーと同じスコアになります。一致は箇所ごとに検出されるため、関数単位で順序を入れ替えてもスコアはわずかにしか下がりません。
各提出コードを、8 トークンの並びのフィンガープリントの集合に変換します。類似度は 2 つの集合の重なり(共有フィンガープリント数を集合サイズの平均で割った値)で、各ファイルのどれだけの割合が一致しているかもレポートに表示されます。
それだけでは判断できません。配布コード、課題のテンプレート、標準的なアルゴリズム、ごく短い演習問題は自然に重なります。結論を出す前に、ハイライトされた行を読み、関係者と話し合ってください。
ファイル内の特徴的な行を最大 12 行まで、公開ウェブ上で完全一致検索します。非公開リポジトリや他のユーザーの提出物は検索しないため、結果がクリーンでもコードのオリジナリティが証明されるわけではありません。
Pro プラン*では使いません(*フェアユース:比較とウェブ検索はそれぞれ 1 回の利用として数え、1 日あたり最大 300 回です。ウェブ検索は実行した検索の回数も 1 日 1,000 回のウェブ検索枠に数えます)。プランがない場合、2〜10 件の提出コードの比較は 1 クレジット、ウェブ検索は 2 クレジットを使用します。どちらも ZeroTell アカウントが必要です。
いいえ。提出コードはメモリ上で比較され、その後破棄されます。ウェブ検索モードでは、選ばれた行が検索のために検索プロバイダーへ送信されます。