So schwer zu finden, leicht zu ĂŒbersehen und unmöglich auszugeben

Unsere Lebensregeln: Beginnen Sie den Titel von Artikeln mit dem Buchstaben "T" und suchen Sie schnell, genau und vor allem schön nach Textausleihen. Seit mehr als einem Jahr finden wir erfolgreich ĂŒbertragbare Anleihen und schreiben sie mithilfe neuronaler Netze neu. Aber manchmal mĂŒssen Sie absichtlich "sich in den Fuß schießen" und hinkend einen anderen Weg gehen, d. H. Suchen Sie nicht nach Paraphrase oder Plagiaten, sondern lassen Sie nur einen Text in Ruhe. Paradoxerweise tut es weh, aber es ist notwendig. Sagen wir gleich: Wir werden die Bibliographie nicht berĂŒhren. Wie finde ich es im Text? Warum ist es leicht zu sagen, aber viel schwieriger zu tun, als es scheint? All dies ist eine Fortsetzung des Unternehmensblogs von Antiplagiarism , dem einzigen Blog, in dem sie keinen durchgestrichenen Text mögen .



Bildquelle : Fandom.com


Warum so lange brauchen, um diesen zu finden?


ZunĂ€chst eine kleine Theorie. Was ist ein Dokument und wie sollen wir damit umgehen? In der „ArchĂ€ologie des Wissens“ bemerkt M. Foucault : „Die Geschichte organisiert jetzt das Dokument, teilt es auf, organisiert, verteilt die Ebenen neu, legt die RĂ€nge fest, qualifiziert sie nach dem Grad der Signifikanz, isoliert die Elemente, definiert Einheiten, beschreibt die Beziehung.“ Wir sind natĂŒrlich keine Ideenhistoriker, aber wir wissen aus eigener Erfahrung, dass ein Dokument ein Patchwork-Quilt aus verschiedenen zusammengenĂ€hten Elementen ist. Was diese Elemente sind und wie sie miteinander verbunden sind, hĂ€ngt von einem bestimmten Dokument ab. Wenn es sich beispielsweise um studentische Arbeiten handelt, umfasst diese höchstwahrscheinlich: eine Titelseite, Kapitel des Haupttextes, Abbildungen, Tabellen, Formeln, Referenzen und Anwendungen. In einem wissenschaftlichen Artikel wird es höchstwahrscheinlich eine Anmerkung geben, aber die Titelseite fehlt möglicherweise vollstĂ€ndig. Die Sammlung von Artikeln oder Konferenzmaterialien umfasst eine ganze Reihe von Artikeln, von denen jeder seine eigene Struktur hat. Kurz gesagt, jedes Element des Dokuments ist interessant und autark und kann viel darĂŒber aussagen, zu welchem ​​Typ das Dokument selbst gehört.


Im Idealfall möchte jeder - sowohl wir als auch die Lehrer - eine ideale Dokumentstruktur haben und jedes Element so verarbeiten, dass es einer bestimmten Aufgabe entspricht. Der erste Schritt zum Erfolg besteht darin, zu bestimmen, wie der Artikel heißt. Stack_more_layers und ich haben uns entschlossen, nicht zuletzt mit einem Textelement wie „Bibliographie“ zu beginnen. Dies ist das Segment, in dem das Ausleihen von Text fĂŒr den Benutzer am wenigsten interessant ist. Daher muss im Bericht gezeigt werden, dass wir die Bibliographie „gefangen“ haben und nicht danach gesucht haben.


Das Leben ist ein Spektakel. Egal wie lange es dauert. Die Hauptsache ist, dass es am Ende eine Bibliographie geben sollte.


In einer perfekten Welt ist alles schön und das Erscheinungsbild des Dokuments auch. Der Text eines idealen Dokuments ist strukturiert, angenehm zu lesen, und es wird ĂŒberhaupt nicht schwierig sein, eine Bibliographie zu finden, indem Sie den Schieberegler schnell bis zum Ende ziehen. Wie die Praxis gezeigt hat, hat die RealitĂ€t eine völlig andere Struktur.


