[PYTHON] Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren

Einführung

Nachstehend finden Sie eine Liste von Einrichtungen, die die medizinische Online-Versorgung auf der Grundlage der Ausbreitung der neuen Coronavirus-Infektion unterstützen.

https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/kenkou_iryou/iryou/rinsyo/index_00014.html

Lassen Sie uns dies verwenden, um einen Prozess zu erstellen, um herauszufinden, wie der medizinische Online-Pflegedienst in der Nachbarschaft aussieht. Wir werden auch prüfen, ob dies uns die Verwendung der von der Regierung bereitgestellten PDF-Daten ermöglicht.

Ergebnisse

https://needtec.sakura.ne.jp/yakusyopdf/ https://github.com/mima3/yakusyopdf

Wenn Sie suchen, indem Sie den Längen- und Breitengrad eingeben ... image.png

Eine Liste der Krankenhäuser in der Nähe wird angezeigt. Klicken Sie auf die Zeile. image.png

Detaillierte Informationen werden auf der Karte angezeigt. image.png

Erläuterung

Prozessablauf

(1) Beziehen Sie ein PDF von der Homepage der Liste der Einrichtungen, die die medizinische Online-Versorgung auf der Grundlage der Ausbreitung der neuen Coronavirus-Infektion unterstützen.

