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
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 ...".
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Le site Web ci-dessus s'affiche. Téléchargez et installez le JDK.
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)
[Site officiel] https://www.elastic.co/jp/products/elasticsearch
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
Exécutez la commande suivante
$ cd /usr/local/elasticsearch
$ bin/plugin install analysis-kuromoji
Exécutez la commande suivante
$ /usr/local/elasticsearch/bin/elasticsearch
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"
}
Exécutez la commande suivante
$ pip install elasticsearch
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 (^ _ ^;)
Oh, je n'ai pas utilisé Jupyter Notebook (sueur)
Recommended Posts