[PYTHON] Comment créer rapidement un environnement d'analyse morphologique à l'aide d'Elasticsearch sur macOS Sierra

Préparation

Je suis désolé pour le miso au premier plan, mais veuillez installer Jupyter Notebook sur macOS sur la page suivante car vous en aurez besoin plus tard. http://qiita.com/mix_dvd/items/d915752215db67919c06

Vérifiez et installez JAVA

Exécutez la commande suivante pour vérifier si elle est installée.

$ java -version

S'il n'est pas installé, la boîte de dialogue suivante s'affiche: Cliquez sur le bouton "Informations détaillées ...".

スクリーンショット 2016-07-20 11.23.23.png

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Le site Web ci-dessus s'affiche. Téléchargez et installez le JDK.

スクリーンショット 2016-07-20 11.26.24.png

Après l'installation, exécutez à nouveau la commande pour confirmer qu'elle est installée.

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Installez Elasticsearch

[Site officiel] https://www.elastic.co/jp/products/elasticsearch

Installation du programme

Exécutez la commande suivante

$ curl -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.4/elasticsearch-2.3.4.zip
$ unzip elasticsearch-2.3.4.zip
$ sudo mv elasticsearch-2.3.4 /usr/local/elasticsearch

Vérifier la version

$ /usr/local/elasticsearch/bin/elasticsearch --version
Version: 2.3.4, Build: e455fd0/2016-06-30T11:24:31Z, JVM: 1.8.0_101

Installation du plug-in

Exécutez la commande suivante

$ cd /usr/local/elasticsearch
$ bin/plugin install analysis-kuromoji

Commencez

Exécutez la commande suivante

$ /usr/local/elasticsearch/bin/elasticsearch

Contrôle de fonctionnement

Démarrez un autre terminal et exécutez la commande suivante

$ curl localhost:9200

Vous pouvez également accéder à l'URL suivante avec un navigateur Web

http://localhost:9200

Démarrage réussi si la réponse suivante est reçue