ZunĂ€chst meinen viele Menschen unter „Bibliographie“ gleichermaßen die folgenden Konzepte: „Referenzliste“, „gebrauchte Literatur“, „Referenzliste“ und sogar mehr als hundert (sic!) Titel. Im Allgemeinen gibt es fĂŒr solche Dinge Regeln fĂŒr die Gestaltung von Literaturhinweisen und Aufzeichnungen, nach denen Sie eine Liste von Referenzen aus der Textebene herausziehen können. Sagen wir mehr - es gibt sogar einen GOST fĂŒr das Design dieser DatensĂ€tze . Hier zum Beispiel die korrekte Gestaltung eines Titelsatzes fĂŒr ein bekanntes Buch:



Es ist wahr, dass das Handbuch zur Gestaltung von Aufzeichnungen "nach GOST" fast 150 Seiten umfasst. FĂŒr die Registrierung von Literaturhinweisen in nicht gedruckten Veröffentlichungen gibt es ein separates GOST fĂŒr mehr als 20 Seiten. Es stellt sich jedoch eine vernĂŒnftige Frage: Wie viele Menschen werden Zeit fĂŒr eine so unterhaltsame LektĂŒre aufwenden, um ein paar literarische Referenzen richtig zu verfassen? Wie die Praxis zeigt, gibt es nur wenige. NatĂŒrlich gibt es Systeme fĂŒr das automatische Textlayout (z. B. LaTeX ), aber in der Studentenumgebung (und dies ist die Mehrheit unserer "Kunden") sind sie nicht sehr verbreitet. Infolgedessen haben wir am Eingang einen Text, der zumindest eine strukturierte Liste literarischer Quellen enthĂ€lt (oder vielleicht auch nicht enthĂ€lt).


Wir werden noch einen Punkt klarstellen. Tatsache ist, dass wir nicht direkt mit der heruntergeladenen Arbeit (pdf, docx, doc usw.) arbeiten, sondern sie zunĂ€chst einheitlich gestalten, nĂ€mlich die Textebene extrahieren. Dies bedeutet, dass jede Art von Formatierung, z. B. die Art oder GrĂ¶ĂŸe der Schriftart, aus dem Text entfernt wird. Infolgedessen steht uns nur „roher“ Text zur VerfĂŒgung, der aufgrund verschiedener Extraktionsartefakte oft sehr schlecht aussieht.


Beachten Sie nur, dass unser Algorithmus schnell und absolut genau sein muss. Die Auswahl eines Bibliografieblocks ist nur eine zusĂ€tzliche „Funktion“ im gesamten Prozess der ÜberprĂŒfung eines Dokuments, sodass nicht viel Ressourcen aufgewendet werden sollten. Dies bedeutet, dass der Algorithmus nicht zu kompliziert sein sollte.


Dazu bestimmen wir zunĂ€chst die QualitĂ€tsmetrik, anhand derer wir die Funktionsweise unseres Algorithmus bewerten. Wir werden unsere Aufgabe als Klassifizierungsproblem betrachten. Jede Textzeile bezieht sich auf eine von zwei Klassen - Bibliographie oder Nichtbibliographie. Um das Leben nicht mit schlecht interpretierten QualitĂ€tsindikatoren zu erschweren (und davon gibt es genug!), Werden wir den Anteil korrekt und falsch klassifizierter Linien berĂŒcksichtigen. Wir gehen davon aus, dass die eingehende Textebene in Zeilen unterteilt ist. Und umso mehr, als die Klassifizierung als solche sinnvoll ist, brauchen wir eine Zeile, um die Bibliographie nicht mit fremdem Text zu kombinieren. Dies ist eine ziemlich starke Annahme, aber fast alle Texte, die durch unseren DocParser gingen, befriedigen ihn. Bei der Zwei-Klassen-Klassifizierung von Objekten, die unsere Aufgabe ist, sind PrĂ€zision und RĂŒckruf die beliebtesten QualitĂ€tsmetriken. Wie es aussieht - siehe Bild unten:



