NLP 历史上最大的媒体误导:Nodejs角度看成语难倒了电脑
NLP 历史上最大的媒体误导:Nodejs角度看成语难倒了电脑
NLP 最早的实践是机器翻译,在电脑的神秘光环下,被认为是 模拟或挑战 人类智能活动的机器翻译自然成为媒体报道的热点。其中有这么一个广为流传的机器翻译笑话,为媒体误导之最:
说的是有记者测试机器翻译系统,想到用这么一个出自圣经的成语:
The spirit is willing, but the flesh is weak (心有余而力不足)
翻译成俄语后再翻译回英语就是:
The whiskey is alright, but the meat is rotten(威士忌没有问题,但肉却腐烂了)
这大概是媒体上流传最广的笑话了。很多年来,这个经典笑话不断被添油加醋地重复着,成为NLP的标准笑柄。
然而,自然语言技术中没有比成语更加简单的问题了。成语是NLP难点的误解全然是外行人的臆测,这种臆测由于两个因素使得很多不求甚解的人轻信了。其一是NLP系统的成语词典不够全面的时候造成的类似上述的“笑话”,似乎暴露了机器的愚蠢,殊不知这样的“错误”是系统最容易 debug 的:补全词典即可。因为成语 by definition 是可列举的(listable),补全成语的办法可以用人工,也可以从语料库中自动习得,无论何种方式,都是 tractable 的任务。语言学告诉我们,成语的特点在于其不具有语义的可分解性(no/little semantic compositianlity),必须作为整体来记忆(存贮),这就决定了它的非开放性(可列举)。其二是对于机器“理解”(实际是一种“人工智能”)的误解,以为人理解有困难的部分也必然是机器理解的难点,殊不知两种“理解”根本就不是一回事。很多成语背后有历史故事,需要历史知识才可以真正理解其含义,而机器是没有背景知识的,由此便断言,成语是NLP的瓶颈。
事实是,对于 NLP,可以说,识别了就是理解了,而识别可枚举的表达法不过是记忆而已,说到底是存储量的问题。可是确实有人天真到以为由冷冰冰的无机材料制作的“电脑”真地具有人脑那样的自主理解 能力/机制。
引用 成语的本质是记忆,凡记忆电脑是大拿,人脑是豆腐。
当然要大词库,无论何种方式 建立,只要想做就可以做,因此不是问题。 所谓自然语言“理解”(NLU),就是把 open expressions 分解成词典单位(包括成语)的关系组合(术语叫 semantic compositionality)。凡事到了词典层,理解就终结了。无论semantic representation 如何摆弄,那都是系统内部的事情(system internal),与理解的本质无关。
灵玖软件,大数据搜索与挖掘技术服务商 灵玖软件专注于大数据搜索与挖掘的技术创新与服务,提供大数据搜索、大数据挖掘与大数据应用解决方案,以应对大数据的管理、处理、分析并从大数据中获知识与智慧。 灵玖软件:www.lingjoin.com 大数据论坛:www.bigdatabbs.com
NLP 历史上最大的媒体误导:Node.js 角度看成语难倒了电脑
引言
NLP(自然语言处理)技术的发展最早体现在机器翻译领域。在计算机的神秘光环下,机器翻译被视为模拟或挑战人类智能活动的典型例子,因此经常成为媒体报道的热点。然而,这些报道有时会带有误导性。
成语翻译的误解
有一个广为流传的机器翻译笑话,经常被用来讽刺NLP技术的局限性:
记者测试机器翻译系统时,使用了一句来自圣经的成语:
The spirit is willing, but the flesh is weak (心有余而力不足)
翻译成俄语后再翻译回英语:
The whiskey is alright, but the meat is rotten (威士忌没有问题,但肉却腐烂了)
这个笑话多年来不断被添油加醋地重复,成为了NLP技术的笑柄。
成语的理解与记忆
实际上,自然语言处理中的成语并不是一个特别复杂的问题。成语是固定短语,具有不可分解的语义特性,必须作为一个整体来理解和记忆。这并不意味着机器无法处理成语,而是因为成语的处理更多是一个记忆和检索的问题,而不是理解的问题。
示例代码
我们可以使用Node.js来实现一个简单的成语识别和翻译系统。这里提供一个简单的示例代码:
const成语词典 = {
"心有余而力不足": "The spirit is willing, but the flesh is weak",
"破釜沉舟": "Burn one's boats",
"三顾茅庐": "Three visits to the straw hut"
};
function 翻译成语(成语) {
return成语词典[成语] || "Translation not found";
}
// 测试
console.log(翻译成语("心有余而力不足")); // 输出: The spirit is willing, but the flesh is weak
结论
虽然有些情况下机器翻译可能会出现错误,但这主要是因为成语词典不完整或者缺乏上下文信息。通过补充和完善词典,这些问题是可以解决的。成语的处理本质上是一个记忆和检索的过程,而不是理解的问题。因此,我们不应该过分夸大成语对NLP技术的挑战。
灵玖软件
灵玖软件是一家专注于大数据搜索与挖掘技术的服务商。我们致力于提供高效的大数据解决方案,帮助客户从海量数据中提取有价值的信息和知识。
- 网站: www.lingjoin.com
- 大数据论坛: www.bigdatabbs.com
通过以上示例代码和解释,我们可以看到,成语在NLP中的处理并非不可逾越的障碍。关键在于完善和扩展成语词典,并且正确地理解成语处理的本质。
在这个题目中,“NLP 历史上最大的媒体误导:Node.js 看成语难倒了电脑”主要是探讨了成语在自然语言处理中的误传和误解。成语作为一个固定的短语,通常是作为一个整体记忆的,并且具有特定的文化背景,因此对计算机来说,通过字面意思理解成语是有难度的。
但是,这并不意味着计算机不能处理成语。在 Node.js 中,我们可以通过建立一个包含成语及其意义的词典来解决这个问题。以下是一个简单的示例:
const idiomsDictionary = {
"心有余而力不足": "形容心里很想做某事,但是力量不够。",
"一箭双雕": "比喻一举两得,一次行动达到两个目的。",
// 可以添加更多成语及其解释
};
function translateIdiom(phrase) {
return idiomsDictionary[phrase] || `未找到成语:${phrase}`;
}
console.log(translateIdiom("心有余而力不足")); // 输出:形容心里很想做某事,但是力量不够。
这段代码演示了一个简单的成语查询功能。当用户输入一个成语时,程序会查找对应的解释。如果找不到,则返回一条提示信息。这说明,虽然成语本身具有文化背景和特殊意义,但在 NLP 领域,通过构建一个完备的成语词典,计算机可以很好地处理成语,从而克服了这一难题。这也说明了成语并不是 NLP 的不可逾越的障碍。