Was am Anfang gebraucht wurde:
- Ein Programm, das eindeutige Namen von Produkten in einer bestimmten Branche anhand eines russischen Rohtextes „fischt“. Rohtext - ein Text, den eine Person geschrieben hat, der einfach ihre Gedanken ausdrückt und sich nicht um die Bildung oder Auswahl einer Liste von Wörtern kümmert;
- automatisch erhaltene Liste von Wörtern;
- Minimale manuelle oder automatisierte Verarbeitung, um die Liste in eine Reihe von Hashtags oder Schlüsselwörtern für den Text zu konvertieren.
Ich glaube, dass viele Menschen jeden Tag implizit mit dem Problem konfrontiert sind, nachdem sie einen Artikel, einen Beitrag, einen Kommentar, eine Notiz, einen Bericht usw. geschrieben oder analysiert haben. Durch meinen Beruf musste ich mich also mehrmals am Tag mit diesem Problem befassen. Daher kann man sagen, dass „Faulheit“ mich im guten Sinne des Wortes zur Idee der Automatisierung geführt hat.
Wenn ich diesen Artikel schreibe, ist die Idee erhalten geblieben, aber der Datensatz des Endergebnisses hat sich stark verändert:
- Es werden keine Wörter ausgewählt, sondern Schlüsselphrasen, einschließlich Wörter.
- Die Liste der Schlüsselausdrücke ist mit 16 verschiedenen Markierungen gekennzeichnet.
- Alle Wörter des Textes (einschließlich der nicht Schlüsselwörter) sind lemmatisiert - werden in der ursprünglichen Form angegeben oder im angezeigten Format vereinheitlicht.
- Jedes Wort im Text verfügt über zusätzliche Analysen in Bezug auf die Position im Text und die Anzahl der Wiederholungen.
Die Ergebnisse der Nrlpk-Software (Natural Russian Language Processing by the Keys) bereiten Daten vor für:
- Analyse von Texten einer unbegrenzten Bandbreite von Themen und Branchen (Entwicklung und Erprobung wurden auf der Grundlage von Industrie- und militärisch-industriellen Komplexmaterialien - dem militärischen Industriekomplex - durchgeführt);
- automatische Rubrikation, Klassifizierung, Katalogisierung, Materialisierung von Materialien (Online-Sites);
- Überwachung und Filterung nach Inhalten mit Systemantworteinstellungen (Sicherheitsdienste und Systeme in geschlossenen Kreisläufen oder online);
- mehrschichtiges Markup von Texten (AI).
Qualität
Um nicht den gesamten Artikel durchzuziehen, diejenigen, die nur an Zahlen und nicht an Worte glauben und diejenigen, die absolute Qualität erwarten und den anderen nicht akzeptieren ...
Die Qualität der Stichprobe liegt im Bereich von 95 bis 100%, wenn Artikel mit einer Größe von nicht mehr als 3.500 Wörtern getestet werden. Die Streuung hängt mit der Qualität und Komplexität der Präsentation zusammen. Hier ist
ein Beispiel für einen der Artikel , die an den Tests teilgenommen haben, und hier ist das
Ergebnis seiner automatischen Analyse .
Es ist notwendig, etwa 7 bis 10% aus dem erhaltenen Qualitätsintervall zu entfernen, d.h. Das tatsächliche Qualitätsniveau wird voraussichtlich 85-93% betragen. Dies liegt an der Tatsache, dass:
- Während des Testprozesses ändern sich die Anforderungen für die ausgewählten Daten, die ich vorher nicht bemerkt habe und ich glaube, dass ich jetzt nicht alles bemerke.
- Bei der manuellen Abstimmung gibt es meine subjektive Meinung, was genau als Schlüssel in einem Artikel erkannt werden kann und was nicht - und es stimmt höchstwahrscheinlich nicht mit der Meinung der Autoren der Artikel überein.
Eine vollständige Liste der getesteten Artikel und detaillierte Statistiken der Ergebnisse
finden Sie auf GitHub .
Was sich speziell auf die Qualität des Ergebnisses in jedem Artikel auswirkte,
finden Sie in der Reasons-Datei auf GitHub .
Wie man die Ergebnisse liest
In jedem Ordner für einen bestimmten Artikel, der analysiert wird, befinden sich 5 Dateien mit einem Datensatz in Unicode:
- words.csv - eine Liste relevanter Wörter, einschließlich einer Liste nicht identifizierter Wörter;
- keys.csv - eine Liste von Schlüsselwörtern, die jetzt neben markierten Ausdrücken auch Wörter enthält, die mindestens eine bestimmte Anzahl von Malen im Text wiederholt werden - in diesem Fall mindestens viermal;
- garbage.csv - Liste nicht identifizierter Wörter;
- desc_words.csv - Beschreibung (Statistik) zur Liste aller Wörter des Textes;
- desc_keys.csv - Beschreibung (Statistik) zur Liste der Schlüsselwörter;
Und Gründen_Qualität.txt ist eine (optionale) Liste von Ausdrücken aus dem Artikel, die manuell ausgewählt wurden und die Schlüssel übersehen haben oder falsch erhalten wurden (laut Autor nrlpk).
Sie können
lernen, wie Sie diese Dateien
aus der Legend-Datei auf GitHub lesen.
Mit nrlpk können Sie jeden Datensatz in einem der folgenden Formate abrufen:
- Pandas Dataframe (Standard);
- Python-Wörterbuch;
- JSON
- CSV-Datei.
Testmethode
- Software (automatische) Textanalyse.
- Manuelle (durch Augen) Identifizierung, manuelle (Markierung) von Schlüsselausdrücken und Abgleich der empfangenen Liste von Schlüsselausdrücken, wobei die Liste automatisch empfangen wird.
- Berechnung des Qualitätsprozentsatzes : die Anzahl der fehlenden oder falsch geschriebenen Ausdrücke + die Anzahl der Wörter im Müll, zur Gesamtzahl der Wörter im Text.
Die Werkzeuge
nrlpk ist in Python 3.7.0 geschrieben. Bereits bei der Entwicklung der zukünftigen nrlpk-Software traten zwei zwingende Anforderungen auf:
- Wähle Ausdrücke, keine Wörter - einschließlich Wörter;
- das Vorhandensein eines Wörterbuchs mit Fachbegriffen aus der Industrie.
Diese Anforderungen haben die Verwendung von NLTK und Pymorphie2 in Frage gestellt, was einige der Herausforderungen lösen könnte.
Um Zweifel auszuräumen, wurde eine Auswahl von Texten aus den Medien manuell ausgewählt, die dem größten russischsprachigen Nachrichtenaggregator zum Thema des militärisch-industriellen Komplexes -
VPK.Name -
entnommen wurden . Die Markierungsanalyse ergab:
- eine ganze Datenschicht, die keiner wortweisen Tokenisierung und Lemmatisierung unterzogen werden sollte;
- die Unmöglichkeit in vielen Fällen der Tokenisierung nach Sätzen zu einer ernsthaften Transformation des Textes, um grammatikalische Ungenauigkeiten zu korrigieren, die die Autoren in mehr als 80% der Artikel zulassen. Diese Ungenauigkeiten wirken sich in keiner Weise auf die Wahrnehmung des Textes durch eine Person aus, sondern sehr stark auf die Wahrnehmung und Interpretation eines solchen Textes durch die Maschine.
Darüber hinaus wurde bereits zu diesem Zeitpunkt die Notwendigkeit deutlich, eine Vielzahl statistischer Informationen über die zu verarbeitenden Objekte zu sammeln und zu speichern.
Angesichts dieser Faktoren wurde
Pandas als Basispaket für die Arbeit mit Daten ausgewählt, das zusätzlich zu den oben beschriebenen Aufgaben die Durchführung einer Batch-Lemmatisierung ermöglichte.
Nach der Analyse der verfügbaren Wörterbücher der russischen Sprache wurde
OpenCorpora als Grundlage genommen,
die übrigens auch in der Pymorphie2 verwendet wird.
Es wurde in eine für die Arbeit mit Pandas geeignete Form umgewandelt, aus der die folgenden Wörterbücher ausgewählt wurden:
- groß - die gesamte Wortbasis;
- schlechte Wörter - Wörter, die aufgrund mangelnder Bedeutung von der Analyse des Textes ausgeschlossen sind;
- special - ein Wörterbuch mit speziellen (Industrie-) Wörtern. Die Eigennamen sind nicht im Wörterbuch enthalten: Namen, Namen, Nachnamen, Adressen, Produkte, Produkte, Unternehmen, Personen usw. Dies ist eine grundlegende und fundierte Entscheidung, da ein solcher Ansatz in jeder lebenden Branche / Richtung eine ständige Überwachung und manuelle Hinzufügung von Wörterbüchern erfordern würde, was die Idee ruiniert, die Arbeit durch Automatisierung zu erleichtern.
Wörterbücher werden Unicode in einem einfachen Textformat zur Verwaltung von jedem externen Programm gespeichert.
Da die Basis für Wörterbücher in nrlpk und pymorphy2 identisch ist, ist die Bezeichnung
der Wortarten (Gramm) identisch. Die Anzahl der Marker (nicht standardmäßige Grammatiken) beträgt derzeit 16, und die meisten von ihnen haben, wenn markierte Ausdrücke nicht aus mehreren Wörtern bestehen, zusätzlich zum Marker auch eine Bezeichnung für den Sprachteil des Grundgramms. Die Bezeichnung von passenden Markern (Nicht-Standard-Gramm) mit pymorphy2 ist identisch, insbesondere:
- NUMB ist eine Zahl;
- ROMN ist eine römische Zahl;
- UNKN - Der Token konnte nicht analysiert werden.
Übrigens werden für Ausdrücke, die numerische Daten enthalten, in nrlpk zusätzlich zu NUMB und ROMN zusätzlich die folgenden Marker verwendet:
- NUSR - Der Ausdruck enthält eine oder mehrere numerische Daten.
- MATH - Der Ausdruck enthält eine mathematische Formel.
Was ist ein Schlüsselwortausdruck mit mehreren Wörtern? Zum Beispiel NUSR:
- Wenn der Text der 25. Februar 2020 ist, lautet der Schlüsselausdruck der 25. Februar 2020 mit dem Lemma „25.02.2020“, dem Gramm „NUSR“ und dem Marker NUSR.
- Wenn der Text jedoch "25. Februar 2020" lautet, lautet der Schlüsselausdruck "25. Februar 2020" mit dem Lemma "2f2g", dem Gramm "WIQM" und dem Marker WIQM.
- Wenn der Text 25 Tonnen enthält, sehen wir im Schlüssel „25 Tonnen“ mit dem Lemma „2t“, wobei „NUSR“ auch als Gramm und Marker verwendet wird.
Warum mussten Sie Wörter und Schlüssel beschreiben?
Zunächst musste die Funktionsweise der nrlpk-Algorithmen überprüft werden - ob Wörter verloren gingen, ob eine unnötige Vereinigung bestand, wie hoch der Anteil der Schlüssel im Text ist usw.
Beim Debuggen der Software traten jedoch einige „Regelmäßigkeiten“ auf, deren Identifizierung als Aufgabe nicht für nrlpk gestellt wurde:
- Identifizierung von Wörtern mit Rechtschreibfehlern;
- Identifizierung von Texten mit einem schlechten Stil, schlecht -%> 35% (praktische Beobachtungen als Ergebnis von Tests);
- Identifizierung von Zieltexten (eng fokussiert, klar positioniert) - skeys-% <5 ohne Zifferntasten (praktische Beobachtungen als Ergebnis von Tests);
- Identifizierung von Texten, die keinen Branchenthemen unterliegen - skeys-% <1.
Eine Analyse der gegenseitigen Kombination von Statistikindikatoren kann nicht weniger interessant sein, zum Beispiel:
- Identifizierung von Texten mit "großem Umfang" - Schlüssel -%> 45% mit ukeys-%, die zu Schlüsseln-% neigen.
Warum ist alles geschrieben?
nrlpk ist bereit, mit aktuellen Qualitätsindikatoren für die Verarbeitung russischer Texte zu arbeiten, wird jedoch nicht als Dienstleistung angeboten. Der Autor hat klare und verständliche Entwicklungsrichtungen, um den Prozentsatz der Qualität zu erhöhen und diesen Prozentsatz zu stabilisieren. Um diese Aufgabe zu entwickeln, ist ein strategischer Investor und / oder ein neuer Urheberrechtsinhaber erforderlich, der bereit ist, das Projekt zu den festgelegten Zielen weiterzuentwickeln.
PS
Beschriftungen für diesen (anfänglich - bei Habré etwas geänderten) Text (unten aufgeführt) werden von
nrlpk automatisch mit den folgenden Parametern generiert:
- Erkennen Sie die Ausdrücke mit numerischen Daten nicht als Schlüssel.
- Erkennen Sie als Schlüssel die Wörter, die im Text mindestens 8 Mal wiederholt werden.
Detaillierte Daten zum Ergebnis der Verarbeitung von nrlpk dieses Artikels finden Sie
auf GitHub .
Gepostet von:
avl33