Bildquelle oben: Wikipedia
Bildquelle unten: Serie: FĂŒr Dummies


Das Bild zeigt, wie oft der Algorithmus die Zeichenfolge korrekt (oder nicht) klassifiziert hat, nÀmlich:


  • TP ist eine bibliografische Zeichenfolge, die der Algorithmus korrekt ermittelt hat.
  • TN ist eine einfache Textzeile, die der Algorithmus korrekt ermittelt hat.
  • FP - eine einfache Textzeile, die der Algorithmus als bibliografisch definiert;
  • FN ist eine bibliografische Zeichenfolge, die der Algorithmus als reine Textzeichenfolge definiert.

Eine weitere Anforderung besteht darin, dass unser Algorithmus ausreichend genau sein muss (d. H. Eine ausreichend hohe PrÀzisionsbewertung aufweisen muss ). Dies kann interpretiert werden als "Wir wÀhlen eher nichts Notwendiges als etwas Unnötiges aus."


Alle Mai TrÀume Cam Tru


Was braucht Ihrer Meinung nach die meiste Zeit, um ein Forschungsproblem zu lösen? Algorithmusentwicklung? Eine Lösung in ein bestehendes System einbetten oder testen? Egal wie!


Seltsamerweise wird die meiste Zeit damit verbracht, Daten zu sammeln und vorzubereiten. Auch in diesem Fall: Um einen Algorithmus zu entwickeln und seine Parameter zu konfigurieren, muss eine ausreichende Anzahl markierter Dokumente zur VerfĂŒgung stehen. Das heißt, Dokumente, fĂŒr die genau bekannt ist, wo sie TitelsĂ€tze enthalten. Es wĂ€re möglich, externe Gutachter zu gewinnen. FĂŒr solch kleine Aufgaben können Sie jedoch normalerweise mit ein wenig Blut auskommen und die Daten selbst markieren. Infolgedessen haben wir durch gemeinsame Anstrengungen etwa 1000 Dokumente verarbeitet. FĂŒr das Training beispielsweise eines neuronalen Netzes reicht dies natĂŒrlich nicht aus. Denken Sie jedoch daran, dass der Algorithmus einfach sein sollte, was bedeutet, dass Sie nicht viele Daten benötigen, um seine Parameter zu konfigurieren.


Bevor Sie jedoch einen Algorithmus entwickeln, mĂŒssen Sie die Besonderheiten der Daten verstehen. Nachdem wir ungefĂ€hr 1000 zufĂ€llige Dokumente bzw. deren Textebenen betrachtet haben, können wir einige Schlussfolgerungen darĂŒber ziehen, wie sich der bibliografische Text vom ĂŒblichen unterscheidet. Eines der wichtigsten Muster ist, dass eine Bibliographie fast immer mit einem SchlĂŒsselwort beginnt. Neben der beliebten „Referenzliste“ oder „gebrauchten Quellen“ gibt es auch ganz bestimmte, zum Beispiel „LehrbĂŒcher, HandbĂŒcher, Monographien“.


Ein weiteres ebenso wichtiges Merkmal ist die Nummerierung von TitelsÀtzen. Auch hier ist zu erwÀhnen, dass all diese "Zeichen" der Referenzliste sehr ungenau sind und es bei weitem nicht immer möglich ist, alle TitelsÀtze im Text zu finden.


Selbst solche ungenauen Funktionen reichen jedoch aus, um den einfachsten Algorithmus zum Auffinden von Bibliografien in der Textebene zu entwickeln. Beschreiben wir es formeller:


  1. Wir suchen im Text nach „ViolinschlĂŒsseln“ - den SchlĂŒsselwörtern der Bibliographie;
  2. Wir versuchen, im Text unten die Nummerierung der TitelsÀtze zu finden;
  3. Wenn es eine Nummerierung gibt, gehen wir den Text durch, bis er endet.

