0

我很想与在机器学习、计算语言学或人工智能方面有经验的人交谈,但通过以下示例:

• 您会申请哪些现有软件来尝试通过统计语言、机器学习构建类似谷歌翻译的可管理的尝试? (不要误会我的意思,我不想只是这样做,只是试图为这个领域最复杂的事情绘制一个概念框架,如果你有机会带领一个团队去实现你会怎么想这样的...)

• 现有哪些数据库?当那些是 TB 的数据时,使用哪种数据库技术来存储结果

• 除C++ 外还有哪些编程语言?

• 阿帕奇猎手?

• 并且,这些软件组件将如何协同工作来为整个工作提供动力?

4

5 回答 5

3

您将申请哪种现有软件进行可管理的尝试,通过统计语言、机器学习构建类似谷歌翻译的东西

如果您的唯一目标是构建翻译软件,那么我只会使用 Google 语言 API:它是免费的,那么为什么要重新发明轮子呢?如果您的目标是为了熟悉机器学习而构建类似于 Google 的翻译器,那么您就走错了路……尝试一个更简单的问题。

哪个数据库?

更新:
取决于你的语料库的大小:如果它是巨大的,那么我会使用 hadoop(因为你提到了 mahout)......否则使用标准数据库(SQL Server、MySQL 等)。

原文:
我不确定您可以为此使用哪些数据库,但如果所有其他方法都失败了,您可以使用 Google 翻译来构建您自己的数据库......但是,后者会引入对 Google 翻译的偏见,并且 Google 所做的任何错误都会导致您的软件(至少)有相同的错误。

除了 C++ 还有哪些编程语言?

无论您最喜欢什么……当然 C++ 是一种选择,但您可能会更轻松地使用 Java 或 C#。使用 Java 和 C# 进行开发要快得多,因为这些语言从一开始就内置了很多功能。

阿帕奇猎杀?

如果你有一个庞大的数据集......你可以。

更新:
一般来说,如果你的语料库真的很大,那么我肯定会使用像 mahout/hadoop 这样的强大组合。它们都是专门为此目的而构建的,除非您背后确实有一个庞大的团队,否则您将很难“复制”他们的所有工作。

而且,这些软件组件将如何协同工作来为整个工作提供动力?

看来您实际上是在尝试熟悉机器学习……我会尝试一些更简单的方法:构建语言检测器而不是翻译器。我最近构建了一个,我发现您可以做的最有用的事情是构建字符 n-gram(bigrams 和 trigrams 结合起来效果最好)。然后,您将使用 n-gram 作为标准机器学习算法(如 C45、GP、GA、贝叶斯模型等)的输入,并执行 10 倍交叉验证以最小化过度拟合。


更新:

“...您使用哪些软件组件来运行您的示例?”

我的示例非常简单:我有一个 SQL Server 数据库,其中包含已用语言标记的文档,我将所有数据加载到内存中(数百个文档),并为每个文档提供算法(C45)。该算法使用自定义函数来提取文档特征(二元和三元字母),然后运行其标准学习过程并生成模型。然后我根据测试数据集测试模型以验证准确性。

在您的情况下,对于 TB 的数据,您似乎应该将 mahout 与 hadoop 一起使用。此外,您将要使用的组件在 mahout/hadoop 体系结构中得到了很好的定义,因此从那里开始应该很容易解释。

于 2011-04-23T18:33:03.797 回答
3

关于语言选择,至少对于原型设计,我建议使用 Python。它在自然语言处理方面取得了很大的成功,因为它配备了一个包含科学计算、文本分析和机器学习的大型工具库。最后但同样重要的是,如果您想从现有工具中受益,调用编译代码(C、C++)真的很容易。

具体来说,看看以下模块:

Olivier Grisel 关于使用这些工具进行文本挖掘的演示会派上用场。

免责声明:我是 scikits.learn 的核心开发人员之一。

于 2011-04-25T11:06:26.227 回答
2

现有哪些数据库?当那些是 TB 级数据 HBase、ElasticSearch、MongoDB 时,使用哪种数据库技术来存储结果

• 除C++ 外还有哪些编程语言?对于 ML 其他流行语言 Scala、Java、Python

• 阿帕奇猎手?有时有用,对纯 Hadoop 进行更多编码

• 并且,这些软件组件将如何协同工作来为整个工作提供动力?有许多统计机器学习算法可以与 mapreduce 并行化,允许在 NoSQl 中存储

于 2011-04-26T05:22:19.220 回答
1

可用于自动翻译的最佳技术基于统计方法。在计算机科学中,这被称为“机器翻译”或 MT。这个想法是将信号(要翻译的文本)视为噪声信号,并使用纠错来“修复”信号。例如,假设您正在将英语翻译成法语。假设英语语句最初是法语,但以英语出现。你必须修复它才能恢复它。可以为目标语言(法语)和错误建立统计语言模型。错误可能包括删除的单词、移动的单词、拼写错误的单词和添加的单词。

更多信息请访问: http: //www.statmt.org/

关于 db,MT 解决方案不需要典型的 db。一切都应该在内存中完成。

用于此特定任务的最佳语言是最快的。C 语言将是解决这个问题的理想选择,因为它可以快速且轻松地控制内存访问。但是可以使用任何高级语言,例如 Perl、C#、Java、Python 等。

于 2011-04-25T01:39:16.463 回答
0

Google 的 Tensorflow 是用于基本翻译的有用工具。然而,真正懂双语的人都知道,翻译不是一个统计过程。这是一个更复杂的过程,刚刚被简化,因此 90% 看起来是正确的。
巨大的并行性将产生巨大的影响,因此量子计算的出现,以及可能形成它的一些想法,将使下一个 8% 成为可能。
最后的 2% 将匹配正常的专业笔译员和口译员。

于 2018-04-27T21:49:22.760 回答