https://cloud.google.com/sdk/docs/quickstart-mac-os-x?hl=ja
https://cloud.google.com/natural-language/docs/common/auth?hl=ja#set_up_a_service_account
export GOOGLE_APPLICATION_CREDENTIALS="/Users/users/hoge/key.json"
https://cloud.google.com/natural-language/docs/getting-started?hl=ja
https://github.com/GoogleCloudPlatform/google-cloud-python python3.6 est également pris en charge
pip install --upgrade google-cloud
gcloud auth application-default login
https://googlecloudplatform.github.io/google-cloud-python/stable/language-responses.html#google.cloud.language.entity.Entity
https://googlecloudplatform.github.io/google-cloud-python/stable/language-usage.html Créez une classe pratique comme suit, en vous référant à:
from google.cloud import language
class GCNaturalLanguage(object):
def __init__(self, upper=10000):
# Instantiates a client
self.client = language.Client()
self.upper = upper
def get_entity(self, text):
length = len(text)
if length > self.upper:
print("{} .. too long".format(length))
return {}
document = self.client.document_from_text(text, language='ja')
# Detects the sentiment of the text
res = document.analyze_entities()
print("{} characters => done!".format(len(text)))
dic = {}
for entity in res.entities:
for m in entity.mentions:
dic.update({m.text.begin_offset: m.text.content})
return dic
Exemple)
import GCNaturalLanguage
gcn = GCNaturalLanguage()
dic = gcn.get_entity("J'ai essayé de définir un domaine croisé dans l'analyse d'accès")
print(dic)
# 21 characters => done!
# {0: 'analyse d'accès', 7: 'Domaine croisé'}
Au fait, dans MeCab,
#Mecab, qui est populaire en tant que dictionnaire étendu-ipadic-J'utilise neologd
$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
J'ai essayé de définir un domaine croisé dans l'analyse d'accès
Nomenclature d'analyse d'accès,Nom propre,Général,*,*,*,analyse d'accès,Accéder à Kaiseki,Accéder à Kaiseki
Auxiliaire,Assistant de cas,Général,*,*,*,alors,De,De
Croix substantif,Changer de connexion,*,*,*,*,traverser,traverser,traverser
Nomenclature de domaine,Général,*,*,*,*,domaine,domaine,domaine
Auxiliaire,Assistant de cas,Général,*,*,*,À,Wo,Wo
Définition du nom,Changer de connexion,*,*,*,*,Réglage,Réglage,Réglage
Verbe shi,Indépendance,*,*,Sahen / Suru,Type continu,Faire,Shi,Shi
Te assistant,Assistant de connexion,*,*,*,*,main,Te,Te
Verbe mi,Non indépendant,*,*,Un pas,Type continu,Vue,Mi,Mi
Verbe auxiliaire,*,*,*,Spécial,Forme basique,Ta,Ta,Ta
EOS
est devenu.
Vous pouvez voir que «l'analyse d'accès» est bien dite à la fois pour la première et la seconde. (Au fait, si vous effectuez une analyse morphologique directement en tant que mecab
sans prendre mecab-ipadic-neologd
comme argument," accès "et" analyse "seront séparés.)
Cependant, par exemple, si vous souhaitez extraire le terme technique "cross-domain", vous ne pouvez pas l'extraire directement avec MeCab, donc l'utilisation de l'outil externe GCP Natural Language API permettra d'atteindre l'objectif. Afin de l'utiliser à l'avenir, il est bon d'enregistrer celui extrait par GCP en tant que nouveau mot dans le dictionnaire utilisateur, puis de l'utiliser comme si vous vouliez à nouveau utiliser MeCab [^ add].
[^ add]: J'ai écrit les détails sur http://qiita.com/knknkn1162/items/8c12f42dd167aae01c02#_reference-aa421a94c959d84ff7fb.
Recommended Posts