2009-11-24 6 views
8

Je suis actuellement en train de regarder python parce que j'aime vraiment les capacités d'analyse de texte et la bibliothèque nltk, mais traditionnellement, je suis un programmeur .Net/C#. Je ne pense pas que IronPython soit un point d'intégration pour moi parce que j'utilise NLTK et que j'aurais probablement besoin d'un port de cette bibliothèque pour le CLR. J'ai regardé un peu au Python for .NET et je me demandais si c'était un bon endroit pour commencer. Existe-t-il un moyen de rassembler une classe python en C#? Aussi, cette solution est-elle toujours utilisée? Mieux encore, quelqu'un a-t-il fait cela? Une chose que je considère est juste d'utiliser un support de persistance comme un intermédiaire (analyser en Python, stocker dans MongoDB, et exécuter le site dans .NET).Intégration Python et .NET

Répondre

8

NLTK est pur-python et peut donc être fait pour fonctionner sur IronPython facilement. Une recherche s'est produite this ticket - tout ce que vous avez à faire est d'installer quelques bibliothèques Python supplémentaires qui ne sont pas disponibles par défaut avec IronPython.

C'est probablement le moyen le plus simple pour vous de l'intégrer. Sinon, vous devrez soit exécuter Python en tant que sous-processus, ce qui semble complexe, soit exécuter Python en tant que serveur répondant à vos demandes. C'est probablement l'approche la plus évolutive, bien que complexe. Si vous allez de cette façon, envisagez Twisted pour simplifier le code du serveur.

Mais essayez IronPython d'abord ...

+0

Nice, c'est ce que je cherchais. J'avais peur que IronPython ne soit pas capable de supporter toutes les fonctionnalités du NLTK, mais si tout ce dont j'ai besoin est juste de bibliothèques supplémentaires, c'est fantastique. – Trent

1

Juste une idée

Que diriez-vous en cours d'exécution Python derrière comme serveur, et connectez-le à partir de .NET avec prise?

Comme le chargement NLTK prend du temps et mieux le charger à l'avance de toute façon.

5

Je ne sais pas pourquoi vous avez un problème avec IronPython. vous pouvez toujours utiliser tous les appels nltk ici.

Pour répondre à votre question sur le portage d'une classe Python en C#: essayez compiling your python code into an EXE. Cela crée une DLL avec toutes vos classes python dedans. Ceci est quelque chose qui existe depuis un certain temps et il a fonctionné comme un charme pour moi dans le passé