2010-10-20 16 views
17

Solo para usarlo como ejemplo, los usuarios de StackOverflow ya asociaron las etiquetas a las preguntas de muchas preguntas.¿Hay alguna biblioteca de aprendizaje automático .NET que podría, por ejemplo, sugerir etiquetas para una pregunta?

¿Existe una biblioteca de aprendizaje automático .NET que pueda utilizar esta información histórica para 'aprender' cómo asociar etiquetas a las preguntas recién creadas y sugerirlas al usuario?

+1

Eso supone que la pregunta contendrá las etiquetas relevantes incrustadas en el texto. Para su pregunta, el algoritmo podría generar ".Net" y "learn", pero no C#. –

+3

@Noel: ¿Pero la pregunta está etiquetada "correctamente" ahora? Veo lo que quiere decir, pero para ser sincero, el contenido de la pregunta es solo acerca de .NET y el aprendizaje automático: podría escribirse en F #, VB o C++ administrado (si se mantuvo solo en .NET) –

+0

@Noel Abrahams: ¿Dónde está esa suposición? ¿Quién dijo que las etiquetas se extraerían del texto? –

Respuesta

1

Esto se parece al filtrado de correo no deseado, pero con más cubos.

Una técnica ampliamente utilizada para el filtrado de correo no deseado es Bayesian filters. Un Google search le dará muchas opciones, incluido el primer hit en CodeProject.

+0

@Paul: cuando una pregunta no tiene respuesta, no debe hacer +1 para 'artículo interesante en enlaces' ya que elimina la pregunta de la lista de preguntas sin responder. No lo comprueve para ver si responde la pregunta. –

+0

@Ciwee, no creo que dar un +1 a un comentario elimine la pregunta de la lista de preguntas sin respuesta. Creo que estás confundiendo eso con aceptar una respuesta – Neowizard

+0

@Neowizard: el botón no respondido en la parte superior muestra preguntas que no han sido respondidas Y no tienen voto alternativo, como puedes ver en la descripción en la esquina superior derecha de la página . –

1

El tema del aprendizaje automático es un campo muy complejo, y si realmente desea crear una aplicación de este tipo, necesitará realizar algunas investigaciones sin importar qué lib que esté utilizando.

En cualquier caso, sugiero usar SVM (máquinas de vectores de soporte). Lo he usado en Python para este propósito exacto, y es increíble. Sin embargo, necesitará encontrar una implementación de C#. La idea es mapear las características del texto (como "palabras que terminan en .Net") a las dimensiones y luego usar esas características para crear regiones en el espacio creado para el etiquetado (cualquier cosa en el subespacio X se etiquetará como Y).

Este es un tema realmente complejo, y mi explicación solo puede hacerlo menos claro, por lo tanto, lo dejaré en manos de usted si lo desea, para leer y usar.

aquí hay algo para empezar desde Wikipedia - Support Vector machine (SVM)

Editar: Parece que LibSVM (la biblioteca que trabajé en Python) también está disponible para C# desde su HomePage. Buena suerte

10

Hice una biblioteca de aprendizaje automático que podría ayudar: http://machine.codeplex.com. Su premisa básica es que puede usar listas simples de objetos POCO y crear modelos de ellos anotando las clases. ¡Espero que esto ayude!

--- Actualizar He movido el proyecto aquí: http://numl.net.

2

Hay una biblioteca .NET para el popular motor de computación estadística, R Project. La biblioteca se llama R.NET.

WEKA, la herramienta de minería de datos para Java, menciona several possibilities para usar la biblioteca con .NET. Sin embargo, no está portado ni es un contenedor, sino que conecta la comunicación entre .NET y Java.

Cuestiones relacionadas