Dieser einfache Algorithmus zeigt eine Genauigkeit von fast 100%, aber eine sehr geringe VollstÀndigkeit. Dies deutet darauf hin, dass unser Algorithmus nur bibliografische Zeilen auswÀhlt, dies jedoch so selektiv, dass nur ein kleiner Teil der Bibliografie gefunden wird. Die Schwierigkeit besteht darin, dass die Bibliographie leicht nicht nummeriert werden kann, daher werden wir diesen Algorithmus als Hilfsalgorithmus verwenden.


Versuchen wir nun, einen anderen Algorithmus zu konstruieren, der die verbleibenden Arten von TitelsĂ€tzen im Text findet. Markieren Sie dazu die Merkmale, die Klartextzeilen von Titelsatzzeilen unterscheiden. Es ist zu beachten, dass der bibliografische Text ziemlich strukturiert ist, obwohl jeder Autor diese Struktur auf seine eigene Weise bildet. Wir haben die folgenden Unterscheidungsmerkmale der gewĂŒnschten Linien identifiziert:


  1. Das Vorhandensein einer Nummerierung am Zeilenanfang - dies wurde bereits oben bei der Beschreibung des ersten Algorithmus erwÀhnt;
  2. Die PrĂ€senz in der Reihe von Jahren. DarĂŒber hinaus sollten dies nicht nur vierstellige Zahlen sein (andernfalls wird es viele ZufĂ€lle geben), sondern bestimmte Jahre, die am hĂ€ufigsten verwendet werden, wenn zitiert wird: von den 1900er Jahren bis zur Gegenwart;
  3. Auflistung der vollstÀndigen Namen von Autoren, Herausgebern und anderen Personen, die an der Veröffentlichung der Veröffentlichung teilgenommen haben, in verschiedenen Formaten;
  4. Angabe von Seitenzahlen, BÀnden und anderen Informationen eines Àhnlichen Typs;
  5. Das Vorhandensein in der Phrasenzeile, die die Ausgabenummer angibt;
  6. Das Vorhandensein einer URL in der Zeichenfolge;
  7. Sucht in einer Reihe von professionellen Vokabeln. Zum grĂ¶ĂŸten Teil handelt es sich hierbei um spezielle AbkĂŒrzungen wie "conf.", "Wissenschaftlich-praktisch". und Ă€hnliche AbkĂŒrzungen.

Wir definieren diese Zeichen als binÀr und trainieren sie mit einem der einfachsten, aber gleichzeitig recht effektiven Klassifikatoren - Random Forest . Der Random Forest-Algorithmus ist eine Ensemble-Klassifizierungsmethode. Es besteht aus vielen (normalerweise etwa 100) einfachen EntscheidungsbÀumen, von denen jeder seine eigene Entscheidung trifft, zu welcher Klasse das betreffende Objekt gehört. Die Antwort des gesamten Algorithmus wird sehr einfach erstellt: Es wird eine Klasse ausgewÀhlt, die von den meisten EntscheidungsbÀumen gebildet wurde:



Bildquelle : www.researchgate.net


Wie oben erwÀhnt, werden wir die Parameter des Algorithmus auswÀhlen, um seine Genauigkeit zu maximieren. Versuchen wir, diesen Algorithmus auf ein Dokument anzuwenden und das Ergebnis der Arbeit zu betrachten:



Im obigen Bild sind die Zeilen, die der Algorithmus als bibliografisch betrachtet, rot hervorgehoben. Wie Sie sehen, kommt der Algorithmus mit seiner Aufgabe recht gut zurecht - es gibt fast keine unnötigen Hervorhebungen im gesamten Text, die Bibliographie selbst wird jedoch durch "StĂŒcke" bestimmt. Dies ist leicht zu erklĂ€ren: Da der Algorithmus mit hoher Genauigkeit geschĂ€rft ist, werden nur die Zeilen ausgewĂ€hlt, bei denen es sehr wahrscheinlich ist, dass sie bibliografisch sind. Nicht ausgewĂ€hlte Zeilen sehen nach dem Algorithmus wie einfache Textteile aus.


