{"id":207,"date":"2017-03-16T14:29:39","date_gmt":"2017-03-16T13:29:39","guid":{"rendered":"http:\/\/antek.atthost24.pl\/?p=207"},"modified":"2017-04-02T23:09:25","modified_gmt":"2017-04-02T21:09:25","slug":"jak-wykrywac-plagiaty-czesc-druga","status":"publish","type":"post","link":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/","title":{"rendered":"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga!"},"content":{"rendered":"<p>W jednej z poprzednich notek opisa\u0142em metody s\u0142u\u017c\u0105ce do wykrywania plagiat\u00f3w, kt\u00f3re bazuj\u0105 na zliczaniu atrybut\u00f3w. Dzisiaj postaram si\u0119 opisa\u0107 i przedstawi\u0107 systemy bazuj\u0105ce na\u00a0metrykach strukturalnych.<\/p>\n<h3>Systemy bazuj\u0105ce na metrykach strukturalnych<\/h3>\n<p>Techniki wykrywania plagiat\u00f3w opieraj\u0105ce si\u0119 na metrykach strukturalnych polegaj\u0105 na badaniu podobie\u0144stwa na podstawie podobnych lub identycznych fragment\u00f3w w badanych plikach. Poni\u017cej opisz\u0119 kilka\u00a0najpopularniejszych system\u00f3w s\u0142u\u017c\u0105cych do wykrywania plagiat\u00f3w w kodach \u017ar\u00f3d\u0142owych program\u00f3w, kt\u00f3re bazuj\u0105 na metryce strukturalnej.<\/p>\n<h4>Dotplot<\/h4>\n<p>Metoda Dotplot jest wizualn\u0105 metod\u0105 znajduj\u0105c\u0105 pasuj\u0105ce do siebie fragmenty tekstu (w szczeg\u00f3lnym przypadku kodu \u017ar\u00f3d\u0142owego). Decyzja o plagiacie jest podejmowana przez u\u017cytkownika analizuj\u0105cego otrzymane wizualne wyniki. Autor systemu uwa\u017ca, \u017ce w\u0142a\u015bnie dzi\u0119ki powierzeniu decyzji o\u00a0plagiacie cz\u0142owiekowi mo\u017cna zdecydowanie podwy\u017cszy\u0107 pr\u00f3g skuteczno\u015bci znajdowania plagiat\u00f3w. System dzia\u0142a w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<ul>\n<li>tokenizacja wej\u015bcia<\/li>\n<li>konkatenacja token\u00f3w z programu A i programu B<\/li>\n<li>przedstawienie wynik\u00f3w w postaci graficznej<\/li>\n<\/ul>\n<p>Aby lepiej pokaza\u0107 dzia\u0142anie algorytmu, poni\u017cej poka\u017c\u0119 przyk\u0142ad dzia\u0142ania algorytmu.<\/p>\n<p>Ci\u0105gi wej\u015bciowe:<\/p>\n<ul>\n<li>Ala ma kota<\/li>\n<li>Kot ma na imie ala<\/li>\n<\/ul>\n<p>Przebieg algorytmu:<\/p>\n<ul>\n<li>tokenizacja: <em>ala<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ma<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>kota<\/em>, <em>kot<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ma<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>na<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>imie<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ala<\/em><\/li>\n<li>konkatenacja: <em>ala<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ma<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>kota<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><\/em><em>kot<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ma<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>na<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>imie<\/em><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2eb7138ffc8f1d6339fa1f5d74d6b1cc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#92;&#100;&#105;&#97;&#109;&#111;&#110;&#100;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"9\" style=\"vertical-align: 0px;\"\/><em>ala<\/em><\/li>\n<li>wyniki w graficznej formie:<br \/>\n\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\">\n<tbody>\n<tr class=\"row-1\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">ala<\/td><td class=\"column-3\">ma<\/td><td class=\"column-4\">kota<\/td><td class=\"column-5\">kot<\/td><td class=\"column-6\">ma<\/td><td class=\"column-7\">na<\/td><td class=\"column-8\">imie<\/td><td class=\"column-9\">ala<\/td>\n<\/tr>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">ala<\/td><td class=\"column-2\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><span class=\"hilite\">XXX<\/span><\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">ma<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">kota<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">kot<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">ma<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">na<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">imie<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-9\"><\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">ala<\/td><td class=\"column-2\"><span class=\"hilite\">XXX<\/span><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td><td class=\"column-9\"><span class=\"hilite\">XXX<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache --><\/li>\n<\/ul>\n<p>Na podstawie tak przedstawionych wynik\u00f3w, osoba analizuj\u0105ca dane z pomoc\u0105 wskaz\u00f3wek, stworzonych przez autora systemu, mo\u017ce stwierdzi\u0107 zaj\u015bcie plagiatu.<\/p>\n<h4>JPlag<\/h4>\n<p>System JPlag jest darmowym systemem do wykrywania plagiat\u00f3w dost\u0119pnym online. System analizuj\u0105c kody \u017ar\u00f3d\u0142owe program\u00f3w dzia\u0142a w dw\u00f3ch etapach:<\/p>\n<ol>\n<li>Parsowanie i tokenizacja kodu \u017ar\u00f3d\u0142owego.<br \/>\nPrzy pomocy parsera i tokenizera kod \u017ar\u00f3d\u0142owy programu jest zamieniany na ci\u0105g token\u00f3w.<\/li>\n<li>Por\u00f3wnanie par ci\u0105g\u00f3w token\u00f3w ze sob\u0105.<br \/>\nKa\u017cda para ci\u0105gu token\u00f3w jest por\u00f3wnywana ze sob\u0105 przy u\u017cyciu algorytmu Greedy String Tiling<br \/>\nPrzy por\u00f3wnywaniu token\u00f3w przestrzegane s\u0105 nast\u0119puj\u0105ce zasady:<\/p>\n<ol>\n<li>Ka\u017cdy token z programu A mo\u017ce zosta\u0107 dopasowany tylko do jednego tokena z programu B.<\/li>\n<li>Podci\u0105gi token\u00f3w s\u0105 znajdowane niezale\u017cnie od ich pozycji.<\/li>\n<li>D\u0142u\u017csze podci\u0105gi s\u0105 bardziej preferowane od kr\u00f3tszych<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Uwzgl\u0119dniaj\u0105c powy\u017csze zasady powsta\u0142 algorytm, kt\u00f3ry przebiega w dw\u00f3ch fazach:<\/p>\n<ol>\n<li>W pierwszej fazie algorytmu w dw\u00f3ch ci\u0105gach token\u00f3w znajdowany jest najd\u0142u\u017cszy wsp\u00f3lny podci\u0105g dla dw\u00f3ch podanych ci\u0105g\u00f3w w\u015br\u00f3d token\u00f3w, kt\u00f3re nie s\u0105 oznaczone.<\/li>\n<li>W drugiej fazie wszystkie tokeny zawieraj\u0105ce si\u0119 w znalezionym w fazie pierwszej podci\u0105gu zostaj\u0105 oznaczone jako u\u017cyte i algorytm wraca do punktu pierwszego.<\/li>\n<\/ol>\n<p>Algorytm jest wykonywany dop\u00f3ki s\u0105 znajdowane dopasowania token\u00f3w o d\u0142ugo\u015bci nie mniejszej ni\u017c ustalony pr\u00f3g.\\par<br \/>\nW listingu poni\u017cej przedstawiono pseudo-kod algorytmu Greedy String Tiling.<\/p>\n<pre class=\"lang:default decode:true \">Greedy-String-Tiling(String A, String B) {\r\n\ttiles = {};\r\n\tdo {\r\n\t\tmaxmatch = MinimumMatchLength;\r\n\t\tmatches = {};\r\n\t\tForall unmarked tokens A(a) in A {\r\n\t\t\tForall unmarked tokens B(b) in B {\r\n\t\t\t\tj = 0;\r\n\t\t\t\twhile (A(a)+j == B(b)+j &amp;&amp; unmarked(A(a+j)) &amp;&amp; unmarked(B(b+j))) {\r\n\t\t\t\t\tj++;\r\n\t\t\t\t}\r\n\t\t\t\tif (j == maxmatch) {\r\n\t\t\t\t\tappend(matches,match(a,b,j));\r\n\t\t\t\t}\r\n\t\t\t\telse if (j &gt; maxmatch) {\r\n\t\t\t\t\tmatches = {match(a,b,j)};\r\n\t\t\t\t\tmaxmatch = j;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}<\/pre>\n<p>Na podstawie wyniku dzia\u0142ania algorytmu jest wyliczane prawdopodobie\u0144stwo w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-2acfc9987adf67f86d10f8d30bc9ce62_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#115;&#105;&#109;&#40;&#65;&#44;&#66;&#41;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#50;&#92;&#99;&#100;&#111;&#116;&#32;&#99;&#111;&#118;&#101;&#114;&#97;&#103;&#101;&#40;&#116;&#105;&#108;&#101;&#115;&#41;&#125;&#123;&#124;&#65;&#124;&#43;&#124;&#66;&#124;&#125;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"29\" width=\"207\" style=\"vertical-align: -9px;\"\/>, gdzie:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.lantkowiak.pl\/wp-content\/ql-cache\/quicklatex.com-0c7a51e19d1e3554d2e0330af045a8a6_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#123;&#99;&#111;&#118;&#101;&#114;&#97;&#103;&#101;&#40;&#116;&#105;&#108;&#101;&#115;&#41;&#32;&#61;&#32;&#92;&#115;&#117;&#109;&#95;&#123;&#109;&#97;&#116;&#99;&#104;&#40;&#97;&#44;&#98;&#44;&#108;&#101;&#110;&#103;&#116;&#104;&#41;&#92;&#105;&#110;&#32;&#116;&#105;&#108;&#101;&#115;&#125;&#108;&#101;&#110;&#103;&#116;&#104;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"22\" width=\"358\" style=\"vertical-align: -8px;\"\/><\/p>\n<p>Obliczone podobie\u0144stwo jest wyra\u017cone w procentach, zatem im wy\u017csza warto\u015b\u0107 tym wi\u0119ksze prawdopodobie\u0144stwo na to, \u017ce mamy do czynienia z plagiatem.<\/p>\n<h4>MOSS<\/h4>\n<p>Ostatnim systemem opieraj\u0105cym si\u0119 na metrykach strukturalnych, kt\u00f3ry opisz\u0119 jest MOSS. G\u0142\u00f3wnym algorytmem systemu jest algorytm <em>Winnowing<\/em>. Jego zasada dzia\u0142ania opiera si\u0119 na <em>k-gramach<\/em>, czyli podci\u0105gach token\u00f3w d\u0142ugo\u015bci k. Algorytm przebiega nast\u0119puj\u0105co:<\/p>\n<ol>\n<li>podanie na wej\u015bcie ci\u0105gu znak\u00f3w<\/li>\n<li>usuni\u0119cie zb\u0119dnych znak\u00f3w<\/li>\n<li>podzielenie ci\u0105gu wej\u015bciowego na k-gramy<\/li>\n<li>zamiana k-gram\u00f3w na hashe<\/li>\n<li>wybranie cz\u0119\u015bci hash\u00f3w, wed\u0142ug odpowiedniego algorytmu &#8211; wybrane hashe tworz\u0105 tzw. odcisk palca programu.<\/li>\n<\/ol>\n<p>Tak przygotowane zestawy odcisk\u00f3w palca s\u0105 ze sob\u0105 por\u00f3wnywane w celu znalezienia jak najwi\u0119kszych wsp\u00f3lnych cz\u0119\u015bci odcisk\u00f3w palc\u00f3w.<\/p>\n<h3>Kr\u00f3tkie podsumowanie<\/h3>\n<p>Dzisiaj pokaza\u0142em bardziej zaawansowane systemy wykrywania plagiat\u00f3w. wed\u0142ug mnie na szczeg\u00f3ln\u0105 uwag\u0119 zas\u0142uguje system JPlag, kt\u00f3ry ma ca\u0142kiem niez\u0142\u0105 skuteczno\u015b\u0107.<\/p>\n<p>W jednym z kolejnych wpis\u00f3w opisz\u0119 jeszcze 2-3 podej\u015bcia do tego \u00a0problemu. Po tej dawce teorii b\u0119dziemy mogli z czystym sumieniem przej\u015b\u0107 do praktyki i implementacji naszego algorytmu \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W jednej z poprzednich notek opisa\u0142em metody s\u0142u\u017c\u0105ce do wykrywania plagiat\u00f3w, kt\u00f3re bazuj\u0105 na zliczaniu atrybut\u00f3w. Dzisiaj postaram si\u0119 opisa\u0107 i przedstawi\u0107 systemy bazuj\u0105ce na\u00a0metrykach strukturalnych. Systemy bazuj\u0105ce&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,19],"tags":[],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","category-dsp2017","category-plagdetector"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"W jednej z poprzednich notek opisa\u0142em metody s\u0142u\u017c\u0105ce do wykrywania plagiat\u00f3w, kt\u00f3re bazuj\u0105 na zliczaniu atrybut\u00f3w. Dzisiaj postaram si\u0119 opisa\u0107 i przedstawi\u0107 systemy bazuj\u0105ce na\u00a0metrykach strukturalnych. Systemy bazuj\u0105ce...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukasz Antkowiak&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-16T13:29:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-02T21:09:25+00:00\" \/>\n<meta name=\"author\" content=\"\u0141ukasz Antkowiak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0141ukasz Antkowiak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/\",\"url\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/\",\"name\":\"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/#website\"},\"datePublished\":\"2017-03-16T13:29:39+00:00\",\"dateModified\":\"2017-04-02T21:09:25+00:00\",\"author\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/blog.lantkowiak.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#website\",\"url\":\"https:\/\/blog.lantkowiak.pl\/\",\"name\":\"Lukasz Antkowiak&#039;s blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.lantkowiak.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6\",\"name\":\"\u0141ukasz Antkowiak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g\",\"caption\":\"\u0141ukasz Antkowiak\"},\"description\":\"dd\",\"url\":\"https:\/\/blog.lantkowiak.pl\/index.php\/author\/antek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog","og_description":"W jednej z poprzednich notek opisa\u0142em metody s\u0142u\u017c\u0105ce do wykrywania plagiat\u00f3w, kt\u00f3re bazuj\u0105 na zliczaniu atrybut\u00f3w. Dzisiaj postaram si\u0119 opisa\u0107 i przedstawi\u0107 systemy bazuj\u0105ce na\u00a0metrykach strukturalnych. Systemy bazuj\u0105ce...","og_url":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/","og_site_name":"Lukasz Antkowiak&#039;s blog","article_published_time":"2017-03-16T13:29:39+00:00","article_modified_time":"2017-04-02T21:09:25+00:00","author":"\u0141ukasz Antkowiak","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"\u0141ukasz Antkowiak","Szacowany czas czytania":"4 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/","url":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/","name":"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga! - Lukasz Antkowiak&#039;s blog","isPartOf":{"@id":"https:\/\/blog.lantkowiak.pl\/#website"},"datePublished":"2017-03-16T13:29:39+00:00","dateModified":"2017-04-02T21:09:25+00:00","author":{"@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6"},"breadcrumb":{"@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2017\/03\/16\/jak-wykrywac-plagiaty-czesc-druga\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/blog.lantkowiak.pl\/"},{"@type":"ListItem","position":2,"name":"Jak wykrywa\u0107 plagiaty? Cz\u0119\u015b\u0107 druga!"}]},{"@type":"WebSite","@id":"https:\/\/blog.lantkowiak.pl\/#website","url":"https:\/\/blog.lantkowiak.pl\/","name":"Lukasz Antkowiak&#039;s blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.lantkowiak.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6","name":"\u0141ukasz Antkowiak","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g","caption":"\u0141ukasz Antkowiak"},"description":"dd","url":"https:\/\/blog.lantkowiak.pl\/index.php\/author\/antek\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":8,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":220,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/207\/revisions\/220"}],"wp:attachment":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}