2010-10-20 1 views
17

Просто, чтобы использовать его в качестве примера, пользователи StackOverflow уже связали теги с вопросами по множеству вопросов.Есть ли какая-то библиотека обучения .NET, которая могла бы, например, предложить теги для вопроса?

Есть ли библиотека обучения компьютера .NET, которая могла бы использовать эти исторические данные, чтобы «узнать», как связать теги с вновь созданными вопросами и предложить их пользователю?

+1

Это предполагает, что вопрос будет содержать соответствующие теги, встроенные в текст. Для вашего вопроса алгоритм может придумать «.Net» и «учиться», но не C#. –

+3

@Noel: Но сейчас вопрос «правильно» отмечен? Я понимаю, что вы имеете в виду, но, честно говоря, содержание вопроса связано только с .NET и машинным обучением - оно может быть записано в F #, VB или управляемом C++ (если оно хранилось только в .NET) –

+0

@Noel Abrahams: где это предположение? Кто сказал, что теги будут извлечены из текста? –

ответ

1

Это похоже на фильтрацию спама, но с большим количеством ведер.

Широко используемый метод фильтрации спама - Bayesian filters. A Google search даст вам много вариантов, включая первый хит на CodeProject.

+0

@Paul: Если у вопроса нет ответа, вы не должны «+1» за «интересную статью в ссылках», поскольку он удаляет вопрос из списка оставшихся без ответа вопросов. Я еще не проверял, не ответил ли на вопрос. –

+0

@ Ciwee, я не уверен, что комментарий +1 должен удалить вопрос из оставшегося без ответа списка вопросов. Я думаю, вы сбиваете с толку, что с ответом – Neowizard

+0

@Neowizard: кнопка без ответа сверху показывает ответы на вопросы, на которые не было ответа, и у них нет значения, как вы можете видеть в описании в правом верхнем углу страницы , –

1

Тема машинного обучения - очень сложное поле, и если вы действительно хотите создать такое приложение, вам понадобятся некоторые исследования независимо от того, какую библиотеку вы используете.

В любом случае, я бы предложил использовать SVM (поддерживающие векторные машины). Я использовал его в python для этой цели, и это невероятно. Однако вам нужно найти реализацию C#. Идея состоит в том, чтобы сопоставить функции текста (например, «слова, которые заканчиваются на .Net»), а затем использовать эти функции для создания регионов в созданном пространстве для тегов (что-либо в подпространстве X будет помечено как Y).

Это очень сложный вопрос, и мое объяснение может сделать его менее ясным, поэтому я оставлю его вам, если вы хотите, читать и использовать.

Вот что-то, чтобы вы начали с Wikipedia - Support Vector machine (SVM)

Edit: кажется, что LibSVM (библиотека, я работал в питоне) также доступен для C# из его HomePage. Удачи

10

Я создал компьютерную библиотеку, которая могла бы помочь: http://machine.codeplex.com. Его основная предпосылка заключается в том, что вы можете использовать простые списки объектов POCO и создавать из них модели, аннотируя классы. Надеюсь это поможет!

--- Обновление С тех пор я перенес проект здесь: http://numl.net.

2

Существует библиотека .NET для популярного статистического вычислительного движка R Project. Библиотека называется R.NET.

WEKA, инструмент для интеллектуального анализа данных для Java, упоминает several possibilities, чтобы использовать библиотеку с .NET. Однако он не переносится или не обменивается оболочкой, а соединяет связь между .NET и Java.

Смежные вопросы