[PYTHON] Articles en vrac pour ceux qui veulent commencer le traitement du langage naturel

Traitement du langage naturel

Le traitement du langage naturel (anglais: traitement du langage naturel, abréviation: NLP) est une série de technologies permettant à un ordinateur de traiter le langage naturel que les humains utilisent au quotidien, et est utilisé en intelligence artificielle et en linguistique. C'est un champ.

[Traitement du langage naturel de Wikipedia](https://ja.wikipedia.org/wiki/natural language processing)

Au cours des dernières années (plus tôt?), Lorsque j'ai effectué une recherche sur Google La description Wikipédia est maintenant affichée dans un cadre carré, Cela signifie également "extraire des parties importantes de Wikipedia" Il est considéré comme un type de traitement du langage naturel. (En passant, "extraire la première phrase d'une phrase" est C'est une règle empirique bien connue pour résumer des tâches telles que les actualités et les reportages. )

API Le traitement du langage naturel est profond et il est amusant de mettre en œuvre un traitement concret par vous-même, Il semble y avoir une API qui peut être utilisée facilement même si ce n'est pas le cas Cette fois, je vais le présenter.

API goo lab

https://labs.goo.ne.jp/api/ supported by goo

Il y a plusieurs choses.

Essayes-en

On m'a dit d'envoyer une demande POST, donc Peu importe comment vous le faites, mais cette fois je vais l'essayer avec python.

python


# -*- coding: utf-8 -*-

import json
import requests

# goo
# Overview: Japanese Word Similarity API
app_id = #ID you get when registration

url_shortsum = "https://labs.goo.ne.jp/api/shortsum"
url_entity = "https://labs.goo.ne.jp/api/entity"
url_similarity = "https://labs.goo.ne.jp/api/similarity"


def shortsum(length, review_list, request_id="record001"):
	# shortsum API interface: https://labs.goo.ne.jp/api/2015/1150/
	payload = {"app_id": app_id, "request_id": request_id, "length": length, "review_list": review_list}
	headers = {'content-type': 'application/json'}
	r = requests.post(url_shortsum, data=json.dumps(payload), headers=headers)
	print r.text

def entity(sentence, class_filter, request_id="record002"):
	# entity API interface: https://labs.goo.ne.jp/api/2015/336/
	# “ORG”(organization name), “PSN”(person name), “LOC”(location name), “DAT”(date expression) and “TIM”(time expression)
	payload = {"app_id": app_id, "request_id": request_id, "sentence": sentence, "class_filter": class_filter}
	headers = {'content-type': 'application/json'}
	r = requests.post(url_entity, data=json.dumps(payload), headers=headers)
	print r.text

def similarity(word1, word2, request_id="record003"):
	# similarity API interface: https://labs.goo.ne.jp/api/2015/330/
	payload = {"app_id": app_id, "request_id": request_id, "query_pair": [word1, word2]}
	headers = {'content-type': 'application/json'}
	r = requests.post(url_similarity, data=json.dumps(payload), headers=headers)
	print r.text


if __name__ == '__main__':
	
	shortsum(120, [
		"Je l'ai déjà acheté, donc ce smoothie a un goût fruité et est très délicieux. C'était une bonne affaire car j'ai pu l'acheter à bas prix cette fois-ci. Ce smoothie est facile à boire et le goût de mangue est rafraîchissant sans me fatiguer, alors j'aimerais le répéter.",
		"Le smoothie vert tant attendu est arrivé. Je n'aime pas le lait ou le lait de soja, alors je l'ai divisé avec 180 cc d'eau et je l'ai bu. Il ne sentait pas aussi vert que prévu, et le goût de la mangue était faible et pas délicieux. J'ai imaginé quelque chose de plus riche, mais c'est assez mince probablement à cause de l'eau. Il semble préférable de boire à température ambiante, mais je voulais le casser avec de la glace. Peut-être à cause de l'eau, je n'ai pas faim et il semble impossible de remplacer un repas. Personnellement, je voulais incorporer des enzymes dans mon corps ... Quand j'ai dit à ma connaissance que je l'avais acheté, j'ai reçu les avis suivants. "Les enzymes de métabolisation et de digestion sont complètement différentes. Les smoothies peuvent aider à la digestion, mais ils ne sont pas comme des enzymes métaboliques. Ils sont d'abord décomposés dans l'estomac, donc ils ne vont pas là où ils en ont besoin." Maintenant, qu'en est-il de l'effet? Je veux prendre des enzymes."
		]
	)
	entity("M. Yamashita se rendra à Niigata demain à 10 h 30.", "ORG|PSN|LOC|DAT")
	similarity("Bonne volonté", "vendeur")

Envoyez une requête POST avec requests.post (argument). Dans l'API de résumé de la réputation des produits, je vais mettre environ deux critiques de produits sur un certain site de vente par correspondance.

Résultat d'exécution

python


(agile_env)nlp $ python test.py
{"request_id":"record001","length":60,"summary":"Je l'ai déjà acheté, donc ce smoothie a un goût fruité et est très délicieux. C'était une bonne affaire car j'ai pu l'acheter à bas prix cette fois-ci."}
{"request_id":"record002","class_filter":"ORG|PSN|LOC|DAT","ne_list":[["Yamashita","PSN"],["demain","DAT"],["Niigata","LOC"]]}
{"request_id":"record003","score":0.4345982085070782}
(agile_env)nlp $ 
(agile_env)nlp $ 
(agile_env)nlp $ 
(agile_env)nlp $ python test.py
{"request_id":"record001","length":120,"summary":"C'était une bonne affaire car j'ai pu l'acheter à bas prix cette fois-ci. Je n'aime pas le lait ou le lait de soja, alors je l'ai divisé avec 180 cm3 d'eau et je l'ai bu. Il semble préférable de boire à température ambiante, mais je voulais le casser avec de la glace."}
{"request_id":"record002","class_filter":"ORG|PSN|LOC|DAT","ne_list":[["Yamashita","PSN"],["demain","DAT"],["Niigata","LOC"]]}
{"request_id":"record003","score":0.4345982085070782}

"length":60 Est la longueur (caractères) du résumé que vous créez à partir de la révision. Je n'ai pas l'impression de voir des tendances dans les deux cas, À mesure que vous augmentez le nombre de caractères, vous pouvez voir que les détails sont inclus en conséquence. Après cela, vous pouvez ressentir le "rapport qualité-prix" avec 60 ou 120 caractères.

«Goodwill» et «Salesman» Il semble intéressant de voir la similitude entre les deux mots utilisés dans le mystère.

Analyse des émotions

Possibilités d'extension de la "Recherche en temps réel Yahoo" à partir de "l'analyse émotionnelle" - Demandez à l'équipe de développement Comme vous pouvez le voir dans l'article

Pour un mot clé donné Juger le genre de sentiments que vous ressentez par positif / négatif (positif / négatif) Une telle analyse semble être le courant dominant.

difficulté

Ce tweet concerne le mot clé "Anitube fermé" Est-ce «positif» ou «négatif»?

感情分析.png

L'apprentissage en profondeur

Sujets: Réponse automatique par e-mail

Récemment, Google a introduit une technologie qui élargit vos rêves. Computer, respond to this email.

Et plus récemment, les algorithmes qui sous-tendent ce développement technologique Publié comme OSS pour pouvoir être utilisé de l'extérieur. Google releases TensorFlow: Search giant makes its artificial intelligence software available to the public

TensorFlow Get Started

Recommended Posts

Articles en vrac pour ceux qui veulent commencer le traitement du langage naturel
Se préparer à démarrer le traitement du langage naturel
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
Pour ceux qui souhaitent effectuer un traitement du langage naturel en utilisant les connaissances de WikiPedia qui vont au-delà de la simple correspondance de mots-clés
Rejoignez Azure avec Go ~ Pour ceux qui veulent démarrer et connaître Azure avec Go ~
5 raisons pour lesquelles le traitement est utile pour ceux qui veulent se lancer avec Python
Points ennuyeux pour ceux qui veulent présenter Ansible
Pour ceux qui veulent écrire Python avec vim
Référence de référence pour ceux qui veulent coder avec Rhinoceros / Grasshopper
Traitement du langage naturel pour les personnes occupées
Procédure d'inscription PyPI pour ceux qui veulent faire leurs débuts PyPI
Technique Python pour ceux qui veulent se débarrasser des débutants
[Traitement du langage naturel] Je souhaite rencontrer un ingénieur qui change de poste (ou juste avant)
J'ai analysé les données Airbnb pour ceux qui veulent rester à Amsterdam
Cours de logiciels pour ceux qui commencent à rechercher l'espace
Pour ceux qui veulent apprendre Excel VBA et se lancer avec Python
J'ai demandé à un ami qui travaille dans l'apprentissage automatique dans une entreprise informatique très connue. Apprentissage automatique (traitement du langage naturel) Ce que je veux apprendre pour l'auto-apprentissage
Mettre en place un environnement de développement pour le traitement du langage naturel
Python: traitement du langage naturel
PostgreSQL - Pour vous qui voulez INSÉRER à grande vitesse
[Pour les débutants] Analyse du langage à l'aide de l'outil de traitement du langage naturel "GiNZA" (de l'analyse morphologique à la vectorisation)
RNN_LSTM2 Traitement du langage naturel
Créer un environnement pour le traitement du langage naturel avec Python
Construction d'environnement pour ceux qui veulent étudier Python facilement avec VSCode (pour Mac)
Comparez comment écrire le traitement des listes par langue
Pour ceux qui veulent afficher les images côte à côte dès que possible avec matplotlib de Python
[Pour ceux qui veulent utiliser TPU] J'ai essayé d'utiliser l'API de détection d'objets Tensorflow 2
Traitement du langage naturel 1 Analyse morphologique
Traitement du langage naturel 3 Continuité des mots
Traitement du langage naturel 2 similitude de mots
Une procédure de création d'environnement moderne pour ceux qui veulent se lancer immédiatement avec Python
[Phrase courte] easygui pour ceux qui veulent utiliser une interface graphique simple avec Python très facilement
[Version 2020 pour les débutants] Méthode d'étude recommandée pour ceux qui souhaitent devenir eux-mêmes ingénieur en IA
Créer un environnement Python pour ceux qui veulent devenir des data scientists 2016
[Introduction à RasPi4] Construction de l'environnement, système de traitement du langage naturel mecab, etc. .. .. ♪
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Pourquoi l'expression distribuée des mots est-elle importante pour le traitement du langage naturel?
Résumez comment prétraiter le texte (traitement du langage naturel) avec l'api tf.data.Dataset
Un mémo pour ceux qui veulent une communication de socket rapide avec netcat
Une histoire sur la tentative de reproduire Katsuo Isono, qui ne réagit pas aux inconvénients, par traitement du langage naturel.
100 coups de traitement du langage pour ceux qui ne comprennent pas la signification des phrases à problèmes
Étudiez le traitement du langage naturel avec Kikagaku
100 traitements du langage naturel frappent le chapitre 4 Commentaire
[Traitement du langage naturel] Prétraitement avec le japonais
Logivan du langage artificiel et traitement du langage naturel (traitement du langage artificiel)
100 langues de traitement frappent 2020 "pour Google Colaboratory"
Résumé de l'installation de l'analyseur de traitement du langage naturel
Analyse d'image réalisée avec google Colab pour ceux qui commencent à rechercher l'espace
3. Traitement du langage naturel avec Python 1-2. Comment créer un corpus: Aozora Bunko
Pour ceux qui veulent utiliser Jupyter Notebook dès 1 seconde car ils ne connaissent pas le mot de passe