我很想和那些在机器学习、计算语言学或人工智能方面有经验的人谈谈,但通过下面的例子:
• 您会申请哪种现有软件来进行可管理的尝试,例如通过统计语言,机器学习来构建 Google 翻译?(不要误会我的意思,我不想这样做,而只是试图为该领域最复杂的事物绘制一个概念框架,如果您有机会领导一个团队实现这样的想法,您会怎么想...)
• 哪些现有的数据库(S)?哪些数据库技术来存储结果时,这些是 TB 的数据
• 除了 C ++ 之外还有哪些编程语言?
• Apache mahunt?
• 而且,这些软件组件将如何协同工作,以推动整个工作?
您会申请哪些现有软件来进行可管理的尝试,例如通过统计语言,机器学习来构建 Google 翻译
如果您的唯一目标是构建可翻译的软件,那么我将只使用 Google Language API:它是免费的,那么为什么要重新发明轮子呢?如果您的目标是为了熟悉机器学习而构建类似于 Google 的翻译器,那么您走错了路...尝试一个更简单的问题。
哪个数据库?
更新:
取决于你的语料库的大小:如果它是巨大的,那么我会用 hadoop(因为你提到 mahout)......否则用标准数据库(SQL Server,MySQL 等)。
原创:
我不确定您可以使用哪些数据库,但是如果所有其他方法都失败了,您可以使用 Google 翻译来构建自己的数据库...但是,后者会对 Google 的翻译器产生偏见,并且 Google 所做的任何错误都会导致您的软件(至少)具有相同的错误。
除了 C ++ 之外还有哪些编程语言?
当然,C ++ 是一个选择,但你可能会更容易使用 Java 或 C #。在 Java 和 C # 中开发要快得多,因为这些语言从一开始就内置了很多功能。
Apache mahunt?
如果你有一个庞大的数据集,你可以。
更新:
一般来说,如果你的语料库的大小真的很大,那么我肯定会使用像 mahout / hadoop 这样的强大组合。它们都是为此目的而构建的,除非你有一个庞大的团队支持,否则你将很难“复制”他们的所有工作。
而且,这些软件组件将如何协同工作,以推动整个工作?
看来您实际上是在尝试熟悉机器学习...我会尝试更简单的方法:构建语言检测器而不是翻译器。我最近建立了一个,我发现您可以做的最有用的事情是构建字符 n-gram(bigram 和 trigram 结合使用效果最好)。然后,您将使用 n-gram 作为标准机器学习验证算法(如 C45,GP,GA,贝叶斯模型等)的输入,并执行 10-最小化交叉
Update:“……您使用什么软件组件来使您的示例运行?”
我的例子很简单:我有一个 SQL Server 数据库,其中包含已经用语言标记的文档,我将所有数据加载到内存中(数百个文档),并为每个文档提供算法(C45)。该算法使用自定义函数来提取文档特征(双字母和三字母),然后运行其标准学习过程并吐出模型。然后,我根据测试数据集来测试模型以验证准确性。
在您的情况下,使用 TB 级的数据,似乎您应该将 mahout 与 hadoop 一起使用。此外,您将使用的组件在 mahout / hadoop 架构中得到了很好的定义,因此从那里开始应该是非常不言自明的。
关于语言选择,至少对于原型设计,我建议使用 Python。它在自然语言处理方面取得了很大的成功,因为它附带了大量具有科学计算,文本分析和机器学习的工具库。最后但并非最不重要的一点是,如果您想从现有工具中受益,调用编译代码(C,C ++)非常容易。
具体来说,看看以下模块:
NLTK,自然语言工具包
scikits.learn,Python 中的机器学习
Olivier Grisel 关于文本挖掘的presentation使用这些工具可以派上用场。
免责声明:我是 scikits.learn 的核心开发人员之一。
哪些存在的数据库(S)?哪些数据库技术来存储结果时,这些是 TB 的数据 HBase,ElasticSearch,MongoDB
• 除 C ++ 之外还有哪些编程语言?对于 ML 其他流行语言 Scala,Java,Python
• Apache mahunt?有时有用,更适合纯 Hadoop
• And,how would those software components work together to power the effort as a whole?There are many statistical machine learning algorithms which can be paralelized with mapreduce,allow sotrage in NoSQl
可用于自动翻译的最佳技术基于统计方法。在计算机科学中,这被称为“机器翻译”或 MT。这个想法是将信号(要翻译的文本)视为嘈杂的信号,并使用纠错来“修复”信号。例如,假设您正在将英语翻译成法语。假设英语语句最初是法语,但出来时是英语。您必须修复它才能恢复它,可以为目标单词建立统计语言模型(拼写错误)。
更多信息请访问:http://www.statmt.org/
关于 db,MT 解决方案不需要典型的 db。一切都应该在内存中完成。
用于此特定任务的最佳语言是最快的。C 将是解决此问题的理想选择,因为它可以快速且轻松地控制内存访问。但是可以使用任何高级语言,例如 Perl,C #,Java,Python 等。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(34条)