{
  "name" : "Akasha",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.4",
    "build_hash" : "Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "build_timestamp" : "2016-06-30T11:24:31Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

Installer la bibliothèque pour Python

Exécutez la commande suivante

$ pip install elasticsearch

Exécution d'un exemple de code

Enregistrez le code suivant sous le nom test.py

test.py



# coding: utf-8

# # Elasticsearch

# In[1]:

from elasticsearch import Elasticsearch
es = Elasticsearch("localhost:9200")
es


# #Initialisation variable

# In[2]:

esIndex = "bot"
esType = "talks"


# #Ajouter un index

# - curl -X POST http://localhost:9200/bot/talks -d '{"mode":"Salutations", "words":"Bonjour"}'

# In[3]:

es.index(index=esIndex, doc_type=esType, body={"mode":"Salutations", "words":"Bonjour"})


# In[4]:

es.index(index=esIndex, doc_type=esType, body={"mode":"Salutations", "words":"Bonjour"})
es.index(index=esIndex, doc_type=esType, body={"mode":"Salutations", "words":"Bonsoir"})
es.index(index=esIndex, doc_type=esType, body={"mode":"Salutations", "words":"Au revoir"})
es.index(index=esIndex, doc_type=esType, body={"mode":"Salutations", "words":"bonne nuit"})
es.index(index=esIndex, doc_type=esType, body={"mode":"Citations", "words":"Rien à mourir et à ramasser"})


# #Modification d'index

# - curl -X POST http://localhost:9200/bot/talks?id=AVYGQm6Q8mtRod8eIWiq -d '{"mode":"Salutations","words":"Bonne nuit"}'
# 
#Mettre à jour si l'ID existe, ajouter si l'ID n'existe pas

# In[21]:

es.index(index=esIndex, doc_type=esType, id="AVYGQm6Q8mtRod8eIWiq", body={"mode":"Salutations", "words":"À demain"})


# #L'acquisition des données

# - curl -X GET http://localhost:9200/bot/talks/_search?pretty -d '{"query":{"match_all":{}}}'

# In[29]:

res = es.search(index=esIndex, body={"query": {"match_all": {}}})
res


# In[23]:

len(res["hits"]["hits"])

words = []
modes = []

for i in range(len(res["hits"]["hits"])):
    row = res["hits"]["hits"][i]["_source"]
    print(row)
    words.append(row["words"])
    modes.append(row["mode"])


# #Suprimmer les données

# - curl -X DELETE http://localhost:9200/bot/

# In[8]:

#es.indices.delete(index="bot")


# #Utilisation de plug-ins

# -Analyse morphologique

# In[24]:

text = "Il fait beau aujourd'hui, n'est-ce pas"


# In[25]:

def analyze(es, text):
    
    params = {"analyzer":"kuromoji"}
    body = {"text":text}
    
    http_status, data = es.indices.client.transport.perform_request(
        'GET',
        '/' + esIndex + '/_analyze',
        params=params,
        body=body
    )

    return map(lambda x: x.get('token'), data.get('tokens')[0:])


# In[26]:

tokens = analyze(es, text)
print(' '.join(tokens))


# In[30]:

for word in words:
    print(' '.join(analyze(es, word)))

Exécutez la commande suivante

$ python test.py

Succès si vous recevez la réponse suivante!

{'mode': 'Salutations', 'words': 'Bonjour'}
{'mode': 'Salutations', 'words': 'Bonsoir'}
{'mode': 'Salutations', 'words': 'Bonjour'}
{'mode': 'Salutations', 'words': 'Au revoir'}
{'mode': 'Salutations', 'words': 'bonne nuit'}
{'mode': 'Citations', 'words': 'Rien à mourir et à ramasser'}
{'mode': 'Salutations', 'words': 'À demain'}
Beau temps aujourd'hui
Bonjour
Bonsoir
Bonjour
Au revoir
bonne nuit
Ramassez un cadavre mort
demain

Eh bien, qu'allons-nous faire maintenant (^ _ ^;)

Postscript

Oh, je n'ai pas utilisé Jupyter Notebook (sueur)

Recommended Posts

Comment créer rapidement un environnement d'analyse morphologique à l'aide d'Elasticsearch sur macOS Sierra
Étapes rapides pour créer un environnement d'apprentissage automatique à l'aide de Jupyter Notebook sur macOS Sierra avec anaconda
Comment créer rapidement un environnement d'apprentissage automatique à l'aide de Jupyter Notebook avec UbuntuServer 16.04 LTS
Comment créer rapidement un environnement d'apprentissage automatique à l'aide de Jupyter Notebook avec UbuntuServer 16.04 LTS avec Anaconda
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
Comment installer cx_Oracle sur macOS Sierra
[Note] Comment créer un environnement de développement Ruby
[Note] Comment créer un environnement de développement Mac
Comment configurer un environnement Python à l'aide de pyenv
Comment créer un environnement Django (python) sur Docker
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
[Analyse morphologique] Comment ajouter un nouveau dictionnaire à Mecab
Comment créer un environnement Python sur Amazon Linux 2
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
Étapes pour créer rapidement un environnement d'apprentissage en profondeur sur Mac avec TensorFlow et OpenCV
Créer un environnement d'étude d'apprentissage automatique Python avec macOS Sierra
Une note sur la façon de préparer facilement un environnement de pratique Linux
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Remarques sur la façon de charger un environnement virtuel avec PyCharm
Comment configurer WSL2 sur Windows 10 et créer un environnement d'étude pour les commandes Linux
Créer un environnement Python sur Mac (2017/4)
Comment créer un package Conda
Comment installer Graph-Tool sur macOS
Comment créer un pont virtuel
Créer un environnement Linux sur Windows 10
Créer un environnement python dans centos
Comment créer un Dockerfile (basique)
Comment créer un fichier de configuration
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
Remarques sur la création d'un environnement LAMP à l'aide de Vagrant et VirtulBox
Comment créer un fichier factice CSV contenant du japonais à l'aide de Faker
De la construction de l'environnement PyCUDA à la programmation GPGPU sur Mac (MacOS 10.12 Sierra)
Comment créer un clone depuis Github
Comment créer un dossier git clone
Comment dessiner un graphique avec Matplotlib
Construire un environnement python sur MacOS (Catallina)
Comment créer un environnement NVIDIA Docker
Créez un environnement python sur votre Mac
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Comment installer un package à l'aide d'un référentiel
[Environnement de développement] Comment créer un ensemble de données proche de la base de données de production
Comment créer un référentiel à partir d'un média
Comment tester sur une page authentifiée par Django
[Migration mac version 2020] migration vers macos 10.15 Catarina Créer un environnement de travail à partir de zéro sans utiliser d'assistant (édition CUI)
[2015/11/19] Comment enregistrer un service localement à l'aide du SDK python avec naoqi os
Comment créer un environnement pour utiliser plusieurs versions de Python sur un Mac
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Comment partager un environnement virtuel [About requirements.txt]
Comment coder un drone en utilisant la reconnaissance d'image
Comment créer un objet fonction à partir d'une chaîne
[Latest] Comment créer un environnement Java sur Ubuntu
Comment créer un fichier JSON en Python
Comment installer rapidement h5py sur Windows 10 [non officiel]
[Venv] Créer un environnement virtuel python sur Ubuntu
Essayez de créer une nouvelle commande sous Linux
Comment vivre une vie décente avec Windows 2017
Comment créer une boîte de saisie Kivy 1 ligne