J'ai eu une erreur de valeur lors de l'utilisation de JUMAN ++ avec PyKNP

contenu de l'erreur

Quand j'essaye de décomposer morphologiquement une phrase japonaise de PyKNP en utilisant Human ++, j'obtiens cette erreur ...! ValueError: invalid literal for int() with base 10: 'input' (La méthode d'utilisation de Human et Juman ++ à partir de Python est omise)

  File "/$HOME/.pyenv/versions/anaconda3-2019.03/lib/python3.6/site-packages/pyknp/
juman/morpheme.py", line 143, in _parse_spec                                                   
    self.hinsi_id = int(parts[4])

ValueError: invalid literal for int() with base 10: 'input'

Cause potentielle d'erreur

Pour le moment, quand je le recherche en fonction du message d'erreur

Il semble que les espaces demi-largeur et les caractères demi-largeur soient mauvais.

Corriger le texte d'entrée

Remplacez donc tous les caractères demi-largeur par des caractères pleine largeur.

pourtant

Même si j'ai corrigé tous les caractères demi-largeur en caractères pleine largeur, la même erreur a continué à apparaître. Apparemment, la cause est différente de la situation décrite dans l'article ci-dessus.

Cause trouvée

Ce n'est pas grave, mais pdb est pratique

Je l'ai donc lancé sur pdb et vérifié le contenu de la variable parts au moment de l'erreur ~~ Faites-le depuis le début ~~.

(Pdb) parts
['InvalidParameter:', 'byte', 'size', 'of', 'input', 'string', '(4302)', 'is', 'greater', 'than│(base)
', 'maximum', 'allowed', '(4096)']

(C'était à l'origine une spécification selon laquelle le contenu de l'erreur est inclus dans la liste qui contient le résultat de l'analyse lorsqu'une erreur se produit ...)

Apparemment ** la taille (nombre d'octets) de la chaîne d'entrée était trop grande **. ** La limite de la chaîne de caractères d'entrée semble être de 4096 octets au total **, il semble donc préférable de limiter la capacité à moins que cela.

Solution pour le moment

J'étais en train de créer un ensemble de données à envoyer à BERT, mais une phrase trop longue est une passe! ~~ UTF-8 semble avoir un nombre d'octets différent selon le type de caractère, il est donc difficile de couper ~~

Détectez les instructions supérieures à 4 096 octets dans les conditions suivantes et prenez une solution de contournement. (Split ou passer) Il examine et compare le nombre d'octets dans la chaîne text.

if len(text.encode('utf-8')) > 4096:

Cliquez ici pour savoir comment vérifier le nombre d'octets au lieu de la longueur des caractères dans une chaîne

Résumé

La cause de l'erreur lors de l'utilisation de Human ++ de PyKNP est combinée avec l'article présenté ci-dessus.

était.

Recommended Posts

J'ai eu une erreur de valeur lors de l'utilisation de JUMAN ++ avec PyKNP
J'ai eu une erreur lors de l'utilisation de Tensorboard avec Pytorch
J'ai eu une erreur lors de l'enregistrement avec OpenCV
Linux Ubuntu16.04 J'ai eu une erreur effrayante lorsque j'ai exécuté une commande en utilisant sudo
J'ai un TypeError: l'objet 'int' n'est pas itérable lors de l'utilisation de keras
Ce que je suis entré lors de l'utilisation de Tensorflow-gpu
Un rappel de ce que je suis resté coincé lors du démarrage d'Atcoder avec python
Erreur lors de l'installation d'un module avec Python pip
Quand j'obtiens une erreur de pilote chrome dans Selenium
J'obtiens une UnicodeDecodeError lors de l'exécution avec mod_wsgi
J'ai essayé d'utiliser la base de données (sqlite3) avec kivy
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
J'ai un sqlite3.OperationalError
Après avoir installé le fond de carte, j'ai eu une erreur d'importation numpy
J'ai un UnicodeDecodeError lorsque je pip installé sur ubuntu
Un mémorandum lorsqu'une erreur se produit avec pip install
Je ne peux pas transformer un projet utilisant PyWebView en un exe avec PyInstaller
Je suis resté bloqué en essayant de spécifier un chemin relatif avec relative_to () en python
J'ai eu une erreur lorsque j'installe des pandas sur Mac, alors je l'ai traitée
J'ai eu une erreur lorsque j'ai installé tweepy sur macOS Sierra, alors je l'ai résolue.
Quand j'ai rendu CaboCha disponible en python3, je suis resté bloqué (Windows 10)
Lors de l'utilisation d'optparse avec iPython
J'ai écrit python3.4 dans .envrc avec direnv et je l'ai autorisé, mais j'ai eu une erreur de syntaxe
J'ai obtenu "ModuleNotFoundError: aucun module nommé" azure "" lors de l'exécution d'un programme à l'aide du SDK Azure pour Python
Une histoire sur l'installation de matplotlib à l'aide de pip avec une erreur
Utiliser une imprimante avec Debian 10
Erreur lors de la lecture avec python
J'ai eu une erreur SSL lorsque j'ai installé Anaconda dans un nouvel environnement, donc je l'ai résolu (Windows10, Anaconda3-2019.10)
J'obtiens une erreur du système d'exploitation: [Errno 8] Erreur de format d'exécution lors de l'exécution d'une application Flask avec une commande python
L'histoire de l'erreur de hachage est apparue lors de l'utilisation de Pipenv
Un mémorandum lors de l'acquisition automatique avec du sélénium
Une histoire que j'ai corrigée lorsque j'ai obtenu le journal Lambda de Cloudwatch Logs
J'ai eu une erreur lorsque j'ai exécuté composer global require laravel / installer
Quand j'obtiens une erreur avec Pylint sur Windows Atom
J'obtiens une erreur en essayant d'installer maec 4.0.1.0 avec pip
[Python] Mémo d'erreur et de solution lors de l'utilisation de venv avec pyenv + anaconda
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Impossible de se lier à une erreur d'interface lors de l'utilisation d'Apollo Federation avec gqlgen
[Django] Erreur lors de l'utilisation de l'objet Q (le champ associé a obtenu une recherche non valide)
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
"Erreur de valeur: impossible de configurer le gestionnaire'file_output_handler '" lors du démarrage d'un programme python
J'ai créé un chat-holdem de serveur de jeu de poker en utilisant websocket avec python
J'ai eu une erreur lorsque j'ai exécuté meteor add accounts-password
Ce sur quoi je suis tombé lors de l'utilisation de CodeIgniter sur un serveur Linux
Lorsqu'une erreur _sqlite3 se produit dans la couverture
Un mémorandum lors de l'utilisation d'une belle soupe
J'ai fait un Line-bot avec Python!
J'ai fait une loterie avec Python.
J'ai créé un démon avec Python
Utiliser une webcam avec Raspberry Pi
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
Je ne connais pas l'erreur de valeur
J'ai eu une erreur en essayant d'installer Xgboost et sa solution
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Lorsque vous souhaitez remplacer une colonne par une valeur manquante (NaN) colonne par colonne
J'ai eu une erreur liée à SSL avec l'installation de pip, donc je l'ai résolue.