[PYTHON] Rechercher des données de brevets en consultant la partie R&D du rapport titres (créer un tableau de bord)

0. Introduction

Motivation

Lors de l'analyse des informations sur les brevets, il a longtemps été dit que nous devrions examiner d'autres informations ainsi que les brevets, mais pour moi, en dehors de la recherche de brevets, je fais une recherche en ligne et écris des notes dans Excel. C'était assez ennuyeux de faire des allers-retours entre les informations sur les brevets et d'autres informations tout en les prenant. Par conséquent, j'ai pensé que ce serait bien d'avoir un tableau de bord où je pourrais me référer à diverses informations tout en me concentrant sur la recherche de brevets, alors j'ai décidé de le faire. Tout d'abord, j'ai envisagé d'essayer d'énumérer le rapport sur les valeurs mobilières qui contient des informations assez soignées et le texte de la partie «à propos de la recherche et du développement». .. Le texte de la section «À propos de la R & D» ressemble à ceci, et il est utile car il décrit le type de R & D que l'entreprise essaie de faire.

6 [Activités de recherche et développement] Le Groupe est engagé dans le renforcement de la compétitivité des produits, le développement de nouveaux produits et le développement de nouveaux produits commerciaux dans chaque segment des systèmes de dispositifs électroniques, des systèmes de haute technologie, des systèmes scientifiques / médicaux et des systèmes industriels / informatiques. Nous y travaillons. Les dépenses de R & D pour l'exercice consolidé en cours liées à ces activités se sont élevées à 20 163 millions de yens, et les résultats de R & D pour chaque segment sont les suivants. Sur le marché des semi-conducteurs de systèmes d'appareils électroniques, les processeurs d'application et la mémoire (NAND, DRAM) pour les appareils mobiles ont été solides en raison de la croissance des serveurs et des smartphones tandis que la demande de PC a diminué. Dans les appareils avancés, le rapport de production de masse de produits de génération 14 à 16 nm utilisant la technologie Multi-Patterning a augmenté, et la construction d'une ligne de prototypes de génération 10 nm et le développement de la génération 7 nm ont commencé. De plus, chaque fabricant de mémoire se concentre sur la production de masse de 3D-NAND. De cette manière, parallèlement à la miniaturisation, la structuration tridimensionnelle de la logique et de la mémoire a progressé, et dans la fabrication d'appareils de pointe, une productivité élevée et une structuration compliquée correspondant à l'augmentation du nombre de processus sont prises en charge ... (Omis ci-dessous)

Y a-t-il quelque chose qui peut être utilisé dans les services précédents?

