[PYTHON] J'ai créé mon propre outil de recherche à l'aide de l'API Law [Smart Roppo]

1. 1. introduction
2. J'ai créé un produit de type technologie juridique
3. 3. Concept Smart Roppo
4. Principales fonctions et caractéristiques de SmartRoppo
5. Pourquoi avez-vous décidé de le fabriquer vous-même?
6. Tâches futures
7. en conclusion

1. 1. introduction

Cet article hérite du témoin de Jank (@ jank_2525) et dit "** Legal Advent Calendar 2019 J'écris comme l'entrée du 14e jour de "3900) ** [^ 1]".

Les contributions de chacun sont uniques et merveilleuses, et je les vois avec un grand intérêt chaque jour.

2. J'ai créé un produit de type technologie juridique

Au fait, tout à coup, j'ai essayé de créer un produit de technologie légale, donc je publierai la version bêta avec cette entrée. Il s'appelle ** [Smart Roppo] **.

** SmartRoppo - Rendez votre base de données juridique plus intelligente - ** https://smartroppo.com/SmartRoppo/index.html movie2.gif

Aucun travail gênant tel que l'enregistrement de l'utilisateur n'est requis, et n'importe qui peut l'utiliser.

3. 3. Concept Smart Roppo

Le concept de SmartRoppo est "** Mettre à jour l'interface utilisateur / UX de la loi **" (magnifique).

Je m'occupe moi-même souvent de questions financières, mais les lois financières telles que la loi sur le commerce de l'argent et la loi bancaire sont souvent extrêmement compliquées et ésotériques.

Par conséquent, j'ai honte de dire que même maintenant, cinq ans après être devenu avocat, je me rends parfois compte que "Y a-t-il un tel texte!" Ou presque mal interprété (je ne devrais pas être le seul ... ).

Cependant, d'un autre côté, ces lois et règlements compliqués et ésotériques sont écrits de manière concrète et détaillée en supposant divers cas (le champ d'interprétation est étroit). En fait, même si la consultation provient d'un client qui connaît les lois et règlements de l'industrie, il y a des cas où nous pouvons répondre uniquement par le contenu de l'article.

En d'autres termes, si vous pouvez lire le contenu de la loi «** avec précision **», vous pourrez souvent accéder aux informations que vous recherchez. Ou plutôt, il n'y a pas d'interprétation si vous ne pouvez pas faire cela. Bien sûr, il est important de se référer à des documents tels que des livres de commerce, mais au final il sera indispensable de vérifier le texte original.

Voici un extrait d'une diapositive dont j'ai parlé lors d'un événement. Le concept de Smart Roppo est de résoudre ces problèmes avec la puissance de la technologie. GGAプレゼン資料 2_アップ用_ページ_2.png GGAプレゼン資料 2_アップ用_ページ_3.png GGAプレゼン資料 2_アップ用_ページ_4-min.png GGAプレゼン資料 2_アップ用_ページ_6.png GGAプレゼン資料 2_アップ用_ページ_7.png GGAプレゼン資料 2_アップ用_ページ_8.png GGAプレゼン資料 2_アップ用_ページ_9.png

4. Principales fonctions et caractéristiques de SmartRoppo

À l'heure actuelle, il existe trois fonctions et caractéristiques principales de SmartRoppo. (Il est peut-être plus rapide de l'utiliser ou de regarder la vidéo de démonstration ci-dessus que de l'expliquer dans le texte.)

(1) Fonction d'acquisition de données de l'API de loi (+ fonction de recherche en temps réel pour la loi)
(2) Fonction de référence automatique pour les règles subordonnées
③ Fonction de surbrillance entre parenthèses

(1) Fonction d'acquisition de données de l'API de loi (+ fonction de recherche en temps réel pour la loi)

Je pense que de nombreuses applications électroniques à six méthodes ont jusqu'à présent une méthode de base de données qui contient elles-mêmes les données.

D'autre part, SmartRoppo a adopté une méthode qui utilise la «** loi API ** [^ 2]» publiée par le ministère de l'Intérieur et des Communications. En d'autres termes, en gros, l'application ne contient pas les données et les dernières données XML sont acquises à partir d'e-gov à chaque fois qu'elle est consultée.

Dans la méthode API, les données juridiques sont toujours tenues à jour (tant qu'e-gov est mis à jour en temps opportun), et la maintenance côté application (travail de réflexion comme les révisions de la loi) est fondamentalement inutile [^ 3] ] Il y a un mérite à cela. Cependant, la vitesse d'affichage peut être inférieure à la méthode de base de données en raison du mécanisme d'acquisition de données à chaque fois.

(2) Fonction de référence automatique pour les règles subordonnées

・ Importance des règles subordonnées

Afin de comprendre avec précision le contenu de lois et règlements complexes, il est essentiel de lire les règles subordonnées telles que «Ordonnance du gouvernement» et «Ordonnance du Cabinet Office» mentionnées dans chaque article. Cependant, identifier et confirmer les règles subordonnées associées à chacun de ces articles est une tâche ardue. Beaucoup d'entre vous ont peut-être vérifié le livre de droit en papier épais en faisant des allers-retours (en pinçant un stylo au lieu d'un shiori).