(2) Extrahieren Sie Tabelleninformationen aus PDF und konvertieren Sie sie in JSON. Informationen zur Bearbeitung dieses Bereichs finden Sie auf der folgenden Seite. ・ [PDF des Ministeriums für Gesundheit, Arbeit und Soziales in CSV oder JSON konvertieren](https://needtec.sakura.ne.jp/wod07672/2020/04/29/%e5%8e%9a%e7%94%9f%e5% 8a% b4% e5% 83% 8d% e7% 9c% 81% e3% 81% aepdf% e3% 82% 92csv% e3% 82% 84json% e3% 81% ab% e5% a4% 89% e6% 8f% 9b% e3% 81% 99% e3% 82% 8b /)

(3) Kombinieren Sie den JSON jeder Präfektur zu einem JSON.

(4) Ermitteln und notieren Sie den Längen- und Breitengrad von der Adresse in JSON mithilfe der Yahoo! Geocoder-API.

(5) Speichern Sie es in der Datenbank und zeigen Sie es basierend auf diesen Informationen auf dem Bildschirm an.

Probleme beim Extrahieren von Tabellen aus PDF.

Tatsächlich ist das Extrahieren der Daten in der Tabelle aus PDF ziemlich mühsam. Es gibt Bibliotheken mit den Namen tabula und camelot, aber das allein funktioniert nicht. Da ist gar nichts. In diesem Abschnitt werden die Probleme beschrieben, die bei der Verwendung von Camelot aufgetreten sind.

Das Teilen von Daten mit langen Zeichen funktioniert nicht.

Angenommen, Sie haben Daten, die über den Inhalt der Zelle hinausgehen (siehe unten). image.png

In diesem Fall werden die Telefonnummer und die URL als eine Gruppe erkannt. Dieses Mal überprüfen wir als Methode zur Behebung dieses Problems, ob kein Element erforderlich ist, die linke und die rechte Zelle, um festzustellen, ob sie zusammengeführt wurden. Wenn das Ziel jedoch eine unformatierte Datenzeichenfolge wie eine Postleitzahl oder eine Telefonnummer ist, kann sie nicht wiederhergestellt werden.

Probleme mit der Speichernutzung

camelot verbraucht viel Speicher, daher ist es besser, ihn Seite für Seite zu verarbeiten. Ich denke, dieser Bereich wird hilfreich sein. https://github.com/camelot-dev/camelot/issues/28

Aufgrund des Problems der Papiergröße der Daten, die dieses Mal verarbeitet werden, ist der Speicher nicht ausreichend, wenn es sich sogar für jede Seite um einen 32-Bit-Prozess handelt. Daher ist es besser, mit einem 64-Bit-Prozess zu arbeiten.

Die gepunktete Linie kann nicht erkannt werden.

Obwohl dies in der folgenden Ausgabe erwähnt wird, erkennt camelot nicht gut, wenn Sie eine Tabelle mit einer gepunkteten Linie erstellen.

Detect dotted line #370 https://github.com/atlanhq/camelot/issues/370

So lösen Sie dieses Problem: [Gepunktete Linie als durchgezogene Linie mit Camelot verarbeiten](https://needtec.sakura.ne.jp/wod07672/2020/05/03/camelot%e3%81%a7%e7%82%b9%e7%b7%9a % e3% 82% 92% e5% ae% 9f% e7% b7% 9a% e3% 81% a8% e3% 81% 97% e3% 81% a6% e5% 87% a6% e7% 90% 86% e3 % 81% 99% e3% 82% 8b /)

Probleme mit PDF der Liste der unterstützten Organisationen

Dies ist äußerst problematisch, und ich denke, es ist unmöglich, PDFs vollautomatisch zu analysieren.

Papiergröße

Die Bearbeitung dauert einige Zeit, da einige Papiere eine Seite von 1 m haben. Es ist auch unmöglich, nach dem Konvertieren einer allgemeinen PDF-Datei in WORD zu verarbeiten, da die Größe zu groß ist.

Das PDF der Liste der kompatiblen medizinischen Einrichtungen wird täglich aktualisiert, und auch die URL ändert sich.

Das PDF der Liste der unterstützten medizinischen Einrichtungen wird täglich aktualisiert, aber die URL scheint sich mit jedem Update zu ändern. Die URL von Tokio lautet beispielsweise wie folgt.

Stand 28. April 2020 https://www.mhlw.go.jp/content/000625693.pdf

Stand 29. April 2020 https://www.mhlw.go.jp/content/000626106.pdf

Aus diesem Grund muss die PDF-URL über den Link für die medizinische Online-Versorgung abgerufen werden, der auf der Ausbreitung der neuen Coronavirus-Infektion basiert.

Vorhandensein oder Nichtvorhandensein einer Legende

Die erste Datenzeile kann eine Legende enthalten oder nicht. Es gibt eine Legende im Fall von Tokio, aber nicht in Hokkaido.

Mit anderen Worten, es ist notwendig, die Erfassungsposition der Datenzeile auf der ersten Seite für jede Präfektur anzupassen.

Die Behandlung von Seitenkopfzeilen ist für jede Präfektur unterschiedlich.

Vergleichen Sie beispielsweise die PDFs der Präfekturen Tokio und Ibaraki. Der Header ist auf der zweiten und den folgenden Seiten von Tokio enthalten, jedoch nicht in der Präfektur Ibaraki.

Mit anderen Worten, es ist notwendig, die Erfassungsposition der Datenzeile auf der zweiten und den folgenden Seiten für jede Präfektur anzupassen. Darüber hinaus ist dies auch in derselben Präfektur nicht immer der Fall.

Tatsächlich hatte Hokkaido bis April Kopfzeilen auf der zweiten und den folgenden Seiten. Möglicherweise liegt dies daran, dass die Spezifikationen zum Zeitpunkt der Dateiausgabe manchmal schwanken.

Der Umgang mit Gegenständen ist für jede Präfektur unterschiedlich.

Vergleichen Sie beispielsweise Hokkaido mit den Präfekturen Aichi und Yamanashi.

** Hokkaido ** image.png

** Präfektur Aichi ** image.png

** Präfektur Yamanashi ** image.png

Die Elemente in der Spalte können von Präfektur zu Präfektur unterschiedlich sein, und selbst wenn es sich um übliche Elemente handelt, müssen sie in ihrer Position angepasst werden. Darüber hinaus sind die Gegenstände auch in derselben Präfektur nicht immer gleich. Tatsächlich hat die Präfektur Yamanashi bis April die Grenze zwischen telefonischer und Online-Konsultation nicht geteilt.

Notationsunschärfe

Es gibt einen Punkt "ob die medizinische Behandlung beim ersten Besuch am Telefon durchgeführt wird oder nicht", aber in vielen Fällen wird 〇 oder × (oder leer) geschrieben, aber die Notation ist falsch. Beispielsweise kann es wie folgt kommentiert werden.

○
* Geplant für die Zukunft

Dann geht es nicht nur darum, nur den ersten Buchstaben zu nehmen, und es gibt verschiedene Ausdrücke. Zumindest im Moment gibt es die folgenden Notationsunschärfen.

** Ein Ausdruck, der das Vorhandensein oder Fehlen von "ob eine medizinische Behandlung beim ersten Besuch telefonisch durchgeführt wird oder nicht" anzeigt **

Brief Code
E38087
E2978B
E297AF
E296B3
Ja E58FAF
E2978F
E296B2

** Ein Ausdruck, der anzeigt, dass nicht angegeben ist, ob beim ersten Besuch eine medizinische Behandlung am Telefon durchgeführt wird oder nicht. **

Brief Code
Leer
× C397
EFBD98
E29893
E29C95
X 58
- 2D
EFBC8D
EFBCB8
E29C96
Nein E590A6

Andere Probleme

Das tatsächliche Ergebnis der PDF-Konvertierung lautet wie folgt. Es gibt ein Problem mit dem Analyseprogramm, aber es gibt auch Fehler im PDF.

https://github.com/mima3/yakusyopdf/blob/master/20200503

Zusammenfassung

Dieses Mal habe ich das vom Ministerium für Gesundheit, Arbeit und Soziales veröffentlichte PDF so konvertiert, dass es problemlos vom Computer verarbeitet werden kann, und daraus eine Webanwendung erstellt.

Daten können bis zu einem bestimmten Punkt automatisch konvertiert werden. Solange jedoch PDF verwendet wird, ist eine vollständige Automatisierung nicht möglich. Auch wenn Sie es von Hand reparieren, ist die Aktualisierungshäufigkeit hoch, sodass es einige strenge Punkte gibt.

** Wenn Sie mindestens genaue Daten benötigen und diese regelmäßig aktualisieren, können Sie sicher vermeiden, dass Daten wie diesmal aus PDF extrahiert werden. ** ** **

Wenn Sie in der Lage sind, die Daten zu veröffentlichen, würden wir uns freuen, wenn Sie die folgenden Punkte berücksichtigen könnten.

――Können Sie andere als PDF veröffentlichen? ――Wenn Sie Daten verwenden, ist Excel besser. PDFs sehen gleich aus, sind aber viel schwieriger.

das ist alles.

Recommended Posts

Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren
Ich habe versucht, den Grad der Koronavirusinfektion auf der Seekarten-Wärmekarte anzuzeigen
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Zeichnen Sie die Ausbreitung des neuen Koronavirus
Ich habe versucht, die Infektion mit einer neuen Lungenentzündung mithilfe des SIR-Modells vorherzusagen: ☓ Wuhan ed. ○ Hubei ed.
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Ich habe versucht, den Bildfilter von OpenCV zu verwenden
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren
Werfen wir einen Blick auf die Infektionstendenz des neuen Coronavirus COVID-19 in jedem Land und den Status der medizinischen Reaktion (zusätzliche Informationen).
Vorverarbeitung von Präfekturdaten
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Web-Scraping-Informationen zu Lachprogrammen und Benachrichtigungen über LINE
Ich habe versucht, die Anzahl der Todesfälle pro Kopf von COVID-19 (neues Koronavirus) nach Ländern zu tabellieren
Ich habe die Tweets über den neuen Corona-Virus analysiert, die auf Twitter veröffentlicht wurden
Ich habe versucht, das CNN-Modell von TensorFlow mit TF-Slim umzugestalten
Ich habe versucht, das Lachproblem mit Keras zu erkennen.
Datenanalyse basierend auf den Wahlergebnissen der Gouverneurswahl von Tokio (2020)
Ich habe ein Python-Diagramm mit öffentlichen Daten zur Anzahl der neuen Coronavirus (COVID-19) -positiven Patienten in Tokio + mit einem Link zur nationalen Version der Praxisdaten gezeichnet
[Python] Der Status jeder Präfektur des neuen Koronavirus wird nur als PDF veröffentlicht, aber ich habe versucht, ihn zu kratzen, ohne ihn herunterzuladen.
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
[Python] Ich habe die Route des Taifuns mit Folium auf die Karte geschrieben
Ich habe eine Kreuzvalidierung basierend auf dem Rastersuchergebnis mit scikit-learn versucht
Ich habe versucht, die COTOHA-API zu verwenden (es gibt auch Code auf GitHub).
Ich habe die Tweets über den neuen Corona-Virus analysiert, die auf Twitter Teil 2 veröffentlicht wurden
Ich habe mir die Metainformationen von BigQuery angesehen und versucht, sie zu verwenden
Ich habe versucht, den auf Papier gestempelten Stempel mit OpenCV zu digitalisieren
Ich habe versucht, BigQuery-Daten mit Jupyter Lab mit GCP zu visualisieren
Ich habe AdaNet gegen Tabellendaten ausprobiert
Ich habe versucht, GrabCut von OpenCV zu verwenden
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Mit Keras 'Stateful RNN habe ich versucht zu prüfen, ob es sich um ein selbstgesteuertes Lied handelt, das auf der WAV-Datei basiert.
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, eine Clusteranalyse von Kunden anhand von Kaufdaten durchzuführen
[Kaggle] Ich habe versucht, mithilfe von tsfresh das Feature-Quantity-Engineering mehrdimensionaler Zeitreihendaten durchzuführen
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Folding @ Home unter Linux Mint soll zur Analyse des neuen Corona-Virus beitragen
Ich habe die gängige Geschichte der Vorhersage des Nikkei-Durchschnitts mithilfe von Deep Learning (Backtest) ausprobiert.
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Schätzen Sie die maximale Infektiosität des neuen Coronavirus ab
Ich habe versucht, die BigQuery-Speicher-API zu verwenden
Ich habe versucht, das Update von "Hameln" mit "Beautiful Soup" und "IFTTT" zu benachrichtigen.
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Die epidemische Vorhersage des neuen Koronavirus wurde mit explosiver Geschwindigkeit im Internet veröffentlicht