Je me suis demandé s'il existait un service qui fournirait des données textuelles pour les rapports sur les titres via API, etc., et j'ai trouvé Buffet Code et [CoARiJ]. Il y en avait (https://github.com/chakki-works/CoARiJ), mais aucun d'entre eux ne répondait aux exigences. Je ne peux pas m'en empêcher, j'ai donc décidé d'extraire le texte de la partie R&D et de le stocker moi-même dans BiGQuery.

1. Résultat

2. Configuration

2-1 Configuration

image.png

2-2 Codes et données utilisés

*CoARiJ

2-3 Explication telle que SQL

SQL breveté

WITH gpat AS (
SELECT 
      publication_number as pubnum,
      top_terms,
      url
FROM patents-public-data.google_patents_research.publications
),

pat AS (
SELECT publication_number as pubnum,
       filing_date as appday,
       STRING_AGG(DISTINCT title.text) as title,
       #STRING_AGG(DISTINCT abstract.text) as abst,
       STRING_AGG(DISTINCT appls.name,'|') as applicants
FROM `patents-public-data.patents.publications`,UNNEST(title_localized) as title,UNNEST(abstract_localized) as abstract,UNNEST(assignee_harmonized) as appls
WHERE SUBSTR(publication_number,0,2) = 'JP' AND filing_date > 20100101
GROUP BY pubnum,filing_date
)

SELECT gpat.pubnum,
       gpat.url,
       gpat.top_terms,
       pat.title,
       #pat.abst,
       pat.applicants,
       pat.appday
FROM gpat
INNER JOIN pat
ON gpat.pubnum = pat.pubnum

La table qui a finalement été sortie dans Data Studio

Field name Type Mode La description
pubnum STRING NULLABLE Numéro de publication
url STRING NULLABLE Lier l'URL au brevet Google
top_terms STRING REPEATED Mots caractéristiques de l'extraction de Google
title STRING NULLABLE Titre
applicants STRING NULLABLE demandeur
appday INTEGER NULLABLE Date de dépôt

* Côté rapport titres

Utilisez python pour récupérer les données au format xbrl depuis EDINET, et utilisez coalij pour extraire la partie R&D (partie "A propos de la recherche et développement"). Dans le même temps, écrivez-le séparément à l'aide de sudachi, placez-le dans BigQuery, puis calculez et stockez tfidf avec SQL créé la dernière fois.

<détails>

SQL côté rapport valeurs mobilières </ summary>
↓ Générer une table pour le calcul tfidf


#SQL pour calculer et stocker tfidf à partir du texte écrit
#~ SQL a été trop émis et a disparu quelque part de l'historique \(^o^)/ Ota

SQL extrait avec tfidf> 0,01 ↓


SELECT id,
      year,
      comname,
      secCode,
      wakatiwd,
      STRING_AGG(tfidf.word) as tfidf_word,
      COUNT(tfidf.word) as tfidf_count,
      LENGTH(wakatiwd) as textlen 
FROM ~~(secret).SecuritiesReport_tfidf,UNNEST(tfidfs) as tfidf
WHERE tfidf.tf_idf > 0.01
GROUP BY id,year,comname,secCode,wakatiwd

La table qui a finalement été sortie dans Data Studio

Field name Type Mode La description
id STRING NULLABLE Identifiant du document fourni par EDINET
year INTEGER NULLABLE Année de soumission du rapport
comname STRING NULLABLE Nom de la compagnie
secCode INTEGER NULLABLE Code des valeurs
wakatiwd STRING NULLABLE R&Le résultat de la division de la partie D avec sudachi
tfidf_word STRING NULLABLE avec tfidf
tfidf_count INTEGER NULLABLE tfidf
textlen INTEGER NULLABLE

3. Version terminée

Comme ça. Tout en regardant le texte dans la partie R & D du rapport sur les valeurs mobilières à gauche, si vous rencontrez des termes techniques qui vous intéressent, définissez un mot de recherche en anglais et reflétez les résultats dans la liste des brevets à droite. image.png

4. Mettre à niveau

Liste des fonctionnalités que vous souhaitez ajouter ensuite

  • À partir des mots extraits du texte R & D à gauche, extrayez les mots qui ressemblent à des termes techniques et placez-les dans le champ de recherche à droite.
  • Expansion de mots (dans la version de brevet word2vec, dictionnaire de termes techniques, etc.)
  • pipeline (cette fois, il s'agissait de données de rapport sur les titres jusqu'en juin 2020, mais j'aimerais les mettre automatiquement dans BigQuery tous les mois plutôt que de le faire par lots)
  • En fait, il est plus facile d'en obtenir un étranger (BigQuery's Public DataSet a quelque chose comme ça )))
  • Nous envisageons de voir ensemble d'autres sources de données (réglementations légales, tendances sociales, etc.). ..
  • Je n'aime pas la conception de l'écran. Il semble que la mise en page des outils de BI et une certaine formation soient nécessaires.
  • Il y avait aussi ce genre de, donc j'aurais dû aussi acquérir les autres parties de texte!
  • Modifie le tfidf en temps réel en fonction de la population. Quand je l'ai fait pour la première fois cette fois, c'était lourd et souvent gelé, donc je l'ai calculé dans son ensemble. Puisque l'état initial de tfidf est idéal en premier lieu, nous réfléchissons à ce qu'il faut faire.

Recommended Posts

Rechercher des données de brevets en consultant la partie R&D du rapport titres (créer un tableau de bord)
Créez rapidement des données pour l'étiquetage des séries (balisage de participation)