Par conséquent, SmartRoppo a implémenté une fonction (fonction de référence automatique) qui acquiert automatiquement ces règles subordonnées et les affiche dans une liste avec les lois et règlements du référent.

・ Vous ne l'avez jamais vu auparavant?

Même dans le passé, les applications électroniques à six lois, quelques-unes semblaient ajouter manuellement des références (d'où des lois et des règlements limités). D'un autre côté, du moins pour autant que je sache, je ne pense pas avoir jamais vu quoi que ce soit avec la possibilité d'ajouter une référence "** automatiquement **" (d'où toutes les lois) (je suis désolé si c'est différent). ..

Cependant, la précision de SmartRoppo n'est toujours pas bonne, et il n'est pas compatible avec toutes les lois et réglementations actuelles [^ 4], je voudrais donc améliorer ce domaine un par un.

・ Pourquoi est-ce difficile? - Mur "Référence inversée"

Je me suis toujours demandé pourquoi la fonction de référence automatique pour les sous-règles n'était pas implémentée. D'une manière ou d'une autre, je pense que cela semble relativement facile à mettre en œuvre.

Cependant, quand je l'ai fait, je l'ai bien compris. En fait, c'est techniquement difficile (ou plutôt ennuyeux) en raison des problèmes structurels de la loi.

En particulier, il était difficile de le rendre compatible avec la méthode API, et à la suite d'essayer diverses méthodes, je n'ai pu en trouver qu'une qui semble fonctionner avec un certain degré de précision.

La raison pour laquelle cela est difficile est simplement que la référence de la règle subordonnée dit: "La source de référence ne dispose pas des informations pour spécifier la destination de référence, et seule la destination de référence a les informations pour spécifier la source de référence [^ 5]. C'est parce qu'il a une structure comme "** oeuf et poulet **" que "il est nécessaire de spécifier la destination, mais le problème est de savoir comment spécifier la destination de référence."

J'appelle cela "** référence inversée **".

GGAプレゼン資料 2のコピー.png

Lorsque les humains travaillent, ajoutez un atari tel que «L'ordonnance sur le bureau du Cabinet» renvoie ici à «l'ordonnance sur le bureau ○○» et doit être écrite ici »et vérifiez le texte qui l'entoure. Je pense que nous utilisons souvent une telle méthode.

Cependant, il est assez difficile d'écrire de telles choses "sensation de peau" dans le programme.

③ Fonction de surbrillance entre parenthèses

C'est une fonction que vous pouvez voir, mais les parenthèses sont codées par couleur pour chaque calque. Il facilite la lecture des textes avec de longues parenthèses ou plusieurs parenthèses.

Cependant, le traitement de cette parenthèse multiple (imbrication) est assez difficile, et ** actuellement il y a des bugs **. Je connais la cause [^ 6], mais je n'ai pas encore eu assez de temps pour m'en occuper. Je suis désolé. ..

5. Pourquoi avez-vous décidé de le fabriquer vous-même?

En développant SmartRoppo, j'ai essayé de bouger mes mains tout seul pour le moment, y compris non seulement le codage mais aussi le design et (pas cool) le design [^ 7].

Je suis une personne "super-littéraire" qui admet moi-même et les autres. Il n'y a pas de connaissances techniques. Je n'avais jamais touché au langage de programmation, et partais du niveau "HTML ...?: Pensée:".

À partir d'un tel état, pourquoi avez-vous eu l'idée de le fabriquer / le fabriquer vous-même? Je ne suis pas sûr (ou oublié) moi-même, mais je pense que j'ai eu les sentiments suivants.

  • Le mot technologie juridique a commencé à se répandre et il y a eu des cas où des spécialistes tels que des avocats créent leur propre entreprise [^ 8]. «Je suis intéressé, alors je vais examiner des cas d'outre-mer et réfléchir vaguement aux idées (j'aimerais pouvoir automatiser DD ou quelque chose!), Mais je n'ai rien fait de concret et je me suis retrouvé avec un fantasme.
  • Quelque chose est maussade. ** C'est un gaspillage de le regarder sans rien déplacer, même si c'est un domaine technologique où vous pouvez tirer le meilleur parti de votre expertise juridique ** [^ 9].
  • Je ne sais pas ce que je peux faire, mais je suis aussi techniquement intéressé [^ 10], alors faisons ce que je veux pour le moment. Je n'ai jamais fait de programmation, mais si je fais de mon mieux, je pourrai faire quelque chose (approprié).

J'ai commencé le développement de cette façon, mais il est plus difficile que je ne le pensais de lutter contre l'enfer des erreurs infinies en écrivant et en effaçant le code tout en pensant que ce n'est ni euh ni euh, dans l'intervalle du travail d'avocat. fait.

En particulier, je m'inquiétais vraiment de la fonction "reverse reference" mentionnée ci-dessus [^ 11]. En essayant diverses techniques et en les cassant à plusieurs reprises, ** ma tête semblait chauve ** [^ 12].

