]> www.fi.muni.cz Git - pan13-paper.git/blob - pan13-paper/yenya-text_alignment.tex
Uprava spolecnych casti ohledne text alignment
[pan13-paper.git] / pan13-paper / yenya-text_alignment.tex
1 \section{Text Alignment}~\label{text_alignment}\r
2 \r
3 \subsection{Overview}\r
4 \r
5 Our approach at the text alignment subtask of PAN 2013 uses the same\r
6 basic principles as our previous work in this area, described\r
7 in \cite{suchomel_kas_12}, which in turn builds on our work for previous\r
8 PAN campaigns \cite{Kasprzak2010}, \cite{Kasprzak2009a}:\r
9 \r
10 We detect {\it common features} between source and suspicious documents,\r
11 where the features we currently use are word $n$-grams, and stop-word $m$-grams\r
12 \cite{stamatatos2011plagiarism}. From those common features (each of which\r
13 can occur multiple times in both source and suspicious document), we form\r
14 {\it valid intervals}\footnote{%\r
15 See \cite{Kasprzak2009a} for the algorithm for computing valid intervals;\r
16 a similar approach is also used in \cite{stamatatos2011plagiarism}.}\r
17 of characters\r
18 from the source and suspicious documents, where the interval in both\r
19 of these documents is covered ``densely enough'' by the common features.\r
20 \r
21 We then postprocess the valid intervals, removing the overlapping detections,\r
22 and merging the detections which are close enough to each other.\r
23 \r
24 For the training corpus,\r
25 our unmodified software from PAN 2012 gave the following results\footnote{%\r
26 See \cite{potthastframework} for definition of {\it plagdet} and the rationale behind this type of scoring.}:\r
27 \r
28 \def\plagdet#1#2#3#4{\par{\r
29 $\textit{plagdet}=#1, \textit{recall}=#2, \textit{precision}=#3, \textit{granularity}=#4$}\hfill\par}\r
30 \r
31 \plagdet{0.7235}{0.6306}{0.8484}{1.0000}\r
32 \r
33 We take the above as the baseline for further improvements.\r
34 In the next sections, we summarize the modifications we did for PAN 2013.\r
35 \r
36 \subsection{Alternative Features}\r
37 \label{altfeatures}\r
38 \r
39 In PAN 2012, we have used word 5-grams and stop-word 8-grams.\r
40 This year we have experimented with different word $n$-grams, and also\r
41 with contextual $n$-grams as described in \cite{torrejondetailed}.\r
42 Modifying the algorithm to use contextual $n$-grams created as word\r
43 5-grams with the middle word removed (i.e. two words before and two words\r
44 after the context) yielded better score:\r
45 \r
46 \plagdet{0.7421}{0.6721}{0.8282}{1.0000}\r
47 \r
48 We have then made tests with plain word 4-grams, and to our surprise,\r
49 it gave even better score than contextual $n$-grams:\r
50 \r
51 \plagdet{0.7447}{0.7556}{0.7340}{1.0000}\r
52 \r
53 It should be noted that these two quite similar approaches (both use the\r
54 features formed from four words), while having a similar plagdet score,\r
55 have their precision and recall values completely different. Looking at the\r
56 training corpus parts, plain word 4-grams were better at all parts\r
57 of the corpus (in terms of plagdet score), except the 02-no-obfuscation\r
58 part.\r
59 \r
60 In our final submission, we have used word 4-grams and stop-word 8-grams.\r
61 \r
62 \subsection{Global Postprocessing}\r
63 \r
64 For PAN 2013, the algorithm had access to all of the source and suspicious\r
65 documents at once. It was not limited to a single document pair, as it was\r
66 in 2012. We have rewritten our software to handle\r
67 all of the documents in one run, in order to be able to do cross-document\r
68 optimizations and postprocessing, similar to what we did for PAN 2010.\r
69 %This required refactorization of most of the code. We are able to handle\r
70 %most of the computation in parallel in per-CPU threads, with little\r
71 %synchronization needed. The parallelization was used especially\r
72 %for development, where it has provided a significant performance boost.\r
73 %The official performance numbers are from single-threaded run, though.\r
74 \r
75 For PAN 2010, we have used the following postprocessing heuristics:\r
76 If there are overlapping detections inside a suspicious document,\r
77 keep the longer one, provided that it is long enough. For overlapping\r
78 detections up to 600 characters, drop them both. We have implemented\r
79 this heuristics, but have found that it led to a lower score than\r
80 without this modification. Further experiments with global postprocessing\r
81 of overlaps led to a new heuristics: we unconditionally drop overlapping\r
82 detections with up to 250 characters both, but if at least one of them\r
83 is longer, we keep both detections. This is probably a result of\r
84 plagdet being skewed too much towards recall (because the percentage of\r
85 plagiarized cases in the corpus is way too high compared to real world),\r
86 so it is favourable to keep the detection even though the evidence\r
87 for it is rather low.\r
88 \r
89 The global postprocessing improved the score even more:\r
90 \r
91 \plagdet{0.7469}{0.7558}{0.7382}{1.0000}\r
92 \r
93 \subsection{Evaluation Results and Future Work}\r
94 \r
95         The evaulation on the competition corpus had the following results:\r
96 \r
97 \plagdet{0.7448}{0.7659}{0.7251}{1.0003}\r
98 \r
99 This is quite similar to what we have seen on a training corpus,\r
100 with only the granularity different from 1.000 being a bit surprising.\r
101 %, given\r
102 %the aggressive joining of neighbouring detections we perform.\r
103 Compared to the other participants, our algorithm performs\r
104 especially well for human-created plagiarism (the 05-summary-obfuscation\r
105 sub-corpus), which is where we want to focus for our production\r
106 systems\footnote{Our production systems include the Czech National Archive\r
107 of Graduate Theses, \url{http://theses.cz}}.\r
108 \r
109 %       After the final evaluation, we did further experiments\r
110 %with feature types, and discovered that using stop-word 8-grams,\r
111 %word 4-grams, {\it and} contextual $n$-grams as described in\r
112 %Section \ref{altfeatures} performs even better (on a training corpus):\r
113 %\r
114 %\plagdet{0.7522}{0.7897}{0.7181}{1.0000}\r
115 \r
116 We plan to experiment further with combining more than two types\r
117 of features, be it continuous $n$-grams or contextual features.\r
118 This should allow us to tune down the aggresive heuristics for joining\r
119 neighbouring detections, which should lead to higher precision,\r
120 hopefully without sacrifying recall.\r
121 \r
122         As for the computational performance, it should be noted that\r
123 our software is prototyped in a scripting language (Perl), so it is not\r
124 the fastest possible implementation of the algorithm used. The code\r
125 contains about 800 non-comment lines of code, including the parallelization\r
126 of most parts and debugging/logging statements.\r
127 \r
128         The system is mostly language independent. The only language dependent\r
129 part of the code is the list of English stop-words for stop-word $n$-grams.\r
130 We use no stemming or other kinds of language-dependent processing.\r
131 \r
132 \r