[JAVA] Commentaire sur l'API d'analyse de syntaxe COTOHA

Il existe plusieurs sources

Post 2 Analyse syntaxique de l'API COTOHA en Java

J'ai remarqué pendant le test de, mais dans Démo API, le résultat de l'analyse de "Ma femme et ma fille sont allées en voyage".

image.png

Je me demandais si cela représente clairement toutes les bonnes réponses, mais en réalité


{
      "id" : 2,
      "form" : "Fille",
      "kana" : "Musume",
      "lemma" : "Fille",
      "pos" : "nom",
      "dependency_labels" : [ {
        "token_id" : 0,
        "label" : "conj"
      }, {
        "token_id" : 3,
        "label" : "case"
      } ],
      "attributes" : { }
    }

Il est renvoyé comme, et il ressemble à la ligne rouge ci-dessous dans la figure.

image.png

Puisque le nom d'attribut de JSON est "dependency_labels", il est facile de comprendre qu'il y en a plusieurs, mais si vous ne regardez que la démo, il semble qu'il n'y en ait pas plusieurs, donc j'ai pensé qu'il fallait faire attention. Il semble également que la démo ne transmette pas pleinement l'attrait de l'API.

Un seul document peut être envoyé

Un seul "document" (par exemple, plusieurs journaux dans le centre d'appels) peut être spécifié pour le traitement dans un appel API. Lorsque j'essaie de traiter un grand nombre de documents, je souhaite traiter plusieurs documents à la fois au lieu d'un par un, j'ai donc pensé que ce point devait également être noté. (Exemple: il est inapproprié de concaténer les journaux d'appels de différents clients pour une analyse syntaxique.) Attendez-vous à ce que la prochaine version puisse traiter plusieurs documents.

image.png

Comportement lors de l'analyse de plusieurs phrases

Lorsque j'envoie "Ma femme et ma fille sont allées en voyage. Mon fils et moi avons mangé de la viande grillée.", La réponse suivante est renvoyée.


{
  "result" : [ {
    "chunk_info" : {
      "id" : 0,
      "head" : 1,
      "dep" : "P",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ ]
    },
    "tokens" : [ {
      "id" : 0,
      "form" : "Belle-fille",
      "kana" : "Yo moi",
      "lemma" : "Belle-fille",
      "pos" : "nom",
      "features" : [ ],
      "common_noun_semantic" : [ 49, 76, 88 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "dependency_labels" : [ {
        "token_id" : 1,
        "label" : "cc"
      } ],
      "attributes" : { }
    }, {
      "id" : 1,
      "form" : "Quand",
      "kana" : "À",
      "lemma" : "Quand",
      "pos" : "Assistant de cas",
      "features" : [ "Utilisation continue" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 1,
      "head" : 7,
      "dep" : "D",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ {
        "link" : 0,
        "label" : "other"
      } ]
    },
    "tokens" : [ {
      "id" : 2,
      "form" : "Fille",
      "kana" : "Musume",
      "lemma" : "Fille",
      "pos" : "nom",
      "features" : [ ],
      "common_noun_semantic" : [ 49, 59, 88 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "dependency_labels" : [ {
        "token_id" : 0,
        "label" : "conj"
      }, {
        "token_id" : 3,
        "label" : "case"
      } ],
      "attributes" : { }
    }, {
      "id" : 3,
      "form" : "Est",
      "kana" : "C",
      "lemma" : "Est",
      "pos" : "Mots auxiliaires consécutifs",
      "features" : [ ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 2,
      "head" : 3,
      "dep" : "D",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ ]
    },
    "tokens" : [ {
      "id" : 4,
      "form" : "Voyage",
      "kana" : "Ryoko",
      "lemma" : "Voyage",
      "pos" : "nom",
      "features" : [ "mouvement" ],
      "common_noun_semantic" : [ 1658, 1659, 1660 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ 18 ],
      "dependency_labels" : [ {
        "token_id" : 5,
        "label" : "case"
      } ],
      "attributes" : { }
    }, {
      "id" : 5,
      "form" : "À",
      "kana" : "ré",
      "lemma" : "À",
      "pos" : "Assistant de cas",
      "features" : [ "Utilisation continue" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 3,
      "head" : 7,
      "dep" : "P",
      "chunk_head" : 0,
      "chunk_func" : 2,
      "links" : [ {
        "link" : 2,
        "label" : "purpose"
      } ],
      "predicate" : [ "past" ]
    },
    "tokens" : [ {
      "id" : 6,
      "form" : "ligne",
      "kana" : "je",
      "lemma" : "aller",
      "pos" : "Tronc de verbe",
      "features" : [ "IKU" ],
      "common_noun_semantic" : [ 2053, 2132 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ 15, 20, 29, 32, 5 ],
      "dependency_labels" : [ {
        "token_id" : 4,
        "label" : "nmod"
      }, {
        "token_id" : 7,
        "label" : "aux"
      }, {
        "token_id" : 8,
        "label" : "aux"
      }, {
        "token_id" : 9,
        "label" : "punct"
      } ],
      "attributes" : { }
    }, {
      "id" : 7,
      "form" : "Tsu",
      "kana" : "Tsu",
      "lemma" : "Tsu",
      "pos" : "Fin d'utilisation verbale",
      "features" : [ ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    }, {
      "id" : 8,
      "form" : "Ta",
      "kana" : "Ta",
      "lemma" : "Ta",
      "pos" : "Suffixe de verbe",
      "features" : [ "Arrêtez" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    }, {
      "id" : 9,
      "form" : "。",
      "kana" : "",
      "lemma" : "。",
      "pos" : "Phrase",
      "features" : [ ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 4,
      "head" : 7,
      "dep" : "D",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ ]
    },
    "tokens" : [ {
      "id" : 10,
      "form" : "je",
      "kana" : "je",
      "lemma" : "je",
      "pos" : "nom",
      "features" : [ "Synonyme" ],
      "common_noun_semantic" : [ 37, 8 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "dependency_labels" : [ {
        "token_id" : 11,
        "label" : "cc"
      } ],
      "attributes" : { }
    }, {
      "id" : 11,
      "form" : "Quand",
      "kana" : "À",
      "lemma" : "Quand",
      "pos" : "Assistant de cas",
      "features" : [ "Utilisation continue" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 5,
      "head" : 7,
      "dep" : "D",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ ]
    },
    "tokens" : [ {
      "id" : 12,
      "form" : "fils",
      "kana" : "Musco",
      "lemma" : "fils",
      "pos" : "nom",
      "features" : [ ],
      "common_noun_semantic" : [ 48, 58, 87 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "dependency_labels" : [ {
        "token_id" : 13,
        "label" : "case"
      } ],
      "attributes" : { }
    }, {
      "id" : 13,
      "form" : "Est",
      "kana" : "C",
      "lemma" : "Est",
      "pos" : "Mots auxiliaires consécutifs",
      "features" : [ ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 6,
      "head" : 7,
      "dep" : "D",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ ]
    },
    "tokens" : [ {
      "id" : 14,
      "form" : "Viande rôtie",
      "kana" : "Yakiniku",
      "lemma" : "Viande rôtie",
      "pos" : "nom",
      "features" : [ ],
      "common_noun_semantic" : [ 843, 852 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "dependency_labels" : [ {
        "token_id" : 15,
        "label" : "case"
      } ],
      "attributes" : { }
    }, {
      "id" : 15,
      "form" : "À",
      "kana" : "Wo",
      "lemma" : "À",
      "pos" : "Assistant de cas",
      "features" : [ "Utilisation continue" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  }, {
    "chunk_info" : {
      "id" : 7,
      "head" : -1,
      "dep" : "O",
      "chunk_head" : 0,
      "chunk_func" : 1,
      "links" : [ {
        "link" : 1,
        "label" : "agent"
      }, {
        "link" : 3,
        "label" : "manner"
      }, {
        "link" : 4,
        "label" : "coagent"
      }, {
        "link" : 5,
        "label" : "agent"
      }, {
        "link" : 6,
        "label" : "object"
      } ],
      "predicate" : [ "past" ]
    },
    "tokens" : [ {
      "id" : 16,
      "form" : "manger",
      "kana" : "Tabe",
      "lemma" : "manger",
      "pos" : "Tronc de verbe",
      "features" : [ "A" ],
      "common_noun_semantic" : [ 1581, 1590 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ 2, 23 ],
      "dependency_labels" : [ {
        "token_id" : 2,
        "label" : "nsubj"
      }, {
        "token_id" : 6,
        "label" : "advcl"
      }, {
        "token_id" : 10,
        "label" : "nmod"
      }, {
        "token_id" : 12,
        "label" : "nsubj"
      }, {
        "token_id" : 14,
        "label" : "dobj"
      }, {
        "token_id" : 17,
        "label" : "aux"
      }, {
        "token_id" : 18,
        "label" : "punct"
      } ],
      "attributes" : { }
    }, {
      "id" : 17,
      "form" : "Ta",
      "kana" : "Ta",
      "lemma" : "Ta",
      "pos" : "Suffixe de verbe",
      "features" : [ "Arrêtez" ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    }, {
      "id" : 18,
      "form" : "。",
      "kana" : "",
      "lemma" : "。",
      "pos" : "Phrase",
      "features" : [ ],
      "common_noun_semantic" : [ ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ ],
      "attributes" : { }
    } ]
  } ],
  "status" : 0,
  "message" : ""
}


Si vous regardez "Aller" ici, il y a quatre destinations, "4,7,8,9". En fait, il devrait être 6, y compris "0,2", mais l'API renvoie également 4.

Résultat initialement attendu image.png

Vous obtiendrez les résultats que vous attendez si vous envoyez une seule déclaration au lieu d'envoyer plusieurs déclarations en même temps.

La destination «aller» lorsque seulement «la mariée et la fille sont allées en voyage» a été envoyée

{
      "id" : 6,
      "form" : "ligne",
      "kana" : "je",
      "lemma" : "aller",
      "pos" : "Tronc de verbe",
      "features" : [ "IKU" ],
      "common_noun_semantic" : [ 2053, 2132 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ 15, 20, 29, 32, 5 ],
      "dependency_labels" : [ {
        "token_id" : 0,
        "label" : "nmod"
      }, {
        "token_id" : 2,
        "label" : "nsubj"
      }, {
        "token_id" : 4,
        "label" : "nmod"
      }, {
        "token_id" : 7,
        "label" : "aux"
      }, {
        "token_id" : 8,
        "label" : "aux"
      }, {
        "token_id" : 9,
        "label" : "punct"
      } ],
      "attributes" : { }
    }

L'analyse de la syntaxe est-elle un peu suspecte lorsque j'envoie plusieurs phrases ou y a-t-il un problème avec mon nom? .. Il est nécessaire d'enquêter.

La destination de «aller» lorsqu'une autre phrase est concaténée et envoyée après «la mariée et la fille sont parties en voyage».

{
      "id" : 6,
      "form" : "ligne",
      "kana" : "je",
      "lemma" : "aller",
      "pos" : "Tronc de verbe",
      "features" : [ "IKU" ],
      "common_noun_semantic" : [ 2053, 2132 ],
      "proper_noun_semantic" : [ ],
      "declinable_word_semantic" : [ 15, 20, 29, 32, 5 ],
      "dependency_labels" : [ {
        "token_id" : 4,
        "label" : "nmod"
      }, {
        "token_id" : 7,
        "label" : "aux"
      }, {
        "token_id" : 8,
        "label" : "aux"
      }, {
        "token_id" : 9,
        "label" : "punct"
      } ],
      "attributes" : { }
    }

Si vous regardez spec, il dit "phrase: instruction à analyser", et vous pouvez le lire comme une seule phrase. Cependant, "séparer par phrase" est également l'un des traitements du langage naturel, j'ai donc pensé que s'il ne cible qu'une seule phrase, ce sera un problème en tant que spécification d'API. Dans le domaine du text mining, contrairement au monde académique, je pense qu'il est rare de ne traiter qu'une seule phrase.

image.png

Par exemple, Stanford NLP renvoie également des sauts de phrase sous forme d'annotations. (Par exemple, "Je suis allé voir le concert de Morning Musume." Doit être analysé correctement.)

Si je suis un utilisateur professionnel, contactez le support. Si j'étais en charge de la livraison, je vous demanderais instamment de le réparer. Si j'étais un chef de file du développement, ce serait réglé immédiatement ^ _ ^ ;;

Lien

COTOHA API Portal

c'est tout

Recommended Posts

Commentaire sur l'API d'analyse de syntaxe COTOHA
Analyser l'analyse syntaxique de l'API COTOHA en Java
Essayez d'utiliser l'analyse syntaxique de l'API COTOHA en Java
Comment désactiver Set-Cookie de l'API sur la face avant
L'API ressemble à ceci!
Scala s'exécute sur une JVM