Cependant, si vous n'aspirez pas à devenir ingénieur et que vous voulez apprendre la programmation, cela ne sert à rien de le faire à moins que vous ne preniez une forme (Deploy or Die [^ 13]). Cela ne sert à rien de le faire, du moins si vous ne voulez pas l'utiliser dans la pratique. ** Je pensais que oui, alors j'ai réussi avec un esprit. En gros, je suis une personne paresseuse et inutile, mais je fais quelque chose que j'ai décidé de faire.

Du coup, j'ai réussi à prendre forme et à me sentir un peu soulagé (même s'il reste encore beaucoup de problèmes à résoudre).

Je voudrais écrire sur les détails du développement (comment j'ai étudié la programmation) et les détails techniques (si quelqu'un est intéressé) à un autre moment. Sur le plan technique, puisque les données dont nous traitons sont ** "la loi elle-même" **, je pense que les personnes morales s'y intéresseront également.

6. Tâches futures

Bien que j'aie essayé de le rendre public pour le moment, on ne peut pas dire qu'il ait des performances et des fonctions suffisantes en raison de contraintes de temps et techniques. Si vous notez brièvement les futurs numéros et les fonctions à ajouter, cela ressemble à ceci (sans ordre particulier).

  • ** Vitesse de traitement améliorée ** (grâce à la méthode API et à la fonction de référence automatique, mais toujours un peu lente)

7. en conclusion

C'est encore un produit immature, mais j'espère que vous allez l'essayer. Et tout contenu convient, donc je serais très heureux si vous pouviez nous donner vos opinions et vos demandes (@lawyer_alpaca).

Merci d'être resté longtemps avec nous! Le suivant est 10ru (@ oga10ru)! Je vous remercie!

[^ 1]: Il y a aussi "Retour".

[^ 9]: Cependant, je pense que la technologie juridique a différentes façons de s'impliquer, comme ceux qui créent une entreprise, ceux qui la développent, ceux qui l'essaient, ceux qui diffusent des informations et ceux qui attendent et voient. Je pense que chaque personne a sa propre évaluation de chaque technologie et produit, et je pense que c'est très bien.

[^ 10]: À ce moment-là, je pensais que si j'apprenais la programmation, je serais capable de comprendre la technologie. Mais maintenant, c'est un peu différent, et je pense qu'ils sont fondamentalement séparés (bien qu'ils soient complémentaires les uns des autres) et doivent être étudiés. Si vous le comparez aux affaires juridiques, c'est comme: «Un examen de centaines de contrats ne vous donne pas une idée du droit civil et commercial. Et vice versa. Dans les deux cas, vous devez l'étudier en tant que tel. C'est ça?

[^ 11]: Peu importe, mais le doseur 3 était intéressant.

[^ 12]: A l'origine, j'ai beaucoup de cheveux, donc je pense que ça va encore.

[^ 13]: Une phrase célèbre de M. Soichi Ito, le directeur du MIT Media Lab (ancien). Le texte intégral du discours est ici.

[^ 14]: Le nombre de lois de traduction en anglais publiées dans Japanese Law Foreign Language Translation Database System est actuellement d'environ 750 (un peu moins de 10% de toutes les lois). ), Mais il semble qu'une expansion significative soit prévue dans les trois prochaines années, centrée sur des lois et règlements importants. http://www.moj.go.jp/housei/hourei-shiryou-hanrei/housei03_00013.html

Recommended Posts

J'ai créé mon propre outil de recherche à l'aide de l'API Law [Smart Roppo]
J'ai fait ma propre langue. (1)
J'ai fait ma propre langue (2)
J'ai fait ma propre AML
J'ai créé un guide de programme original en utilisant l'API de guide de programme NHK.
J'ai créé ma propre bibliothèque Python
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'utiliser l'API BigQuery Storage
Je n'ai ni les compétences ni la force, mais j'ai créé mon propre compilateur
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
J'ai essayé d'utiliser l'API Google Cloud Vision
[J'ai essayé d'utiliser Pythonista 3] Importation de mon propre module
J'ai créé mon propre générateur de site statique primitif
J'ai créé mon propre robot de liaison parallèle (édition logicielle)
J'ai essayé d'apprendre mon propre ensemble de données en utilisant Chainer Trainer
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai fait mon propre robot à liaison parallèle (édition mécanique)
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
J'ai fait un modèle VGG16 en utilisant TensorFlow (en chemin)
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai créé mon propre réseau de neurones à propagation directe à 3 couches et j'ai essayé de comprendre le calcul en profondeur.
Essayez d'utiliser l'API Twitter
J'ai essayé de toucher l'API Qiita
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API PeeringDB 2.0
[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement
Python> J'ai créé un code de test pour mon propre fichier externe
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
J'ai essayé d'analyser mon chanteur préféré (SHISHAMO) en utilisant l'API Spotify
J'ai essayé de créer un outil d'échafaudage pour le framework Web Python Bottle
J'ai créé mon propre plug-in de filtre pour l'analyse de texte d'Ansible
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
[Kaggle] J'ai fait une collection de problèmes en utilisant le didacticiel Titanic