2010-12-08 22 views
15

Est-ce que PyPy fonctionne avec NLTK, et si oui, y a-t-il une amélioration appréciable des performances, disons pour le classifieur bayésien?Est-ce que PyPy fonctionne avec NLTK?

Alors que nous y sommes, est-ce que l'un des autres environnements python (shedskin, etc) offre de meilleures performances nlkt que cpython?

+0

Je ne sais pas à propos de pypy (et en lisant la FAQ de pypy, je suppose qu'il faudrait travailler pour le faire fonctionner); mais je me suis demandé à peu près la même chose mais avec IronPython. – winwaed

+0

Vous devez supprimer la réponse à votre question et l'insérer comme réponse. –

Répondre

4

J'ai obtenu une réponse par e-mail (SEO, s'il vous plaît ne hésitez pas à répondre ici) qui a dit:

Les principaux problèmes sont les suivants:

PyPy implémente Python 2.5. Cela signifie ajouter "from future import with_statement" ici et là, réécrire les usages de property.setter, et fixer de nouveaux appels dans la bibliothèque 2.6 comme os.walk.

NLTK a besoin de PyYAML. Il suffit de symétriser (ou de copier) des éléments dans les paquets pypy-1.4/site-packages.

Et:

Avez-vous NLTK en cours d'exécution avec PyPy, et si oui, êtes-vous voir des améliorations de performance?

Oui, et oui. Donc, apparemment, NLTK fonctionne avec PyPy et il y a des améliorations de performance.

5

Au moins une partie de NLTK fonctionne avec PyPy et il y a un gain de performance, selon quelqu'un sur #pypy sur freenode. Avez-vous exécuté des tests? Téléchargez simplement PyPy depuis pypy.org/download.html et au lieu de "time python yourscript.py data.txt" tapez "time pypy yourscript.py data.txt".

+0

J'ai essayé nltk avec PyPy 1.4.0, couru dans un chemin de bibliothèque de python et les problèmes d'importation, réparé ceux, couru en plus, abandonné avant de le faire fonctionner. Je vais probablement essayer à nouveau, mais je voulais voir si quelqu'un avait déjà eu du succès. – Parand

+1

Commentaire que j'ai reçu par e-mail: Les principaux problèmes sont: 1. PyPy implémente Python 2.5. Cela signifie ajouter "from __future__ import with_statement" ici et là, réécrire les usages de property.setter, et fixer de nouveaux appels dans la bibliothèque 2.6 comme os.walk. 2. NLTK a besoin de PYYAML. Il suffit de symétriser (ou de copier) les données sur pypy-1.4/site-packages. – Parand

+2

2.7 support est sur son chemin, probablement atterrira en janvier, mais vous pouvez obtenir (puis traduire/compiler vous-même) l'état actuel du support 2.7 par: "hg clone https://bitbucket.org/pypy/pypy && hg en avance rapide ". – TryPyPy

3

Vous pouvez exécuter nltk avec pypy maintenant. Il ya a benchmark under pypy 1.8, bien que les versions ultérieures (actuellement pypy 2.0 est la dernière) fonctionneront mieux encore. nltk runs its unit tests under pypy ces jours-ci, les développeurs nltk s'assurent que cela fonctionne.