Versuchen wir, das Ergebnis zu „kĂ€mmen“. Wir mĂŒssen zwei Probleme beseitigen: zufĂ€llige Einzelauswahl innerhalb des Haupttextes und diskontinuierliche Auswahl der Bibliographie selbst. Eine schnelle und effektive Lösung fĂŒr diese Probleme ist das "Kleben" und "AusdĂŒnnen". Die Namen sprechen fĂŒr sich: Wir werden einzelne stehende bibliografische Linien entfernen und benachbarte Linien kleben, zwischen denen sich mehrere nicht ausgewĂ€hlte Linien befinden. DarĂŒber hinaus wird es höchstwahrscheinlich notwendig sein, mehrere Iterationen des AusdĂŒnnens des Klebens durchzufĂŒhren, weil Mit einem Durchgang können einzelne Zeilen, die keine bibliografischen sind, zusammenhalten und nicht gelöscht werden. Wir haben die Parameter fĂŒr Klebe- und AusdĂŒnnungsvorgĂ€nge (Anzahl der DurchgĂ€nge, Klebebreite, Löschparameter) in einem separaten Teilmuster konfiguriert (wer nicht weiß, was „Umschulung“ ist, empfehlen wir, hier nachzuschauen).


Was ist nach unseren Verbesserungen passiert? Beim Anzeigen mehrerer Dokumente haben wir festgestellt, dass es Bibliografien mit den folgenden "Merkmalen" gibt:


GlĂŒcklicherweise haben wir einen einfachen, aber effektiven Algorithmus, der solche FĂ€lle nur berĂŒcksichtigt. Und da dieser einfache Algorithmus nichts anderes als die erforderlichen Zeilen der Bibliographie auswĂ€hlt, können wir die Ergebnisse der beiden Algorithmen ohne QualitĂ€tsverlust kombinieren.



Es sieht ziemlich gut aus. Da der Algorithmus wahrscheinlich ist, besteht natĂŒrlich die Möglichkeit, dass die Bibliographie ĂŒberhaupt nicht im Text enthalten ist. Wir haben die Liste der Bibliografien speziell geĂ€ndert, damit der Algorithmus sie nicht „bemerkt“ hat:



Aber eine solche Bibliographie unterscheidet sich rein subjektiv nicht mehr sehr von gewöhnlichem Text.


Was haben wir am Ende bekommen? Wir haben ein Modul zum Hervorheben von TitelsĂ€tzen in herunterladbaren Dokumenten implementiert. Das Modul besteht aus zwei Algorithmen, von denen jeder auf eine bestimmte BetriebsspezifitĂ€t zugeschnitten ist. Ein Algorithmus weist dem SchlĂŒsselwort einen nummerierten Bibliographieblock zu. Der zweite Algorithmus wĂ€hlt Zeilen aus, bei denen es sehr wahrscheinlich ist, dass sie bibliografisch sind, und fĂŒhrt dann mehrere "Klebe" - und "AusdĂŒnnungs" -Operationen durch. Das Ergebnis des Moduls ist die Vereinigung der beschriebenen Algorithmen.


Es ist auch erwĂ€hnenswert, dass die Geschwindigkeit des Algorithmus selbst bei großen Dokumenten ziemlich hoch ist. Dies bedeutet, dass unser Algorithmus wĂ€hrend des Verifizierungsprozesses vollstĂ€ndig fĂŒr die Anforderungen des "Hilfsmerkmals" geeignet ist.


Fazit


Also von Streichhölzern und Eicheln ...

Infolgedessen konnten wir einen einfachen, aber effektiven Prozess zum Extrahieren von TitelsĂ€tzen in Benutzertexten implementieren. Und obwohl dies ein kleiner Teil der Aufgabe ist, die Struktur von Dokumenten hervorzuheben, ist es dennoch ein großer Schritt zur Verbesserung der ServicequalitĂ€t des Anti-Plagiat-Systems . Die Ergebnisse unserer Arbeit sind ĂŒbrigens bereits in Anwenderberichten des Systems zu sehen. Kreieren Sie mit Ihrem eigenen Verstand!

Source: https://habr.com/ru/post/de449124/


All Articles