NLTK ne parvient pas à trouver l'exécutable Java
Je suis en utilisant NLTK de nltk.la balise.stanford, qui a besoin de faire appel de l'exécutable java.
J'ai mis JAVAHOME à C:\Program Files\Java\jdk1.6.0_25 où mon jdk est installé, mais lorsque vous exécutez le programme, j'obtiens l'erreur
"NLTK was unable to find the java executable! Use the config_java() or set the JAVAHOME variable"
Puis j'ai passé 3 heures sur le débogage et ai essayé
config_java("C:/Program Files/Java/jdk1.6.0_25/")
config_java("C:/Program Files/Java/jdk1.6.0_25/bin/")
and those without the ending "/".
Cependant la nltk ne le trouvez toujours pas.
Quelqu'un a une idée sur ce qui va mal? Merci loooot!
source d'informationauteur Thomas Chu
Vous devez vous connecter pour publier un commentaire.
Si la définition de l'environnement JAVA_HOME ne vous aide pas, essayez ceci:
config_java()
ne fonctionne pas pour moi. J'ai ajouter les lignes suivantes dans mon code et cela a fonctionné:Je suis sous Windows 7 64 bits
J'ai passé environ sept heures de travail par le biais de ce problème, et a finalement trouvé une solution. Vous pouvez écrire votre java répertoire de droit dans les lignes 69 et 72 de la internals.py fichier (version 2.0.4) comme suit:
Cela résout le problème pour moi. (Je travaille dans une version 32 bits de Windows environnement)
protos1210 l'astuce a fonctionné pour moi, avec quelques changements mineurs. La réponse est:
Après j'ai redémarré l'INACTIVITÉ, le code suivant a travaillé.
De sortie est: [('I', 'PRP'), ('espoir', 'VBP'), ('ce', 'DT'), ('marche', 'VBZ'), ('!', '.')].
Je n'ai jamais pu l'obtenir à reconnaître mon JAVAHOME variables d'environnement.
J'ai regardé ici et les docs semblent suggérer que l'argument devrait ressembler à
en fonction de votre environnement, vous pouvez essayer de réinstaller le nltk binaire. J'ai installé à partir binaire et puis plus tard mis à jour via easy_install et il est mal installé le osx version de nltk qui a causé des exceptions lorsque ntlk ne pouvais pas trouver mon binaire java.
Moi aussi, j'ai été en cours d'exécution dans des problèmes avec cela. Il a été un casse-tête!
J'ai eu que cela fonctionne sur ma machine (Win7_x64)
Remplacer " jdk1.6.0_30 " avec votre version du jdk. Exécutez cette commande:
Je ne sais pas pourquoi il a été difficile de se mettre au travail. Espérons que cette aide!
Une autre possibilité face à ce message d'erreur lors de l'utilisation de stanford paquet dans NLTK est que si vous utilisez
StanfordTagger
au lieu dePosTagger
ouNERTagger
. Selon Google Groupesil y a une conception pour encourager les utilisateurs à quitter le généralStanfordTagger
classe et en direction de l'un des deux marqueurs.Un autre distincts de réponse à cette situation est que vous utilisez un IDE comme Eclipse. Même si vous avez mis votre
JAVA_HOME
variable d'environnement, et même si vous l'avez explicitement appelconfig_java
et vous obtenez le[Found ... /bin/java.exe]
message retourné à vous, vous pourriez encore avoir à définir l'environnement d'exécution pour votre IDE. La raison en est que lorsque vous appelez le tagger,config_java
est convoquée à nouveau dans le cadre du processus et les originaux de vos tentatives de paramètres le chemin du binaire java exécutable peut donc être remplacé.Je me rends compte que c'est une vieille question, mais voici la solution qui a fonctionné pour moi (en cours d'exécution sur Windows 7-64 bits). J'espère qu'il va sauver quelqu'un certain temps.
J'ai mis en place la solution donnée ici:
Après avoir commenté les lignes que j'ai mis le chemin vers l'exécutable Java de la même manière mentionné dans d'autres réponses:
Un kludgey mais solution viable. Tout a bien fonctionné par la suite.
J'espère que cela sauve quelqu'un d'autre peu de temps en essayant de résoudre ce problème. Je suis assez nouveau à la programmation, Python et la NLTK, et ne savais pas quand j'ai essayé de mettre en œuvre @dduhaime la solution qu'il y a deux " internals.py fichiers: l'un dans le nltk dossier (path=C:\nltk-2.0.4 sur mon ordinateur) et un dans ma Python27 dossier (path=C:\Python27\Lib\site-packages\nltk-2.0.4-py2.7.oeuf\nltk sur mon ordinateur). Vous devez ajouter le chemin vers le répertoire java sur les lignes 69 & 72 dans le dernier 'internals.py fichier, ou le NLTK ne sera pas encore en mesure de le trouver.
Mon environnement: Windows 7 64 bits, NLTK construire 2.0.4
J'ai essayé toutes les solutions mentionnées ci-dessus et aussi ceux sur Google Groupesmais aucune n'a fonctionné. Donc, après quelques tours de plus de procès et les modifications des réponses ci-dessus, le morceau de code suivant fonctionné pour moi :-
Et puis j'ai essayé NERTagger code :-
Et le suivant a la sortie, j'ai reçu
Testé sur Windows 7 64-bit
J'ai mis en place une solution de contournement pour cette raison NLTK est mal comprendre le sens de la variable JAVA_HOME:
Cela prend de la valeur correcte, vous avez JAVA_HOME, et crée la NLTK-version imprimable et le stocke dans JAVAHOME. NLTK va vérifier à la fois ce qui permettra de trouver le binaire. Vous devez faire cela avant que le marqueur est créé, évidemment.
Je suis tombé sur le même problème et c'est ce qui a fonctionné pour moi qui est vraiment simple. Lorsque vous configurez JavaHome variable pour définir le chemin de jdk dossier dans votre machine comme ci-dessous:
C:\Program Files\Java\jdk\ - Ce n'travail
C:\Program Files\Java\jdk - Cela ne fonctionne pas
Cette réponse est pour ubuntu 14.04 .
en commentant deux lignes dans le batch_tag fonction dans \nltk\tag\stanford.py
Les lignes sont en ligne 59 et 85.
config_java(options=auto.java_options, verbose=False) et
config_java(options=default_options, verbose=False) respectivement.
Après avoir commenté les lignes que j'ai mis le chemin vers l'exécutable Java de la même manière mentionné dans d'autres réponses:
nltk.des éléments internes.config_java("chemin/vers/javadk/bin/java")
Tout a bien fonctionné par la suite.