Какое существующее программное обеспечение вы бы применили для управляемой попытки создать что-то вроде google translate с помощью статистического лингвистического машинного обучения
Если ваша единственная цель - создание программного обеспечения, которое переводит, то я быпросто используйте Google Language API: это бесплатно, так зачем изобретать велосипед?Если ваша цель - создать переводчик, похожий на Google, для ознакомления с машинным обучением, то вы на неверном пути ... попробуйте более простую проблему.
Какая база данных)?
Обновление:
Зависит от размера вашего корпуса: если он огромный, то я бы пошел с hadoop (так как вы упомянули mahout) ... в противном случаепойти со стандартной базой данных (SQL Server, MySQL и т. д.).
Оригинал:
Я не уверен, какие базы данных вы можете использовать для этого, но если все остальное терпит неудачувы можете использовать Google переводчик для создания своей собственной базы данных ... однако, последняя внесет предвзятость в отношении переводчика Google, и любые ошибки, которые делает Google, приведут к тому, что ваше программное обеспечение (по крайней мере) будет иметь те же ошибки.
На каких языках программирования кроме C ++?
Что бы вы ни чувствовали наиболее комфортно ... конечно, C ++ - это вариант, но вам может быть легче с Java или C #.Разработка на Java и C # намного быстрее, поскольку с самого начала в эти языки встроено МНОГО функциональности.
Apache mahunt?
Если у вас огромныйнабор данных ... вы могли бы.
Обновление:
В общем, если размер вашего корпуса действительно большой, то я бы определенно использовал надежную комбинацию, такую как mahout / hadoop.Оба они созданы именно для этой цели, и вам будет очень трудно «продублировать» всю их работу, если за вами не будет огромной команды.
И как будут эти программные компоненты?работать вместе, чтобы усилить усилия в целом?
Кажется, что вы на самом деле пытаетесь ознакомиться с машинным обучением ... Я бы попробовал что-то НАМНОГО проще: создать детектор языка вместопереводчик.Я недавно построил один и обнаружил, что самое полезное, что вы можете сделать, - это построить n-граммы символов (биграммы и триграммы вместе работают лучше всего).Затем вы использовали бы n-граммы в качестве входных данных для стандартного алгоритма машинного обучения (например, C45, GP, GA, байесовской модели и т. Д.) И выполняли 10-кратную перекрестную проверку для минимизации переобучения.
Обновление:
"... какие программные компоненты вы используете для запуска своего примера?"
Мой пример был довольно прост: у меня есть база данных SQL Server с документами, которые уже помечены языком, я загружаю все данные в память (несколько сотен документов) и даю алгоритм (C45) каждый документ.Алгоритм использует пользовательскую функцию для извлечения особенностей документа (буквы биграммы и триграммы), затем запускает стандартный процесс обучения и выплевывает модель.Затем я проверяю модель по набору данных для проверки точности.
В вашем случае с терабайтами данных кажется, что вы должны использовать mahout с hadoop.Кроме того, компоненты, которые вы собираетесь использовать, хорошо определены в архитектуре mahout / hadoop, поэтому с этого момента это должно быть довольно понятным.