2009-11-24 16 views
8

Actualmente estoy buscando python porque me gustan mucho las capacidades de análisis de texto y la biblioteca nltk, pero tradicionalmente soy un programador de .Net/C#. No creo que IronPython sea un punto de integración para mí porque estoy usando NLTK y presumiblemente necesitaría un puerto de esa biblioteca para el CLR. Miré un poco al Python for .NET y me preguntaba si este era un buen lugar para comenzar. ¿Hay alguna manera de ordenar una clase python en C#? Además, ¿esta solución aún se está utilizando? Mejor aún, ¿alguien ha hecho esto? Una cosa que estoy considerando es usar un medio de persistencia como intermediario (analizar en Python, almacenar en MongoDB y ejecutar el sitio en .NET).Integración de Python y .NET

Respuesta

8

NLTK es puro-python y por lo tanto se puede ejecutar fácilmente en IronPython. Una búsqueda apareció this ticket - todo lo que uno tiene que hacer es instalar un par de bibliotecas adicionales de Python que no vienen de manera predeterminada con IronPython.

Esta es probablemente la forma más fácil de integrar. De lo contrario, deberá ejecutar Python como un subproceso, que suena complejo, o ejecutar Python como un servidor que responde a sus solicitudes. Este es probablemente el enfoque más escalable, aunque complejo. Si sigue así, considere Twisted para simplificar el código del servidor.

Pero intente IronPython primero ...

+0

Bueno, esto es lo que estaba buscando. Tenía miedo de que IronPython no fuera capaz de soportar toda la funcionalidad del NLTK, pero si todo lo que necesito son solo bibliotecas adicionales, eso es fantástico. – Trent

1

sólo una idea

Cómo acerca de la ejecución de Python detrás, como un servidor, y conectarlo de .NET con el zócalo?

Como la carga NLTK toma tiempo y la carga mejor de todos modos.

5

No sé por qué tienes un problema con IronPython. aún puede usar todas y cada una de las llamadas nltk allí.

Para responder a su pregunta acerca de cómo portar una clase de Python a C#: intente compiling your python code into an EXE. Esto crea una DLL con todas sus clases de Python. Esto es algo que ha existido por un tiempo y funcionó como un encanto para mí en el pasado