第一篇:MUSIC ENGINE音乐引擎简介
MUSIC ENGINE音乐引擎简介
音乐引擎,是乐擎(北京)应用技术有限公司经多年研制独创开发出来的一款尖端技术产品,在国际上尚属首创,并拥有独立的知识产权。
该产品可根据消费者的兴趣发挥其想象、随心应用。它可以推动任何刚性物体,如:金属、木材、塑料、玻璃、石材等发声。
也就是说你可以随心所欲、随时随地DIY你的音乐!并且可以真实的感触到音乐的存在!她的细节和表现力非常逼真,感染力极强,并具有防火、防水等特点。可应用与多种恶劣的自然环境。
MUSIC ENGINE音乐引擎输出功率大、频带宽、体积小、重量轻,可制成小型,甚至微型的、功率强劲的音频单元。
MUSIC ENGINE音乐引擎的应用:
1.台式电脑、笔记本、MP3、MP4等随机应用
MUSIC ENGINE音乐引擎使台式电脑、笔记本电脑、MP3、MP4等电子设备的声传输又有了新的多样化应用领域。通过电子产品的音频输出口,将音频信号传递给振动波转换器,由振动波转换器推动你周围的任何刚性平面,使其产生振动发声,会给你一个意想不到的声音空间,不同的材质,音质不同。会让人感慨到--音乐,原来可以这样!是的,音乐其实离你很近!!
2.会议、背景音乐等场所的灵活应用
MUSIC ENGINE音乐引擎特殊应用,体现了它在各种环境
下的超常运用。因为该产品无须特殊的防护(如:潮、湿、水、冷、热等自然环境。)
示例:如公共交通设施的防护栏、提示标、警示灯、广告牌或有源广告,公共场所的形象造型、背景实物、雕塑等,只要将振动波转换器接入音源安装在其物体上均会给你一个美好的原音再现的新感受。
3.MUSIC ENGINE音乐引擎家庭和办公场所的应用
让所有的家具变成你的音箱(特别是木质家具,可以产生如Hi-Fi般的感觉)。
将MUSIC ENGINE音乐引擎放在木质家具如桌子表面(亦可隐蔽安装),则MUSIC ENGINE音乐引擎产生的音频机械振动就可以带动桌面振动,桌面的振动通过空气传播到人耳中则我们就可以听到美妙的音乐了,也就是说: 可以让家具、办公设施、场所隔断等成为独特音响,是家具行业和音响行业巨大的技术突破。使智能化家居有了新的媒介。
这意味着家具将从目前的单一功能的无声时代走向有声的电器家具新时代,它所带来的将是家具行业和音响行业相结合的革命。家具的形状不需要改变,只需安装MUSIC ENGINE音乐引擎就变成了音响。
特别需要要指出的是这种新型电声器件对于传统音响而言从结构、换能方式、声音的方向性、产品外型、音质上都是一种巨大的改变,这样在声音表现方面就与实际演奏更加接近,充分体现原汁原
味的乐器演奏再现,享受到音乐厅的现场演奏效果。根本的原因是从发声介质和发声方式上与现有乐器演奏最接近,如音频振动的材质与大多数乐器相同的木质而不是传统喇叭。
4.水下扬声器
MUSIC ENGINE音乐引擎独特的运用方式使水下、液态下的传声得以实现;例如:体育场馆的游泳池,可以使水下芭蕾运动完全节奏化,一体化,清晰的体现音乐的节奏感。
水下养殖:经科学研究测试水下养殖在音乐的感染下会使水生物得以快速的增长,生长源在音乐环境的刺激渲染下使其促进水生物的食欲及活动兴奋。是一条可取的市场发展之路。
水下人工作业完全可以得到准确的传声指令及引导,完全避免了因各种原因而导致的不利因素的产生。
第二篇:初探推荐引擎
初探:探索推荐引擎内部的秘密(1)推荐者:怕冷的南瓜(积分 36596)| 原作者:赵晨婷
“探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理 论讲解的基础上,还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐策略,进行策略优化,构建高效的推荐引擎的方法。本文作为这个系列的第一篇文章,将深入介绍推荐引擎的工作原理,和其 中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐引擎。
信息发现
如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展,Web 已经变成数据分享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信息将变得越来越难。
在这样的情形下,搜索引擎(Google,Bing,百度等等)成为大家快速找到目标信息的最好途径。在用户对自己需求相对明确的时候,用搜索引擎 很方便的通过关键字搜索很快的找到自己需要的信息。但搜索引擎并不能完全满足用户对信息发现的需求,那是因为在很多情况下,用户其实并不明确自己的需要,或者他们的需求很难用简单的关键字来表述。又或者他们需要更加符合他们个人口味和喜好的结果,因此出现了推荐系统,与搜索引擎对应,大家也习惯称它为推荐 引擎。
随着推荐引擎的出现,用户获取信息的方式从简单的目标明确的数据的搜索转换到更高级更符合人们使用习惯的信息发现。
如今,随着推荐技术的不断发展,推荐引擎已经在电子商务(E-commerce,例如 Amazon,当当网)和一些基于 social 的社会化站点(包括音乐,电影和图书分享,例如豆瓣,Mtime 等)都取得很大的成功。这也进一步的说明了,Web2.0 环境下,在面对海量的数据,用户需要这种更加智能的,更加了解他们需求,口味和喜好的信息发现机制。
推荐引擎
前面介绍了推荐引擎对于现在的 Web2.0 站点的重要意义,这一章我们将讲讲推荐引擎到底是怎么工作的。推荐引擎利用特殊的信息过滤技术,将不同的物品或内容推荐给可能对它们感兴趣的用户。
图 1.推荐引擎工作原理图
图 1 给出了推荐引擎的工作原理图,这里先将推荐引擎看作黑盒,它接受的输入是推荐的数据源,一般情况下,推荐引擎所需要的数据源包括:
要推荐物品或内容的元数据,例如关键字,基因描述等; 系统用户的基本信息,例如性别,年龄等 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。其实这些用户的偏好信息可以分为两类:
显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。 隐式的用户反馈:这类是用户在使用网站是产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。
显式的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价,而隐式的用户行为,通过一些分析和处理,也能反映用户的喜好,只是数 据不是很精确,有些行为的分析存在较大的噪音。但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果,只是行为特征的选择可能在不同的应用中有很 大的不同,例如在电子商务的网站上,购买行为其实就是一个能很好表现用户喜好的隐式反馈。
推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算。这样推荐引擎可以在用户进入的时候给他推荐他可能感兴趣的物品。
推荐引擎的分类
推荐引擎的分类可以根据很多指标,下面我们一一介绍一下: 1.推荐引擎是不是为不同的用户推荐不同的数据
根据这个指标,推荐引擎可以分为基于大众行为的推荐引擎和个性化推荐引擎
根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。o 个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。o
这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。2.根据推荐引擎的数据源
其实这里讲的是如何发现数据的相关性,因为大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行推荐。那么参考图 1 给出的推荐系统原理图,根据不同的数据源发现数据相关性的方法可以分为以下几种: 根据系统用户的基本信息发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)o 根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)o 根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。
3.根据推荐模型的建立方式 o
可以想象在海量物品和用户的系统中,推荐引擎的计算量是相当大的,要实现实时的推荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为以下几种:
o 基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往 是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同 时为了减小计算量,我们可以对物品和用户进行聚类,然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。o 基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过 关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于 这些规则给用户进行推荐。o 基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在 进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。
其实在现在的推荐系统中,很少有只使用了一个推荐策略的推荐引擎,一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果,例如 Amazon 的推荐,它将基于用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当下比较流行的物品都在不同的区域推荐给用户,让用户 可以从全方位的推荐中找到自己真正感兴趣的物品。
深入推荐机制
这一章的篇幅,将详细介绍各个推荐机制的工作原理,它们的优缺点以及应用场景。
基于人口统计学的推荐
基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户,图 2 给出了这种推荐的工作原理。图 2.基于人口统计学的推荐机制的工作原理
从图中可以很清楚的看到,首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品,图中将用户 A 喜欢的物品 A 推荐给用户 C。
这种基于人口统计学的推荐机制的好处在于:
1.因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。2.这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。那么这个方法的缺点和问题是什么呢?这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领 域,无法得到很好的推荐效果。可能在一些电子商务的网站中,这个方法可以给出一些简单的推荐。另外一个局限是,这个方法可能涉及到一些与信息发现问题本身 无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。基于内容的推荐
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。图 3 给出了基于内容推荐的基本原理。
图 3.基于内容推荐机制的基本原理
图 3 中给出了基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据 发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。
这种基于内容的推荐机制的好处在于它能很好的建模用户的口味,能提供更加精确的推荐。但它也存在以下几个问题:
1.需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度。在现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。
2.物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。
3.因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点,有些站点还请专业的人员对物品进行基因编码,比如潘多拉,在一份报告中说道,在潘多拉的推荐引擎中,每首歌有超过 100 个元数据特征,包括歌曲的风格,年份,演唱者等等。基于协同过滤的推荐
随着 Web2.0 的发展,Web 站点更加提倡用户参与和用户贡献,因此基于协同过滤的推荐机制因运而生。它的原理很简单,就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关 性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。基于协同过滤的推荐可以分为三个子类:基于用户的推荐(User-based Recommendation),基于项目的推荐(Item-based Recommendation)和基于模型的推荐(Model-based Recommendation)。下面我们一个一个详细的介绍着三种协同过滤的推荐机制。基于用户的协同过滤推荐
基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K-邻居”的算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行推荐。下图 4 给出了原理图。
图 4.基于用户的协同过滤推荐机制的基本原理
上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户 A 喜欢物品 A,物品 C,用户 B 喜欢物品 B,用户 C 喜欢物品 A,物品 C 和物品 D;从这些用户的历史喜好信息中,我们可以发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D,那么我们可以推断用户 A 可能也喜欢物品 D,因此可以将物品 D 推荐给用户 A。
基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似 度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品 的用户可能有相同或者相似的口味和偏好。基于项目的协同过滤推荐
基于项目的协同过滤推荐的基本原理也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户,图 5 很好的诠释了它的基本原理。
假设用户 A 喜欢物品 A 和物品 C,用户 B 喜欢物品 A,物品 B 和物品 C,用户 C 喜欢物品 A,从这些用户的历史喜好可以分析出物品 A 和物品 C 时比较类似的,喜欢物品 A 的人都喜欢物品 C,基于这个数据可以推断用户 C 很有可能也喜欢物品 C,所以系统会将物品 C 推荐给用户 C。
与上面讲的类似,基于项目的协同过滤推荐和基于内容的推荐其实都是基于物品相似度预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。
图 5.基于项目的协同过滤推荐机制的基本原理
同时协同过滤,在基于用户和基于项目两个策略中应该如何选择呢?其实基于项目的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于项目的机制比基于用户的实时性更好一些。但也不是所有的场景都 是这样的情况,可以设想一下在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的形似度依然不稳 定。所以,其实可以看出,推荐策略的选择其实和具体的应用场景有很大的关系。基于模型的协同过滤推荐
基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。
基于协同过滤的推荐机制是现今应用最为广泛的推荐机制,它有以下几个显著的优点:
1.它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。
2.这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好 而它也存在以下几个问题: 1.方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。
2.推荐的效果依赖于用户历史偏好数据的多少和准确性。3.在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。
4.对于一些特殊品味的用户不能给予很好的推荐。5.由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。混合的推荐机制
在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。关于如何组合各个推荐机制,这里讲几种比较流行的组合方法。
1.加权的混合(Weighted Hybridization): 用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
2.切换的混合(Switching Hybridization):前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。
3.分区的混合(Mixed Hybridization):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。
4.分层的混合(Meta-Level Hybridization): 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。
推荐引擎的应用
介绍完推荐引擎的基本原理,基本推荐机制,下面简要分析几个有代表性的推荐引擎的应用,这里选择两个领域:Amazon 作为电子商务的代表,豆瓣作为社交网络的代表。
推荐在电子商务中的应用 – Amazon
Amazon 作为推荐引擎的鼻祖,它已经将推荐的思想渗透在应用的各个角落。Amazon 推荐的核心是通过数据挖掘算法和比较用户的消费偏好于其他用户进行对比,借以预测用户可能感兴趣的商品。对应于上面介绍的各种推荐机制,Amazon 采用的是分区的混合的机制,并将不同的推荐结果分不同的区显示给用户,图 6 和图 7 展示了用户在 Amazon 上能得到的推荐。
图 6.Amazon 的推荐机制浏览物品
Amazon 利用可以记录的所有用户在站点上的行为,根据不同数据的特点对它们进行处理,并分成不同区为用户推送推荐: 今日推荐(Today's Recommendation For You): 通常是根据用户的近期的历史购买或者查看记录,并结合时下流行的物品给出一个折中的推荐。 新产品的推荐(New For You): 采用了基于内容的推荐机制(Content-based Recommendation),将一些新到物品推荐给用户。在方法选择上由于新物品没有大量的用户喜好信息,所以基于内容的推荐能很好的解决这个“冷启动”的问题。
捆绑销售(Frequently Bought Together): 采用数据挖掘技术对用户的购买行为进行分析,找到经常被一起或同一个人购买的物品集,进行捆绑销售,这是一种典型的基于项目的协同过滤推荐机制。
别人购买 / 浏览的商品(Customers Who Bought/See This Item Also Bought/See): 这也是一个典型的基于项目的协同过滤推荐的应用,通过社会化机制用户能更快更方便的找到自己感兴趣的物品。
值得一提的是,Amazon 在做推荐时,设计和用户体验也做得特别独到: Amazon 利用有它大量历史数据的优势,量化推荐原因。
基于社会化的推荐,Amazon 会给你事实的数据,让用户信服,例如:购买此物品的用户百分之多少也购买了那个物品;
基于物品本身的推荐,Amazon 也会列出推荐的理由,例如:因为你的购物框中有 ***,或者因为你购买过 ***,所以给你推荐类似的 ***。
另外,Amazon 很多推荐是基于用户的 profile 计算出来的,用户的 profile 中记录了用户在 Amazon 上的行为,包括看了那些物品,买了那些物品,收藏夹和 wish list 里的物品等等,当然 Amazon 里还集成了评分等其他的用户反馈的方式,它们都是 profile 的一部分,同时,Amazon 提供了让用户自主管理自己 profile 的功能,通过这种方式用户可以更明确的告诉推荐引擎他的品味和意图是什么。
推荐在社交网站中的应用 – 豆瓣
豆瓣是国内做的比较成功的社交网站,它以图书,电影,音乐和同城活动为中心,形成一个多元化的社交网络平台,自然推荐的功能是必不可少的,下面我们看看豆瓣是如何推荐的。
图 8.豆瓣的推荐机制基于用户品味的推荐
豆瓣的推荐是通过“豆瓣猜”,为了让用户清楚这些推荐是如何来的,豆瓣还给出了“豆瓣猜”的一个简要的介绍。
“你的个人推荐是根据你的收藏和评价自动得出的,每个人的推荐清单都不同。你的收藏和评价越多,豆瓣给你的推荐会越准确和丰富。每天推荐的内容可能会有变化。随着豆瓣的长大,给你推荐的内容也会越来越准。”
这一点让我们可以清晰明了的知道,豆瓣必然是基于社会化的协同过滤的推荐,这样用户越多,用户的反馈越多,那么推荐的效果会越来越准确。
相对于 Amazon 的用户行为模型,豆瓣电影的模型更加简单,就是“看过”和“想看”,这也让他们的推荐更加专注于用户的品味,毕竟买东西和看电影的动机还是有很大不同的。
另外,豆瓣也有基于物品本身的推荐,当你查看一些电影的详细信息的时候,他会给你推荐出“喜欢这个电影的人也喜欢的电影”,如图 10,这是一个基于协同过滤的应用。
图 10.豆瓣的推荐机制物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品 之间的相似度。下面我们详细介绍几种常用的相似度计算方法:
欧几里德距离(Euclidean Distance)
最初用于计算欧几里德空间中两个点的距离,假设 x,y 是 n 维空间的两个点,它们之间的欧几里德距离是:
可以看出,当 n=2 时,欧几里德距离就是平面上两个点的距离。
当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大
皮尔逊相关系数(Pearson Correlation Coefficient)
皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在 [-1,+1] 之间。
sx, sy是 x 和 y 的样品标准偏差。
Cosine 相似度(Cosine Similarity)
Cosine 相似度被广泛应用于计算文档数据的相似度:
Tanimoto 系数(Tanimoto Coefficient)
Tanimoto 系数也称为 Jaccard 系数,是 Cosine 相似度的扩展,也多用于计算文档数据的相似度:
相似邻居的计算
介绍完相似度的计算方法,下面我们看看如何根据相似度找到用户用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。
图 2.基于用户的 CF 的基本原理
基于物品的 CF(Item CF)
基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算 的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的 物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。
图 3.基于物品的 CF 的基本原理
User CF vs.Item CF
前面介绍了 User CF 和 Item CF 的基本原理,下面我们分几个不同的角度深入看看它们各自的优缺点和适用场景:
计算复杂度
Item CF 和 User CF 是基于协同过滤推荐的两个最基本的算法,User CF 是很早以前就提出来了,Item CF 是从 Amazon 的论文和专利发表之后(2001 年左右)开始流行,大家都觉得 Item CF 从性能和复杂度上比 User CF 更优,其中的一个主要原因就是对于一个在线网站,用户的数量往往大大超过物品的数量,同时物品的数据相对稳定,因此计算物品的相似度不但计算量较小,同时 也不必频繁更新。但我们往往忽略了这种情况只适应于提供商品的电子商务网站,对于新闻,博客或者微内容的推荐系统,情况往往是相反的,物品的数量是海量 的,同时也是更新频繁的,所以单从复杂度的角度,这两个算法在不同的系统中各有优势,推荐引擎的设计者需要根据自己应用的特点选择更加合适的算法。
适用场景
在非社交网络的网站中,内容内在的联系是很重要的推荐原则,它比基于相似用户的推荐原则更加有效。比如在购书网站上,当你看一本书的时候,推荐引擎 会给你推荐相关的书籍,这个推荐的重要性远远超过了网站首页对该用户的综合推荐。可以看到,在这种情况下,Item CF 的推荐成为了引导用户浏览的重要手段。同时 Item CF 便于为推荐做出解释,在一个非社交网络的网站中,给某个用户推荐一本书,同时给出的解释是某某和你有相似兴趣的人也看了这本书,这很难让用户信服,因为用 户可能根本不认识那个人;但如果解释说是因为这本书和你以前看的某本书相似,用户可能就觉得合理而采纳了此推荐。
相反的,在现今很流行的社交网络站点中,User CF 是一个更不错的选择,User CF 加上社会网络信息,可以增加用户对推荐解释的信服程度。
推荐多样性和精度
研究推荐引擎的学者们在相同的数据集合上分别用 User CF 和 Item CF 计算推荐结果,发现推荐列表中,只有 50% 是一样的,还有 50% 完全不同。但是这两个算法确有相似的精度,所以可以说,这两个算法是很互补的。关于推荐的多样性,有两种度量方法:
第一种度量方法是从单个用户的角度度量,就是说给定一个用户,查看系统给出的推荐列表是否多样,也就是要比较推荐列表中的物品之间两两的相似度,不 难想到,对这种度量方法,Item CF 的多样性显然不如 User CF 的好,因为 Item CF 的推荐就是和以前看的东西最相似的。
第二种度量方法是考虑系统的多样性,也被称为覆盖率(Coverage),它是指一个推荐系统是否能够提供给所有用户丰富的选择。在这种指标下,Item CF 的多样性要远远好于 User CF, 因为 User CF 总是倾向于推荐热门的,从另一个侧面看,也就是说,Item CF 的推荐有很好的新颖性,很擅长推荐长尾里的物品。所以,尽管大多数情况,Item CF 的精度略小于 User CF,但如果考虑多样性,Item CF 却比 User CF 好很多。
如果你对推荐的多样性还心存疑惑,那么下面我们再举个实例看看 User CF 和 Item CF 的多样性到底有什么差别。首先,假设每个用户兴趣爱好都是广泛的,喜欢好几个领域的东西,不过每个用户肯定也有一个主要的领域,对这个领域会比其他领域更 加关心。给定一个用户,假设他喜欢 3 个领域 A,B,C,A 是他喜欢的主要领域,这个时候我们来看 User CF 和 Item CF 倾向于做出什么推荐:如果用 User CF, 它会将 A,B,C 三个领域中比较热门的东西推荐给用户;而如果用 ItemCF,它会基本上只推荐 A 领域的东西给用户。所以我们看到因为 User CF 只推荐热门的,所以它在推荐长尾里项目方面的能力不足;而 Item CF 只推荐 A 领域给用户,这样他有限的推荐列表中就可能包含了一定数量的不热门的长尾物品,同时 Item CF 的推荐对这个用户而言,显然多样性不足。但是对整个系统而言,因为不同的用户的主要兴趣点不同,所以系统的覆盖率会比较好。从上面的分析,可以很清晰的看到,这两种推荐都有其合理性,但都不是最好的选择,因此他们的精度也会有损失。其实对这类系统的最好选择是,如果系统 给这个用户推荐 30 个物品,既不是每个领域挑选 10 个最热门的给他,也不是推荐 30 个 A 领域的给他,而是比如推荐 15 个 A 领域的给他,剩下的 15 个从 B,C 中选择。所以结合 User CF 和 Item CF 是最优的选择,结合的基本原则就是当采用 Item CF 导致系统对个人推荐的多样性不足时,我们通过加入 User CF 增加个人推荐的多样性,从而提高精度,而当因为采用 User CF 而使系统的整体多样性不足时,我们可以通过加入 Item CF 增加整体的多样性,同样同样可以提高推荐的精度。
用户对推荐算法的适应度
前面我们大部分都是从推荐引擎的角度考虑哪个算法更优,但其实我们更多的应该考虑作为推荐引擎的最终使用者--应用用户对推荐算法的适应度。对于 User CF,推荐的原则是假设用户会喜欢那些和他有相同喜好的用户喜欢的东西,但如果一个用户没有相同喜好的朋友,那 User CF 的算法的效果就会很差,所以一个用户对的 CF 算法的适应度是和他有多少共同喜好用户成正比的。Item CF 算法也有一个基本假设,就是用户会喜欢和他以前喜欢的东西相似的东西,那么我们可以计算一个用户喜欢的物品的自相似度。一个用户喜欢物品的自相似度大,就 说明他喜欢的东西都是比较相似的,也就是说他比较符合 Item CF 方法的基本假设,那么他对 Item CF 的适应度自然比较好;反之,如果自相似度小,就说明这个用户的喜好习惯并不满足 Item CF 方法的基本假设,那么对于这种用户,用 Item CF 方法做出好的推荐的可能性非常低。
通过以上的介绍,相信大家已经对协同过滤推荐的各种方法,原则,特点和适用场景有深入的了解,下面我们就进入实战阶段,重点介绍如何基于 Apache Mahout 实现协同过滤推荐算法。
基于 Apache Mahout 实现高效的协同过滤推荐
Apache Mahout 是 Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序,并且,在 Mahout 的最近版本中还加入了对 Apache Hadoop 的支持,使这些算法可以更高效的运行在云计算环境中。
关于 Apache Mahout 的安装和配置请参考《基于 Apache Mahout 构建社会化推荐引擎》,它是笔者 09 年发表的一篇关于基于 Mahout 实现推荐引擎的 developerWorks 文章,其中详细介绍了 Mahout 的安装步骤,并给出一个简单的电影推荐引擎的例子。
Apache Mahout 中提供的一个协同过滤算法的高效实现,它是一个基于 Java 实现的可扩展的,高效的推荐引擎。图 4 给出了 Apache Mahout 中协同过滤推荐实现的组件图,下面我们逐步深入介绍各个部分。
图 4.组件图
数据表示:Data Model Preference
基于协同过滤的推荐引擎的输入是用户的历史偏好信息,在 Mahout 里它被建模为 Preference(接口),一个 Preference 就是一个简单的三元组 < 用户 ID, 物品 ID, 用户偏好 >,它的实现类是 GenericPreference,可以通过以下语句创建一个 GenericPreference。
GenericPreference preference = new GenericPreference(123, 456, 3.0f);这其中,123 是用户 ID,long 型;456 是物品 ID,long 型;3.0f 是用户偏好,float 型。从这个例子我们可以看出,单单一个 GenericPreference 的数据就占用 20 bytes,所以你会发现如果只简单实用数组 Array 加载用户偏好数据,必然占用大量的内存,Mahout 在这方面做了一些优化,它创建了
PreferenceArray(接口)保存一组用户偏好数据,为了优化性能,Mahout 给出了两个实现类,GenericUserPreferenceArray 和
GenericItemPreferenceArray,分别按照用户和物品本身对用户偏好进行组装,这样就可以压缩用户 ID 或者物品 ID 的空间。下面清单 1 的代码以 GenericUserPreferenceArray 为例,展示了如何创建和使用一个 PreferenceArray。
清单 1.创建和使用 PreferenceArray
PreferenceArray userPref = new GenericUserPreferenceArray(2);//size = 2
userPref.setUserID(0, 1L);
userPref.setItemID(0, 101L);//<1L, 101L, 2.0f> userPref.setValue(0, 2.0f);userPref.setItemID(1, 102L);//<1L, 102L, 4.0f> userPref.setValue(1, 4.0f);
Preference pref = userPref.get(1);//<1L, 102L, 4.0f>
为了提高性能 Mahout 还构建了自己的 HashMap 和 Set:FastByIDMap 和 FastIDSet,有兴趣的朋友可以参考 Mahout 官方说明。DataModel
Mahout 的推荐引擎实际接受的输入是 DataModel,它是对用户偏好数据的压缩表示,通过创建内存版 DataModel 的语句我们可以看出:
DataModel model = new GenericDataModel(FastByIDMap
map);他保存在一个按照用户 ID 或者物品 ID 进行散列的 PreferenceArray,而 PreferenceArray 中对应保存着这个用户 ID 或者物品 ID 的所有用户偏好信息。
DataModel 是用户喜好信息的抽象接口,它的具体实现支持从任意类型的数据源抽取用户喜好信息,具体实现包括内存版的 GenericDataModel,支持文件读取的 FileDataModel 和支持数据库读取的 JDBCDataModel,下面我们看看如何创建各种 DataModel。
清单 2.创建各种 DataModel
//In-memory DataModelFileDataModel DataModel dataModel = new FileDataModel(new File(“preferences.csv”);
//Database-based DataModelPart 2: 深入推荐引擎相关算法--协同过滤》。
Mahout 中的向量 Vector 是一个每个域是浮点数(double)的复合对象,最容易联想到的实现就是一个浮点数的数组。但在具体应用由于向量本身数据内容的不同,比如有些向量的值很密集,每个域都有值;有些呢则是很稀 疏,可能只有少量域有值,所以 Mahout 提供了多个实现:
1.DenseVector,它的实现就是一个浮点数数组,对向量里所有域都进行存储,适合用于存储密集向量。
2.RandomAccessSparseVector 基于浮点数的 HashMap 实现的,key 是整形(int)类型,value 是浮点数(double)类型,它只存储向量中不为空的值,并提供随机访问。
3.SequentialAccessVector 实现为整形(int)类型和浮点数(double)类型的并行数组,它也只存储向量中不为空的值,但只提供顺序访问。用户可以根据自己算法的需求选择合适的向量实现类,如果算法需要很多随机访问,应该选择 DenseVector 或者 RandomAccessSparseVector,如果大部分都是顺序访问,SequentialAccessVector 的效果应该更好。
介绍了向量的实现,下面我们看看如何将现有的数据建模成向量,术语就是“如何对数据进行向量化”,以便采用 Mahout 的各种高效的聚类算法。1.简单的整形或浮点型的数据
这种数据最简单,只要将不同的域存在向量中即可,比如 n 维空间的点,其实本身可以被描述为一个向量。2.枚举类型数据
这类数据是对物体的描述,只是取值范围有限。举个例子,假设你有一个苹果信息的数据集,每个苹果的数据包括:大小,重量,颜色等,我们以颜 色为例,设苹果的颜色数据包括:红色,黄色和绿色。在对数据进行建模时,我们可以用数字来表示颜色,红色 =1,黄色 =2,绿色 =3,那么大小直径 8cm,重量 0.15kg,颜色是红色的苹果,建模的向量就是 <8, 0.15, 1>。
下面的清单 1 给出了对以上两种数据进行向量化的例子。
清单 1.创建简单的向量
// 创建一个二维点集的向量组
public static final double[][] points = { { 1, 1 }, { 2, 1 }, { 1, 2 }, { 2, 2 }, { 3, 3 }, { 8, 8 }, { 9, 8 }, { 8, 9 }, { 9, 9 }, { 5, 5 }, { 5, 6 }, { 6, 6 }};public static List
double[] fr = raw[i];// 这里选择创建 RandomAccessSparseVector
Vector vec = new RandomAccessSparseVector(fr.length);
// 将数据存放在创建的 Vector 中 vec.assign(fr);
points.add(vec);} return points;}
// 创建苹果信息数据的向量组
public static List
NamedVector apple = new NamedVector(new DenseVector(new double[] {0.11, 510, 1}),“Small round green apple”);apples.add(apple);apple = new NamedVector(new DenseVector(new double[] {0.2, 650, 3}),“Large oval red apple”);apples.add(apple);apple = new NamedVector(new DenseVector(new double[] {0.09, 630, 1}),“Small elongated red apple”);apples.add(apple);apple = new NamedVector(new DenseVector(new double[] {0.25, 590, 3}),“Large round yellow apple”);apples.add(apple);apple = new NamedVector(new DenseVector(new double[] {0.18, 520, 2}),“Medium oval green apple”);apples.add(apple);return apples;}
3.文本信息
作为聚类算法的主要应用场景逆向文本频率(Term Frequency – Inverse Document Frequency, TF-IDF):它是对 TF 方法的一种加强,字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在所有文本中出现的频率成反比下降。举个例子,对于“高频无意义词 汇”,因为它们大部分会出现在所有的文本中,所以它们的权重会大打折扣,这样就使得文本模型在描述文本特征上更加精确。在信息检索领域,TF-IDF 是对文本信息建模的最常用的方法。o
对于文本信息的向量化,Mahout 已经提供了工具类,它基于 Lucene 给出了对文本信息进行分析,然后创建文本向量。下面的清单 2 给出了一个例子,分析的文本数据是路透提供的新闻数据,参考资源里给出了下载地址。将数据集下载后,放在“clustering/reuters”目录 下。
清单 2.创建文本信息的向量
public static void documentVectorize(String[] args)throws Exception{ //1.将路透的数据解压缩 , Mahout 提供了专门的方法
DocumentClustering.extractReuters();//2.将数据存储成 SequenceFile,因为这些工具类就是在 Hadoop 的基础上做的,所以首先我们需要将数据写
// 成 SequenceFile,以便读取和计算
DocumentClustering.transformToSequenceFile();//3.将 SequenceFile 文件中的数据,基于 Lucene 的工具进行向量化
DocumentClustering.transformToVector();
}
public static void extractReuters(){ //ExtractReuters 是基于 Hadoop 的实现,所以需要将输入输出的文件目录传给它,这里我们可以直接把它映
// 射到我们本地的一个文件夹,解压后的数据将写入输出目录下
File inputFolder = new File(“clustering/reuters”);File outputFolder = new File(“clustering/reuters-extracted”);ExtractReuters extractor = new ExtractReuters(inputFolder, outputFolder);extractor.extract();}
public static void transformToSequenceFile(){ //SequenceFilesFromDirectory 实现将某个文件目录下的所有文件写入一个 SequenceFiles 的功能
// 它其实本身是一个工具类,可以直接用命令行调用,这里直接调用了它的 main 方法
String[] args = {“-c”, “UTF-8”, “-i”, “clustering/ reuters-extracted/”, “-o”, “clustering/reuters-seqfiles”};// 解释一下参数的意义:
//-c: 指定文件的编码形式,这里用的是“UTF-8” //-i: 指定输入的文件目录,这里指到我们刚刚导出文件的目录
//-o: 指定输出的文件目录
try {
SequenceFilesFromDirectory.main(args);} catch(Exception e){
e.printStackTrace();} }
public static void transformToVector(){ //SparseVectorsFromSequenceFiles 实现将 SequenceFiles 中的数据进行向量化。// 它其实本身是一个工具类,可以直接用命令行调用,这里直接调用了它的 main 方法 String[] args = {“-i”, “clustering/reuters-seqfiles/”, “-o”, “clustering/reuters-vectors-bigram”, “-a”, “org.apache.lucene.analysis.WhitespaceAnalyzer” , “-chunk”, “200”, “-wt”, “tfidf”, “-s”, “5”, “-md”, “3”, “-x”, “90”, “-ng”, “2”, “-ml”, “50”, “-seq”};// 解释一下参数的意义:
//-i: 指定输入的文件目录,这里指到我们刚刚生成 SequenceFiles 的目录
//-o: 指定输出的文件目录
//-a: 指定使用的 Analyzer,这里用的是 lucene 的空格分词的 Analyzer //-chunk: 指定 Chunk 的大小,单位是 M。对于大的文件集合,我们不能一次 load 所有文件,所以需要 // 对数据进行切块
//-wt: 指定分析时采用的计算权重的模式,这里选了 tfidf //-s: 指定词语在整个文本集合出现的最低频度,低于这个频度的词汇将被丢掉
//-md: 指定词语在多少不同的文本中出现的最低值,低于这个值的词汇将被丢掉
//-x: 指定高频词汇和无意义词汇(例如 is,a,the 等)的出现频率上限,高于上限的将被丢掉
//-ng: 指定分词后考虑词汇的最大长度,例如 1-gram 就是,coca,cola,这是两个词,// 2-gram 时,coca cola 是一个词汇,2-gram 比 1-gram 在一定情况 下分析的更准确。
//-ml: 指定判断相邻词语是不是属于一个词汇的相似度阈值,当选择 >1-gram 时才有用,其实计算的是
// Minimum Log Likelihood Ratio 的阈值 //-seq: 指定生成的向量是
SequentialAccessSparseVectors,没设置时默 认生成还是
// RandomAccessSparseVectors
try {
SparseVectorsFromSequenceFiles.main(args);} catch(Exception e){
e.printStackTrace();} }
这里补充一点,生成的向量化文件的目录结构是这样的:
图 2 文本信息向量化
o o o o o o o df-count 目录:保存着文本的频率信息
tf-vectors 目录:保存着以 TF 作为权值的文本向量
tfidf-vectors 目录:保存着以 TFIDF 作为权值的文本向量 tokenized-documents 目录:保存着分词过后的文本信息 wordcount 目录:保存着全局的词汇出现的次数 dictionary.file-0 目录:保存着这些文本的词汇表
frequcency-file-0 目录 : 保存着词汇表对应的频率信息。
介绍完向量化问题,下面我们深入分析各个聚类算法,首先介绍的是最经典的 K 均值算法。K 均值聚类算法 K 均值是典型的基于距离的排他的划分方法:给定一个 n 个对象的数据集,它可以构建数据的 k 个划分,每个划分就是一个聚类,并且 k<=n,同时还需要满足两个要求:
每个组至少包含一个对象
每个对象必须属于且仅属于一个组。
K 均值的基本原理是这样的,给定 k,即要构建的划分的数目,1.首先创建一个初始划分,随机地选择 k 个对象,每个对象初始地代表了一个簇中心。对于其他的对象,根据其与各个簇中心的距离,将它们赋给最近的簇。
2.然后采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进划分。所谓重定位技术,就是当有新的对象加入簇或者已有对象离开簇的时候,重新计算簇的平均值,然后对对象进行重新分配。这个过程不断重复,直到没有簇中对象的变化。当结果簇是密集的,而且簇和簇之间的区别比较明显时,K 均值的效果比较好。对于处理大数据集,这个算法是相对可伸缩的和高效的,它的复杂度是 O(nkt),n 是对象的个数,k 是簇的数目,t 是迭代的次数,通常 k< K 均值的最大问题是要求用户必须事先给出 k 的个数,k 的选择一般都基于一些经验值和多次实验结果,对于不同的数据集,k 的取值没有可借鉴性。另外,K 均值对“噪音”和孤立点数据是敏感的,少量这类的数据就能对平均值造成极大的影响。 说了这么多理论的原理,下面我们基于 Mahout 实现一个简单的 K 均值算法的例子。如前面介绍的,Mahout 提供了基本的基于内存的实现和基于 Hadoop 的 Map/Reduce 的实现,分别是 KMeansClusterer 和 KMeansDriver,下面给出一个简单的例子,就基于我们在清单 1 里定义的二维点集数据。 清单 3.K 均值聚类算法示例 // 基于内存的 K 均值聚类算法实现 public static void kMeansClusterInMemoryKMeans(){ // 指定需要聚类的个数,这里选择 2 类 int k = 2;// 指定 K 均值聚类算法的最大迭代次数 int maxIter = 3;// 指定 K 均值聚类算法的最大距离阈值 double distanceThreshold = 0.01;// 声明一个计算距离的方法,这里选择了欧几里德距离 DistanceMeasure measure = new EuclideanDistanceMeasure();// 这里构建向量集,使用的是清单 1 里的二维点集 List List List // 打印最终的聚类结果 for(Cluster cluster : finalClusters.get(finalClusters.size()-1)){ System.out.println(“Cluster id: ” + cluster.getId()+ “ center: ” + cluster.getCenter().asFormatString());System.out.println(“ Points: ” + cluster.getNumPoints());} } // 基于 Hadoop 的 K 均值聚类算法实现 public static void kMeansClusterUsingMapReduce()throws Exception{ // 声明一个计算距离的方法,这里选择了欧几里德距离 DistanceMeasure measure = new EuclideanDistanceMeasure();// 指定输入路径,如前面介绍的一样,基于 Hadoop 的实现就是通过指定输入 输出的文件路径来指定数据源的。 Path testpoints = new Path(“testpoints”);Path output = new Path(“output”);// 清空输入输出路径下的数据 HadoopUtil.overwriteOutput(testpoints);HadoopUtil.overwriteOutput(output);RandomUtils.useTestSeed();// 在输入路径下生成点集,与内存的方法不同,这里需要把所有的向量写进文件,下面给出具体 的例子 SimpleDataSet.writePointsToFile(testpoints);// 指定需要聚类的个数,这里选择 2 类 int k = 2;// 指定 K 均值聚类算法的最大迭代次数 int maxIter = 3;// 指定 K 均值聚类算法的最大距离阈值 double distanceThreshold = 0.01;// 随机的选择 k 个作为簇的中心 Path clusters = RandomSeedGenerator.buildRandom(testpoints, new Path(output, “clusters-0”), k, measure);// 调用 KMeansDriver.runJob 方法执行 K 均值聚类算法 KMeansDriver.runJob(testpoints, clusters, output, measure, distanceThreshold, maxIter, 1, true, true);// 调用 ClusterDumper 的 printClusters 方法将聚类结果打印出来。ClusterDumper clusterDumper = new ClusterDumper(new Path(output, “clusters-” + maxIter-1), new Path(output, “clusteredPoints”));clusterDumper.printClusters(null);} //SimpleDataSet 的 writePointsToFile 方法,将测试点集写入文件里 // 首先我们将测试点集包装成 VectorWritable 形式,从而将它们写入文件 public static List double[] fr = raw[i]; Vector vec = new RandomAccessSparseVector(fr.length); vec.assign(fr);// 只是在加入点集前,在 RandomAccessSparseVector 外加了一层 VectorWritable 的包装 points.add(new VectorWritable(vec));} return points;} // 将 VectorWritable 的点集写入文件,这里涉及一些基本的 Hadoop 编程元素,详细的请 参阅参考资源里相关的内容 public static void writePointsToFile(Path output)throws IOException { // 调用前面的方法生成点集 List Configuration conf = new Configuration();// 生成 Hadoop 文件系统对象 FileSystem FileSystem fs = FileSystem.get(output.toUri(), conf);// 生成一个 SequenceFile.Writer,它负责将 Vector 写入文件中 SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf, output, Text.class, VectorWritable.class);// 这里将向量按照文本形式写入文件 try { for(VectorWritable vw : pointVectors){ writer.append(new Text(), vw); } } finally { writer.close();} } 执行结果 KMeans Clustering In Memory Result Cluster id: 0 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[1.8,1.8,0.0], ”state“:[1,1,0], ”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1, ”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2,”lengthSquared “:-1.0}”} Points: 5 Cluster id: 1 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[7.***,7.***,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2,”lengthSquared“ :-1.0}”} Points: 7 KMeans Clustering Using Map/Reduce Result Weight: Point: 1.0: [1.000, 1.000] 1.0: [2.000, 1.000] 1.0: [1.000, 2.000] 1.0: [2.000, 2.000] 1.0: [3.000, 3.000] Weight: Point: 1.0: [8.000, 8.000] 1.0: [9.000, 8.000] 1.0: [8.000, 9.000] 1.0: [9.000, 9.000] 1.0: [5.000, 5.000] 1.0: [5.000, 6.000] 1.0: [6.000, 6.000] 介绍完 K 均值聚类算法,我们可以看出它最大的优点是:原理简单,实现起来也相对简单,同时执行效率和对于大数据量的可伸缩性还是较强的。然而缺点也是很明确的,首 先它需要用户在执行聚类之前就有明确的聚类个数的设置,这一点是用户在处理大部分问题时都不太可能事先知道的,一般需要通过多次试验找出一个最优的 K 值;其次就是,由于算法在最开始采用随机选择初始聚类中心的方法,所以算法对噪音和孤立点的容忍能力较差。所谓噪音就是待聚类对象中错误的数据,而孤立点 是指与其他数据距离较远,相似性较低的数据。对于 K 均值算法,一旦孤立点和噪音在最开始被选作簇中心,对后面整个聚类过程将带来很大的问题,那么我们有什么方法可以先快速找出应该选择多少个簇,同时找到簇 的中心,这样可以大大优化 K 均值聚类算法的效率,下面我们就介绍另一个聚类方法:Canopy 聚类算法。Canopy 聚类算法 Canopy 聚类算法的基本原则是:首先应用成本低的近似的距离计算方法高效的将数据分为多个组,这里称为一个 Canopy,我们姑且将它翻译为“华盖”,Canopy 之间可以有重叠的部分;然后采用严格的距离计算方式准确的计算在同一 Canopy 中的点,将他们分配与最合适的簇中。Canopy 聚类算法经常用于 K 均值聚类算法的预处理,用来找合适的 k 值和簇中心。 下面详细介绍一下创建 Canopy 的过程:初始,假设我们有一组点集 S,并且预设了两个距离阈值,T1,T2(T1>T2);然后选择一个点,计算它与 S 中其他点的距离(这里采用成本很低的计算方法),将距离在 T1 以内的放入一个 Canopy 中,同时从 S 中去掉那些与此点距离在 T2 以内的点(这里是为了保证和中心距离在 T2 以内的点不能再作为其他 Canopy 的中心),重复整个过程直到 S 为空为止。 对 K 均值的实现一样,Mahout 也提供了两个 Canopy 聚类的实现,下面我们就看看具体的代码例子。 清单 4.Canopy 聚类算法示例 //Canopy 聚类算法的内存实现 public static void canopyClusterInMemory(){ // 设置距离阈值 T1,T2 double T1 = 4.0;double T2 = 3.0;// 调用 CanopyClusterer.createCanopies 方法创建 Canopy,参数分别是: // 1.需要聚类的点集 // 2.距离计算方法 // 3.距离阈值 T1 和 T2 List // 有必须的时候,可以拿到 Canopy 聚类的结果作为 K 均值聚类的输入,能更精确更高效 的解决聚类问题 for(Canopy canopy : canopies){ System.out.println(“Cluster id: ” + canopy.getId()+ “ center: ” + canopy.getCenter().asFormatString()); System.out.println(“ Points: ” + canopy.getNumPoints()); } } //Canopy 聚类算法的 Hadoop 实现 public static void canopyClusterUsingMapReduce()throws Exception{ // 设置距离阈值 T1,T2 double T1 = 4.0;double T2 = 3.0;// 声明距离计算的方法 DistanceMeasure measure = new EuclideanDistanceMeasure();// 设置输入输出的文件路径 Path testpoints = new Path(“testpoints”);Path output = new Path(“output”);// 清空输入输出路径下的数据 HadoopUtil.overwriteOutput(testpoints);HadoopUtil.overwriteOutput(output);// 将测试点集写入输入目录下 SimpleDataSet.writePointsToFile(testpoints); // 调用 CanopyDriver.buildClusters 的方法执行 Canopy 聚类,参数是: // 1.输入路径,输出路径 // 2.计算距离的方法 // 3.距离阈值 T1 和 T2 new CanopyDriver().buildClusters(testpoints, output, measure, T1, T2, true);// 打印 Canopy 聚类的结果 List List } } } 执行结果 Canopy Clustering In Memory Result Cluster id: 0 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[1.8,1.8,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0, ”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5}, ”size“:2,”lengthSquared“:-1.0}”} Points: 5 Cluster id: 1 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”,“vector”:“{”values“:{”table“:[0,1,0],”values“:[7.5,7.***,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2, ”lengthSquared“:-1.0}”} Points: 6 Cluster id: 2 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[5.0,5.5,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2, ”lengthSquared“:-1.0}”} Points: 2 Canopy Clustering Using Map/Reduce Result Cluster id: 0 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[1.8,1.8,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0, ”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5}, ”size“:2,”lengthSquared“:-1.0}”} Points: 5 Cluster id: 1 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”,“vector”:“{”values“:{”table“:[0,1,0],”values“:[7.5,7.***,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2, ”lengthSquared“:-1.0}”} Points: 6 Cluster id: 2 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[5.***,5.***,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2,”lengthSquared“:-1.0}”} Points: 3 模糊 K 均值聚类算法 模糊 K 均值聚类算法是 K 均值聚类的扩展,它的基本原理和 K 均值一样,只是它的聚类结果允许存在对象属于多个簇,也就是说:它属于我们前面介绍过的可重叠聚类算法。为了深入理解模糊 K 均值和 K 均值的区别,这里我们得花些时间了解一个概念:模糊参数(Fuzziness Factor)。 与 K 均值聚类原理类似,模糊 K 均值也是在待聚类对象向量集合上循环,但是它并不是将向量分配给距离最近的簇,而是计算向量与各个簇的相关性(Association)。假设有一个向量 v,有 k 个簇,v 到 k 个簇中心的距离分别是 d1,d2„ dk,那么 V 到第一个簇的相关性 u1可以通过下面的算式计算: 计算 v 到其他簇的相关性只需将 d1替换为对应的距离。 从上面的算式,我们看出,当 m近似 2 时,相关性近似 1;当 m近似 1 时,相关性近似于到该簇的距离,所以 m 的取值在(1,2)区间内,当 m 越大,模糊程度越大,m 就是我们刚刚提到的模糊参数。 讲了这么多理论的原理,下面我们看看如何使用 Mahout 实现模糊 K 均值聚类,同前面的方法一样,Mahout 一样提供了基于内存和基于 Hadoop Map/Reduce 的两种实现 FuzzyKMeansClusterer 和 FuzzyMeansDriver,分别是清单 5 给出了一个例子。 清单 5.模糊 K 均值聚类算法示例 public static void fuzzyKMeansClusterInMemory(){ // 指定聚类的个数 int k = 2;// 指定 K 均值聚类算法的最大迭代次数 int maxIter = 3;// 指定 K 均值聚类算法的最大距离阈值 double distanceThreshold = 0.01;// 指定模糊 K 均值聚类算法的模糊参数 float fuzzificationFactor = 10;// 声明一个计算距离的方法,这里选择了欧几里德距离 DistanceMeasure measure = new EuclideanDistanceMeasure();// 构建向量集,使用的是清单 1 里的二维点集 List List clusters.add(new SoftCluster(v, clusterId++, measure));} // 调用 FuzzyKMeansClusterer 的 clusterPoints 方法进行模糊 K 均值聚类 List for(SoftCluster cluster : finalClusters.get(finalClusters.size()-1)){ System.out.println(“Fuzzy Cluster id: ” + cluster.getId()+ “ center: ” + cluster.getCenter().asFormatString());} } public class fuzzyKMeansClusterUsingMapReduce { // 指定模糊 K 均值聚类算法的模糊参数 float fuzzificationFactor = 2.0f;// 指定需要聚类的个数,这里选择 2 类 int k = 2;// 指定最大迭代次数 int maxIter = 3;// 指定最大距离阈值 double distanceThreshold = 0.01;// 声明一个计算距离的方法,这里选择了欧几里德距离 DistanceMeasure measure = new EuclideanDistanceMeasure();// 设置输入输出的文件路径 Path testpoints = new Path(“testpoints”);Path output = new Path(“output”);// 清空输入输出路径下的数据 HadoopUtil.overwriteOutput(testpoints);HadoopUtil.overwriteOutput(output);// 将测试点集写入输入目录下 SimpleDataSet.writePointsToFile(testpoints);// 随机的选择 k 个作为簇的中心 Path clusters = RandomSeedGenerator.buildRandom(testpoints, new Path(output, “clusters-0”), k, measure);FuzzyKMeansDriver.runJob(testpoints, clusters, output, measure, 0.5, maxIter, 1, fuzzificationFactor, true, true, distanceThreshold, true);// 打印模糊 K 均值聚类的结果 ClusterDumper clusterDumper = new ClusterDumper(new Path(output, “clusters-” + maxIter),new Path(output, “clusteredPoints”));clusterDumper.printClusters(null);} 执行结果 Fuzzy KMeans Clustering In Memory Result Fuzzy Cluster id: 0 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[1.***3,1.***,0.0],”state“:[1,1,0],”freeEntries“:1,”distinct“:2,”lowWaterMark“:0,”highWaterMark“:1,”minLoadFactor“:0.2,”maxLoadFactor“:0.5},”size“:2,”lengthSquared“:-1.0}”} Fuzzy Cluster id: 1 center:{“class”:“org.apache.mahout.math.RandomAccessSparseVector”, “vector”:“{”values“:{”table“:[0,1,0],”values“:[7.***,7.***,0.0],”state“:[1,1,0], ”freeEntries":1, 奥尔夫音乐简介——最适合儿童的音乐 导读:什么是奥尔夫音乐?奥尔夫音乐教育是一个综合性的教育整体。在奥尔夫的音乐课堂中,孩子们有机会进入丰富的艺术世界,音乐不再仅仅是旋律和节奏,而是与儿歌说白、律动、舞蹈、戏剧表演甚至是绘画、雕塑等视觉艺术相联系。他们可能在老师的引导下去关注特定的一个声源,去倾听,辨别,想象来自生活和自然界的不同的声音。 奥尔夫音乐教育体系是当今世界最著名、影响最广泛的三大音乐教育体系之一。奥尔夫的音乐教育原理,即是原本性的音乐教育。原本的音乐是和动作、舞蹈、语言紧密结合在一起的;它是一种人们必须自己参与的音乐,即人们不是作为听众,而是作为演奏者参与其间;它是先于智力的,它不用什么大型的形式,不用结构;它带来的是小型的序列形式、固定音型和小型的回旋曲形式。原本的音乐是接近土壤的、自然的、机体的、能为每个人学会和体验的、是适合于儿童的。 奥尔夫原本性音乐教育的原理可以归纳为以下几点: 1、综合性 随着科学的发展,将艺术划分得也越来越细,但音乐不是以单一的形式存在的,不是单纯用嘴唱或用耳朵听,它是一种综合的艺术,可以一边唱一边跳一边用乐器演奏。奥尔夫指出:原本的音乐是什么呢?原本的音乐决不是单纯的音乐,它是和动作、舞蹈语言紧密结合在一起的。这是人类本来的状况,是原始的,也是最接近人心灵的,因此可以说音乐是综合的艺术。 2、创造性(或者称即兴性) 孩子的生活经验没有受太多的社会影响而定型,因此他们天然的具有对音乐的创造性。在看到一幅图画后,他们可以根据自己的理解用音乐去表达,通过简单的乐器即兴演奏、即兴表演,使孩子也从事艺术家的工作,用音乐去挖掘、去创作、去发挥想像力。当没有乐器时,他们能用手、脚、筷子、报纸等代替音乐进行演奏,充分体现对乐器的创造性。 3、亲自参与、诉诸感性、回归人本 情商是人们智力发展的一个重要因素,以往人们不知道通过何种途径去培养,现在奥尔夫就是一个培养情商的好方法。通过孩子的视、听、触、嗅,最大限度地调动孩子各个方面的能力,开发孩子的潜能。原本的音乐是一种人们必须自己参与的音乐。音乐在这里的作用在于,它使人们成为一个主动者参与其间,而不仅仅是一个聆听者。当音乐响起,你可以用身体动作表达,就像有的小孩子,听到电视里面唱歌或者跳舞,也扭动小屁股跳起来,嘴里也哼唱起来。这种自娱自乐的音乐形式有助于情感的抒发与宣泄。 4、从本土文化出发 奥尔夫的音乐教育思想及其教学方法,呈现一种开放性,这使得奥尔夫音乐教育体系在任何一个国家、民族的传播必然形成本土化。奥尔夫音乐重在理念,它没有规定一个标准的示范课程,他鼓励人们依照本国的文化,将他的音乐理念融入其中,这样虽然给教学带来一定难度,但也给各国的奥尔夫教育工作者提供了一个无限发展的空间。从本土出发,中国的奥尔夫结合了本民族的文化、语言、民歌、童谣甚至是方言。这种音乐更被人们熟知,更为人们所接受,具有通俗性,人们更易懂。因此,各国的奥尔夫理念相同,却在具体内容上不同,不会使奥尔夫局限在某一时代、某一国家,而是不断创新,世世代代发展下去。 5、从儿童出发 音乐不是精英人才的专利品,在七种智能学说里面,提到可以通过艺术渠道对人进行培养。有些家长认为孩子没有音乐细胞,没必要对孩子进行音乐教育,这就大错特错了。艺术是每个人的本能。每个孩子都能感受和体验。一个6岁以下的孩子,声带发育还不成熟,如果让孩子唱一个长音,他还唱不下来,有时出现唱歌唱不准的现象,也是正常的,但他的动作发展已经成熟,听觉也是成熟的,因此奥尔夫最适于孩子。让他们从小懂得节奏、韵律,了解音乐语言。 奥尔夫音乐的局限性 奥尔夫音乐不是学习高深的音乐技能,它重在开发人的潜能,可以说奥尔夫是关于音乐的启蒙,是学习其它音乐的起步。总之,奥尔夫打破了科学的系统性,摆脱了科学对音乐的桎梏,更有利于个性的健康发展。 奥尔夫音乐教学法对幼儿的启发 导读:奥尔夫教学法是一种先进而独特的音乐教学法。它用儿童喜闻乐见的形式如说儿歌、拍手、做游戏、讲故事、唱歌等,培养儿童的乐感,尤其是节奏感和听力,使儿童能够感受音乐带来的快乐,热爱音乐。音乐活动中有大量机会让孩子即兴创作,创新求异。特制的奥尔夫乐器使儿童能迅速在乐器上表述音乐的构想,享受创作的乐趣。 奥尔夫教学法是一种先进而独特的音乐教学法。它用儿童喜闻乐见的形式如说儿歌、拍手、做游戏、讲故事、唱歌等,培养儿童的乐感,尤其是节奏感和听力,使儿童能够感受音乐带来的快乐,热爱音乐。 奥尔夫教学法(Orff-Schulwerk)的创建者卡尔奥尔夫(1895-1982)是一位卓有成绩的德国作曲家,音乐作品在全世界经常上演。他同时也是位音乐教育改革先驱。他的音乐教育体系在全世界广为流传,教材被翻译成二十多种文字。他认为,传统音乐教学法舍本求末,过度强调技巧,却忽略了音乐的生命、创造和表达。 奥尔夫教学法强调艺术教育的综合性。它把语言、律动和音乐教学相结合,通过节奏朗诵、拍手跺脚等人体乐器、音乐游戏、歌唱、舞蹈、绘画、演小剧、演奏奥尔夫乐器等多种形式,使孩子不仅兴致勃勃地参与音乐活动,而且综合提高语言能力、理解力和表演能力。 奥尔夫教学法鼓励儿童的创新精神。音乐活动中有大量机会让孩子即兴创作,创新求异。特制的奥尔夫乐器使儿童能迅速在乐器上表述音乐的构想,享受创作的乐趣。 奥尔夫教学法强调本土化。奥尔夫的教育思想能与当地文化遗产完美结合,这也是奥尔夫教学法能迅速传遍世界的重要原因之一。在进行奥尔夫教学的同时使儿童继承本民族的文化遗产,这一设想有美好的前景。 幼儿手指小肌肉尚未发育完全,此时最需要发展的不是技巧,而是乐感的培养和对音乐的热爱。奥尔夫教学法恰能满足这一需要。 导读:孩子的天性是活泼好动,不愿受到拘束。如果你让宝宝坐在钢琴边,严格地要求他按部就班地弹,宝宝大多是没有耐性的,往往虎头蛇尾,让爸爸妈妈失望。尝试用奥尔夫音乐引导宝宝认识音乐,或许非常有效。因为奥尔夫音乐非常适合孩子的特性,而且注重发挥孩子的主动性。 1、培养宝宝对音乐的兴趣 奥尔夫音乐带有自娱的特性,这就吸引了儿童参加进来,让孩子在玩乐中懂得音乐,不是为了学音乐而学音乐,而是为了让孩子在还不懂得什么是音乐的年龄,就开始音乐的实地演习。比如老师教一首歌谣“爬呀爬呀爬呀爬,一爬爬到头顶上,爬呀爬呀爬呀爬,一爬爬到脚底下。”前两句老师从低音唱到高音,后两句从高音唱到低音,动作则是人坐在地板上,腿屈膝脚掌平放在地,双手从脚下随着歌声向上做爬的动作,当唱到爬到头顶上时,手正好到达头顶,唱下两句时,手又从头顶爬到脚下。这种一边唱一边做动作的方法,让孩子用身体动作理解了高音、低音。在教学中,还配合了奥尔夫乐器的使用。奥尔夫乐器比较容易操作,比如鼓、木琴、响板等,这些乐器不强调过多的技巧,只要在老师的启发下,宝宝就可有节奏地敲击,奏出音乐,使宝宝很容易喜欢音乐。 2、培养宝宝的专注力和协调能力 由于在上课时,宝宝耳朵要听、眼睛要看、嘴中要学唱、还要配合各种动作,调动了宝宝各个器官都要参与音乐的表现,从而使宝宝注意力集中,学习得非常快。同时也锻炼了各器官的协调能力。 3、培养宝宝的听力和创造力 0-3岁的宝宝,是听力发展的关键期,这个时期让宝宝多听各种各样的声音和节奏,有助于听力的发展。由于宝宝社会经验较少,创造力的发展还不明显。4岁的宝宝,是创造力发展的关键时期,这时如果充分运用宝宝这一时期的特点,可以开发宝宝的创造力。比如老师启发宝宝:老师唱的是爬到头顶上,小朋友们还能说出爬到哪儿?有的小朋友说爬到鼻子上、有的说脖子上、有的说屁股上,老师对他们的回答都表示鼓励,并带着宝宝们唱一遍。老师还可以进一步启发宝宝:可以是爬,还可以是什么呢?有的小朋友说飞、有的说飘、有的说走,总之让宝宝开动脑筋,自己编创歌词。 4、培养宝宝的情感 由于这种活动轻松、愉快,宝宝一学就会,不给宝宝带来压力,因此宝宝情绪饱满、兴奋,有利于宝宝通过这种途径使情绪得到抒发。 5、培养宝宝其它艺术天分 在学习奥尔夫的过程中,配合了演奏乐器、舞蹈、有时还可以放一段音乐,让图画来表示音乐,比如当听到流水潺潺的声音时,宝宝可能画一条弯弯曲曲的线,当宝宝听到海浪的声音时,可能画一条此起彼伏的线,表现海浪。这就培养了宝宝领悟其它艺术形式的能力。 总之,奥尔夫音乐通过孩子喜闻乐见的形式,不仅学习了音乐,更是通过音乐,开发了孩子多方面的能力,挖掘了孩子的潜能 在“奥尔夫”中提高孩子的人际交往能力 将艺术教学作为儿童智能开发、素质培养的手段是当今先进、发达国家惯用的教学方式。对素质的理解,尤其涉及到音乐艺术教学,很多人会理解为艺术修养、音乐爱好等,而不是作为生活在当今社会的人所需具备的智能。在上世纪八十年代,哈佛大学的加德纳教授已重新归纳为八大智能——人的基本素质。在跟进的研究中证实这些智能可通过艺术教学去开发提高。奥尔夫教学在世界广泛的推广流传,并不断的调整发展,成为在艺术教学中能同时解决孩子的智能开发,素质培养的典范,尤其是对孩子的创造力、空间、人际关系等素质的培养有突出成效。 我国独生子女的家庭不少,在这些家庭中时常有众多大人围着一个孩子转的情景,就做成了孩子常常以我为中心,使孩子往往忘记了或忽略了别人的存在,也不知道如何与他人交往沟通。如碰上工作繁忙,不善引导的家长,久而久之孩子就会在人际的交往上出现问题。或出现孤僻,难以合群,或出现个性太强,听不进不同意见,不会尊重他人,难以与人合作完成任务。更有甚者,为了引人瞩目或取悦小伙伴,就故意去挑逗、激怒他人,其效果适得其反。发展下去,长大后也难与同事相处,更何况配合协同,合力完成工作? 奥尔夫教学法在利用艺术教学去提高孩子的人际交往能力有很多成功的案例。首先,音乐与舞蹈是孩子们都乐于参与的活动项目,第二,作为执教者,在做艺术教育的同时,要有很强的素质教育意识,尤其在早期教育阶段,孩子年龄还小,许多素质、智能都有待开发,如孩子的创造能力的开发最佳时段是在4至5岁,错过了这个时段就难有最好的效果。将艺术教学和素质教育结合起来,“镶入”孩子合适的游戏中进行教学,是奥尔夫教学的最高境界。 奥尔夫教学法要求对教学对象年龄特征、心理、生理状态有充份了解,课程设计周密准确,能让孩子从头到尾跟着老师走。在欢快的唱歌、律动游戏中,孩子慢慢可以脱离开家长(其中会有个别性格较脆弱的孩子还不行,要耐心的等待)。小小的打击乐器如碰铃、铃鼓,利用孩子刚学会的基石节奏,就开展一些简单的乐器合奏,两个声部,要求孩子要互相听,准确配合好。孩子在这个练习中开始注意到有其他小朋友的存在,知道要与他人好好配合,就能演奏出好听的音乐来。舞蹈教学也对此有相关的、循序渐进地安排。开始时让两、三个小朋友一齐手拉手,转个圈,脚碰脚,跺一下„„孩子很快就能做到,既高兴又快乐。让他们知道,要与其他小朋友做好朋友,才能得到这种快乐。各种形式的两人或多人以上的配合競赛游戏,隔三岔五就会出现一次,小朋友从中明白到要取胜就要尊重小伙伴,就要与他们好好配合,只有团结大家,才能很好的完成任务。这种社交人际关系的能力的开掘和强化,将使孩子受用终身。 在奥尔夫音乐活动中培养幼儿创新能力 创新是人类社会发展与进步永恒主题。特别是在科学技术日新月异的知识经济时代,创新已成为经济社会的灵魂。 奥尔夫认为在音乐教育中,音乐只是手段,教育人、培养人才是目的。通过音乐教育可以发展人的感官功能;培养人对音乐艺术的情感、态度、审美判断能力;培养高深的品德、美好的心灵;促进认知能力的发展;提高运用音乐艺术形式进行表达、交流的能力;发展想象力、创造性等。而感觉能力是人认识世界、发展智力进行创造性活动的基础。通过音乐教育可提高儿童听觉的敏锐性、直觉等方面的培养。而是有创造性的人必然是感觉灵敏的人,艺术教育正是培养感性知觉的最好途径。尤其是对孩子们进行早期的培养,对他们的毕生都具很大作用。 一、利用好奇心引导探索,培养创新精神。 创造性活动是人的潜在能力的表现。幼儿同样具有强烈的创造欲望,受这种欲望的驱使,他们不停地进行各种寻求和探索。 探索是创造的前奏,而好奇心又是探索的原动力。因而培养幼儿的好奇心,保护幼儿的好奇心,并因势利导,使之成为创新思维的源泉是十分重要的。在进行“打击乐”教学活动中,我发现幼儿对各式各样的乐器十分感兴趣,他们忍不住好奇心这里摸摸那里敲敲,弄得活动室里一片噪音。刚开始时我为了将活动任务完成总是把乐器收起来,讲解示范完了才发给幼儿,结果我发现幼儿对我的讲解不感兴趣,注意力始终在乐器上,教学效果并不好。经过思索后我决定满足幼儿的好奇心,去掉枯燥的讲解,活动一开始就放手让幼儿自由地去感觉触摸各种乐器,让他们在玩的过程中自己探索这些乐器的特点和用法,当幼儿遇到困难时自然会提出问题,我就鼓励他们互相帮助解决问题,再进行引导,结果我班的幼儿不仅每次都积极参与“打击乐”活动,而且对活动内容掌握得很好。这一举动,不但很好地保护了幼儿的好奇心,鼓励幼儿积极探索,还为幼儿的下一次创新实践提供了参与的动力,形成了初步的创新精神。 二、即兴——创造力的培养 创造性是人的主体性发展的最高表现。创造能力不仅表现为具有强烈的创新意识,而且表现具有丰富的想象力、敏锐的直觉、创造性思维和动手实践能力。艺术教育在培养人的创造能力方面具有特殊的作用。艺术教育的重要目标之一就是使人在参与、体验的过程中变得更富有想象力、创造力。奥尔夫教育中最突出、重要的一向原则是即兴原则。奥尔夫认为,即兴是最古老、最自然的音乐表现形式,是情感表露的最直接的形式。奥尔夫的教学活动通过儿童的积极参与和唱奏实践,以即兴活动形式发展儿童的音乐体验、尝试创造音乐的能力。即兴活动重视儿童在“做”的截长补短中的主动学习,以及想象力、创造性的发挥,因此做不做是关键问题,而做得好不好不是关键问题。奥尔夫教学明确提出,重要的是学习的过程,而不是结果。儿童在成长、实践的过程中的结果可能是幼稚、粗糙、不完美的,但可贵的是儿童的探索精神,是儿童在实践中的体验和收获的经验,是儿童自然的情感、想象力、个性的发展。奥尔夫说过,原本性的音乐是让儿童很早就开始以即兴活动形式,创造性的探索节奏、音响和旋律等音乐基本素材的各种变化和重新组合。以上一系列论述表明,即兴性创造原则的精髓在于,不仅仅把即兴演奏作为一种教学形式,而是把它作为整个音乐教育的起点和基础。在即兴的活动中,培养了儿童的敏锐的听觉,精确的节奏感,对于音乐定时、结构的感知,对于音乐形象、表现的黎烈和高度的集中注意,默契的相互配合,实际上是对儿童音乐能力的全面发展。奥尔夫活动中首先唤醒和加以训练的是我们的想象力。因为没有想象力就不可能有即兴活动。 即兴——对一个人的一切禁锢的放纵。奥尔夫著:完全从即兴出发的自由教学,是而且永远是一个卓越的出发点。即兴也成为了奥尔夫音乐教育体系最核心、最吸引人的构成部分。它能促进一般的感知、注意力集中和记忆力,训练身体动作,发展想象力和创造力。在现实的教育过程中,教师给予孩子去参与即兴是少的可怜。因为教师都对其有一种恐惧,认为即兴活动是神秘的、教不会也不会教的课程,还有最根本的原因在于教师本身的创造能力就不强,缺乏创新意识,也就更不会想念孩子在这方面的特殊才能了。 三、创造与环境相结合,在实际生活中进行创新。 儿童并应不需要熟练的技巧,但是需要情感和环境的宽松自由。如孩子们自发、直觉的创造活动受到很多教条、规矩的压力和限制,就会压抑和摧残儿童的创造性,个性成长也必然受到影响。儿童在人格的发展上会变得习惯模仿,只愿意跟随生活中的常规模式,不善于适应新的变化,习惯于依赖他人、缺少独创性。 环境是孩子的启蒙老师,离开生活环境的教育是苍白空洞的。同样,如果教幼儿学习音乐与他们的实际生活脱节,这样的音乐活动就不可能发挥音乐教育应有的教育功能。只有把握幼儿实际生活中的现象、细节,结合幼儿接受音乐教育的能力和特点,结合音乐教育实际需要向幼儿进行教育,才能有效地发挥音乐教育特有的教育功能,逐步完成音乐教育促进幼儿发展的任务。幼儿时期这一特定的年龄段,使幼儿的思维及能力定位在生活最基层的部位,他们的生活经验是有限的。音乐创新教育活动选材是很重要的,要来自于孩子们的生活,充分体现幼儿的想法,从实际出发、于平凡中出新。只要老师们能遵循幼儿音乐教育的规律和特点,恰当地选用教材,细心地研究教材,从中挖掘有助于培养能力的教育因素,结合幼儿的生活环境、学习活动,切合幼儿实际情况进行音乐教育,幼儿就能得到音乐能力的培养和提高。幼儿有了一定的音乐能力之后,再结合与教材相关的知识技能和生活体验,引导幼儿感受和领悟音乐的情绪情感和教育内涵,这样就能促进幼儿多方面的发展。刘白羽在创作经验中总结说:“对一个创作者来说,是生活中的种种具体的动人的形象打动你,给你带来思想、认识,你通过复杂的生活形象,才提炼出你的理解„„”。这就是所谓的来源于生活。 在音乐教学活动中,我认为音乐可以贯穿于生活的每一环节。我们不应该将音乐教学内容局限于一两节课堂教学活动中,这种音乐课堂教学的模式应当给予打破,我们可以将这些教学内容分散到一日活动中,在各个环节中渗透音乐内容给孩子以潜移默化的影响,而且应当给予重视的是一日生活中贯穿的音乐活动要为这一日安排的音乐教学内容服务。 四、创造的关键在于动手实践。 苏霍姆林斯基认为:“儿童的创造力在他们的手指上。”这充分说明动手实践是创造力培养的关键。传统的音乐教学多是动口不动手,这就是限制幼儿创新能力发展的一个重要原因。因而,要培养幼儿的创造力,就必须让幼儿养成动手又动口的好习惯。在教学中,应当引导他们根据对歌曲的认识,用手打节拍;根据自己对歌曲的理解想象用手表达情感;有时,还要配上相应的场景与道具,让幼儿利用这些场景与道具进行表演,表达歌曲的意思。这些动手的活动,都不失为培养幼儿创新能力的有效途径,幼儿在这些操作活动中就尝到了创造的乐趣。我通常在教学歌曲的过程中都要求幼儿根据歌词进行动作的创编,比如在《好妈妈》这一音乐活动中,由于歌词较长幼儿记住较困难,我就让几个小朋友分别扮演妈妈、娃娃,而且提供了相应的道具,幼儿在表演的过程中很快就记住了歌词而且演唱得十分有感情,在这样的练习过程中,不但锻炼了幼儿的动手实践还培养了幼儿大无畏的探索与创新精神。 当然,幼儿对音乐进行创造,离不开对音乐基础知识的掌握,对于必要的音乐知识教师还是应当引导幼儿学习理解。另外,培养幼儿音乐的创造能力还要多鼓励。幼儿的音乐创作毕竟是幼稚的,教师应很好的保护这些创造的最初火花,让幼儿明白音乐创造并不是高深莫测,而是妙趣横生的。 音乐创新教育顺应当代教育改革的思路,我们幼儿教师不应该把它视为一个任务而挖空心思生搬硬套,在日常生活中我们就要留心观察可以创造出新意的地方,将它们灵活运用到音乐教育教学活动中。重视幼儿对音乐的热情、思考和创造,给我们的孩子一个崭新的音乐教育教学环境,在音乐创新教育活动中发挥他们无穷的潜力,让他们自由、主动、积极地成长! 奥尔夫音乐课可开发多元智能 现代科学家把人的智能归纳出了七种,即:音乐智能、身体运动智能、数学逻辑智能、语言智能、空间智能、人际关系智能和自我认识智能七种。一堂音乐课能开发人的多元智能?可能很多人都不会相信吧!但自从我学习了奥尔夫音乐教学法后,便真正地感受到了音乐课的魅力!音乐课其实可以开发人的多元智能! 奥尔夫音乐教育体系是当今世界最著名的、影响最广泛的三大音乐教育体系之一。在奥尔夫音乐教育体系中,音乐教育不只是单纯的音乐教学,而是溶音乐、动作、舞蹈、语言、游戏、创作及其它为一体的。在奥尔夫音乐教育理论与实践中,极其注重开发学生的创造性及参与性,赋予学生综合的能力。人人都在可以轻松愉快的情绪中,在没有困难的压力下学习和掌握原本性的音乐,并且锻炼其它方面的能力。这种感受和体验的获得不是先外在的知识灌输和技术训练,而是通过人们的亲自参与、自发地、自然地、无形得获得。 在我们的一次音乐课中,老师让我们做了一个游戏。首先让我们做深呼吸,然后边走边发“si”及“yu(即吹“si”及yu”走步子),深呼吸的时候就停下来,体验自己的气息是否会越走越将气息保持得久些。然后老师用鼓锤敲鼓,让我们跟着鼓点的节奏走步子。在跟着节奏走步子的途中,有速度和力度的变化,一会儿慢走,一会儿快跑,还有根据鼓点的变化向后转等。之后,老师让我们闭着眼睛先转三圈,然后两个人互相找伴,触摸到对方后相互说“对不起”。 在完成这一过程之后,老师又在听鼓走的空拍中加入了“数字”,在老师的口令中变化数字,让同学们根据老师口令中的不同数字而相互间迅速地组成相关数字一组的各个小组,让同学们在游戏中承受“被拒绝”的滋味,然后寻找新的伙伴为一组。最后在这些游戏的基础上,老师在自己的口令中加入了“身体部分的认知”,让学生根据老师口令中的不同身体部位做出相关的动作及加入造型。同学们对这一点兴趣盎然,都各自摆造出了不同的新颖的姿势和造型! 通过这个简单而有趣的音乐游戏,同学们不仅掌握了音乐中的速度和力度的变化等,而且还运用了空间智能及数学逻辑智能,以及人际关系及自我认识、身体运动智能等。在这个游戏中,同学们闭上眼睛时什么都看不见,因此脑海中必须得有同学们间相互的空间位置,然后还得迅速地组成相关数字的各个小组,这便是对空间智能及数学逻辑智能的开发和运用;在同学们互相找伴和相互凑成几人一组以及摆出身体各种造型时,让同学们尝试到了被拒绝及相互认可的滋味,这便是对人际关系智能的开发和运用;在这个游戏过程中,老师让同学们用自己身体的各个部位摆出相应的造型,不也正开发和运用了自我认识智能及身体运动智能吗? 在这短小而轻松的一堂音乐游戏课中,同学们的各方面智能都得到了开发和运用,这不得不为奥尔夫音教法的魅力而感叹! 在另外一堂音乐游戏课中,老师让我们用美术、用线条、符号及毛线等把音乐表现出来。老师开始让我们用简单的符号表现人体最基本的四种表情----喜、怒、哀、乐。同学们都充分地发挥了自己的想象力,在黑板上展现了一幅幅丰富的简单而又形象的表情符号。同学们的思维一下子被激发开了。老师紧接着又让我们用颜色来表现。最后,老师给我们布置了一个惊人的任务:让我们用线条、形状、颜色等,分组设计一个音乐故事,把它画在白纸上,然后再把故事表演出来。同学们都积极地开动脑筋,编故事——调颜色——编线条、想符号——画故事——表演故事,一步一步地完成了老师布置的任务,同学们的画面及故事表演生动而新颖得让人叫绝!我们都无不为自己的智慧而高声地喝彩了起来! 这堂课不简单的是一堂音乐课,而是大胆地溶入了美术、创造、表演等,把同学们的潜能都大胆地挖掘了出来,让同学们又一次自信地找到了自我,各自都尝试到了创作及表演的甜头,更加增进了同学们的信心和学习的兴趣!它开发的不仅是音乐智能及身体运动智能以及其它多方面的智能,它培养得更多的还是同学们的大胆的探索及尝试和创新能力! 当今的社会是一个竞争激烈的社会,社会对人的挑战越来越高。因此,人们必须得锻炼自己各方面的智能,不断地用各种智能武装自己,使自己立足于这个社会,而让自己创造着这个社会、创造着自己辉煌的人生。奥尔夫音乐教学法在这方面却起到了不可低估的作用。在奥尔夫音乐教学体系中,它让学生们从小就自然地接受和学习了原本性的音乐,在这个基础上,它还无形地让学生们获得了创造力及各种综合能力的发展及锻炼,它让学生们在一节音乐课中不仅能学会舞蹈、曲调及节奏、风格、乐理等音乐方面的素质,更多地是它可以使一节音乐课开发学生们的多元智能!借递着音乐传承着人类璀灿的文化和开发着人类无限的潜能和智能! 奥尔夫音乐让宝宝更快乐 音乐,就该是快乐的 多年前一些家长在倪老师的课上带孩子玩过音乐游戏以后会问:倪老师,干吗花这么多时间玩呢?什么时候才开始正式上音乐课呀?在很多家长的观念中,“音乐”是一座山,早早地,他们开始拽着孩子的手开始往上爬(学琴,学五线谱„„),一路的美景“不许看!”“没时间看!”,在他们的心中只有一个目标“山顶”,只有到了山顶,才是音乐。那一路烂漫的山花,叮咚的泉水,啾啾的鸟鸣都被忽略。然后,我们就看到很多孩子在这个爬山的过程中累了,乏了,家长们也倦了。于是,他们就停下了脚步。而“音乐”那座山还在那里,遥不可及。 现在,年轻的爸爸妈妈们开始把音乐看作是一个花园。宝宝还未出生,妈妈就会倘徉其中,让我们的宝宝在安适、愉悦的母体中孕育成长。宝宝出生后,爸爸妈妈会抱着他们在音乐花园中闻一闻音乐的“花香”,看一看“多彩”的音乐,摸一摸,尝一尝音乐的“肌理”和“味道”。他们开始了解音乐的“乐”也是快乐的意思,他们要让孩子在音乐中快乐地成长。 一切都该是顺应孩子的天性而生——孩子爱动,他们不满足于安静地坐着听一段陌生的音乐,他们会编自己的歌;会自然地舞动,尝试着用自己的身体去把听到音乐时的感觉表达出来;能在家长或老师的巧妙引导下用奥尔夫乐器(奥尔夫研制的系列打击乐器,分有音高和无音高两大类,均无需反复的技巧训练即能演奏)来尝试演奏,来营造他们想象中的那个童话世界;能用简单的宣叙调来唱说他们集体创作的故事„„想一想,哪一个年轻的妈妈未曾在童年时裹着床单毛巾在床上,桌子下演过丫鬟和小姐之类的故事呢„„这就是孩子,他们需要这样的一个音乐世界! 奥尔夫音乐教育的可贵之处在于: 1、音乐教育不再是个别的,属于精英的教育,而是让每一个孩子都有了机会来感受,表现音乐的丰富性。 2、让孩子们摆脱了琴凳琴弦的束缚,也不再只是被动地聆听。没有枯燥乏味的技巧训练,即可让孩子进入表现音乐的阶段,使学习音乐不再那么“BORING” 3、孩子不再是一直被动地学习固化的东西,而有了自己广泛的即兴创作的空间。 4、把孩子从单纯的个体化的练声,练琴带入了合作的天地,让他们早早地开始学习如何协作、服从、领导与被领导。 一起享受音乐的快乐 在奥尔夫音乐班,你和宝宝可以学到的东西很多很多—— 当你抱着宝宝在音乐中旋转起舞,宝宝眼前的世界飞快地变化着——他一会儿看见这个宝宝的脸,一会儿看见那个妈妈的脸,这是多么新鲜而兴奋的事情啊! 一个小鼓,可以发出几种声音呢?孩子们在老师的启发下,充分发挥想像力,大胆地去尝试,让同一样东西发出不同的声音和节奏——音乐,不就是这样来的吗? 大家手拉手围成圈,边跳边唱,让孩子自然而然地用身体去感受各种音乐风格所带来的韵律;同时你可以模仿一种动物的姿态,配合它的拍子起舞; 孩子们可以拍手、跺脚、把玩乐器,甚至拍屁股,用各种能想到的方式来表现节奏,这样不断的创新使节奏练习不再枯燥; „„ 世界太大了,真正能够上专业的奥尔夫音乐课的孩子只可能是很少很少的一部分孩子。然而每个孩子都需要音乐的滋养,希望能有更多的爸爸妈妈来主动学习了解这样的一种教育思想。别忘了——你,才是他第一位最重要的老师。 奥尔夫音乐强调原本性与参与性,所以家长完全可以在生活中充当孩子的“音乐老师”,信手拈来地让他(她)感受音乐的魅力。 1岁左右的宝宝,你可以把他放在大腿上,面对面,手拉手,配合歌曲内容与节奏弹动你的双膝或让宝宝随节奏左右晃动,并在结尾或童谣的高潮处,把宝宝高高举起,或让他轻轻倒下。 例:童谣:RIDE A LITTLE PONY ride a little pony(在你的膝上有节奏地颠宝宝) down to town.(继续颠宝宝) Whoops!Little pony(将宝宝的胳膊往外甩) don’t fall down.(将宝宝轻轻往后仰) 当然,动作也可由你自己创编,只是注意不要频繁地更换动作。越小的宝宝越需要反复,你会看到在若干次这样的游戏后,他会在那个特定的时刻作好姿态来准备你的下一个动作。宝宝喜欢这样的与爸爸妈妈共同分享的活动,他们会觉得很好玩,乐意一再地反复。借着这样的活动,宝宝用他们的全身体验到了一种稳定的拍率感,同时也能强化内耳感应身体位置、动作、平衡与速度的功能。 2岁左右的宝宝开始进入语言敏感期。通过他们喜爱的儿歌、童谣进入稳定拍率感与节奏组合的练习是一种非常自然的学习方法。在教儿歌的时候,用一定的韵律节奏来反复念诵,并用手边任何可以敲击的物品来配合伴奏,还可以启发他用动作来表现(不要评估好坏或限制他们的想象,如:不能在地上爬;不要跳得太重„„只要保证安全,any idea is OK) 3岁左右的宝宝开始有了更广阔的活动天地。都市中的宝宝们有着无穷无尽的视觉、听觉的刺激。他可能无时无刻不在听。但倾听却是一种全神贯注于声音来源的姿态。今天在我们所处的环境中,各种各样的声音无孔不入,使得我们忘记了专心聆听的习惯对于我们宝宝在将来的学习、人际关系的处理、社会性交往都是非常非常的重要的。 带他们到大自然中去,让他们注意小鸟的歌声,小溪与岩石的嬉戏,小羊与老牛的对话,把它们录下来,回家后让他倾听,辨别这些声音的区别,开始可以是比较明显的对比,慢慢过渡到细微的差别(如:母鸡与公鸡打鸣的区别)。音乐是听觉的艺术,一对敏锐的耳朵才能体会音乐的精妙,这种能力可一定需要从小培养哦! 奥尔夫生平 卡尔·奥尔夫(Carl·Orff,1895—1982),德国当代著名作曲家、音乐戏剧家、音乐教育家。1895年7月10日出生于德国慕尼黑,1913至1914就学于慕尼黑音乐学院,1915至1919年在德国各地任剧院乐长,1920定居慕尼黑从事音乐创作与教学。 1924年奥尔夫与舞蹈家军特合作在慕尼黑创办了一所军特体操音乐舞蹈学校,在那里奥尔夫开始了他变革音乐教育的一系列尝试,1930年他与终生的合作伙伴凯特曼编写发表了教材初版第一卷。1932因为政治原因,奥尔夫决定离开音乐教育去从事专门作曲。 从1935年至1942年,从以一部十四世纪诗集手抄本创作了音乐剧《卡尔米娜·布拉纳》开始,陆续创作了《月亮》(1937—1939)、《聪明的女人》(1941—1943)。奥尔夫从青年时代起就在追求的“完全戏剧”——一种通向人本的、寻找最初的、原始的、融音乐、舞蹈、戏剧为一体的那种艺术,在这三部作品中得到体现,使他在“完全戏剧”(或称整体艺术)的创作上已走向成熟,形成了真正的奥尔夫风格。这里同样体现了奥尔夫在音乐教育中所体现的那种原本性的原则和理念。1948年到1949年完成《安蒂戈尼》,这部作品综合音乐、舞蹈、戏剧为一体,而在伴奏乐队的配器上采用4架钢琴、59种打击乐器与人声的大胆结合,以体现最古老的神话——太阳神与月亮神的结合,刚与柔、健与美的天然合一。这部作品奠定了他在世界上作为大师级的作曲家的声望。奥尔夫一生耕耘不息,创作了大量音乐作品和音乐戏剧,直到1973年78岁高龄时,还创作了他最后一部大作《世界末日之剧》。 奥尔夫从1948年开始为巴伐利亚电台编写“学校音乐教育”,连续播了五年,受到学校的热烈欢迎。1950—1954年出版了五卷本《学校音乐》(《Orff-Schulwerck》),被欧美各国相继翻译出版介绍到世界各地。这是奥尔夫音乐教育体系具有奠基性意义的大事。 1961年在奥地利萨尔斯堡“莫扎特音乐及造型艺术大学”成立了“奥尔夫学院”,建立起第一个奥尔夫教学法的研究和培训中心。 奥尔夫晚年一直居住在乡间亚梅湖(Armmersee)岸边的房子。他不管去哪里讲演或参加演出活动,都要回到湖边安静的家园,沉浸在大自然中,并重新获得精神与创作的活力。 1982年奥尔夫在慕尼黑家中去世,享年87岁。 奥尔夫音乐的优势: 奥尔夫的音乐教育原理,或曰理念是指原本性的音乐教育。 原本的音乐是指人们不是作为听众,而是作为演奏者参与其间,把动作、舞蹈、语言紧密结合在一起,是一种人们必需自己参与的音乐;原本的音乐是接近自然,源于生活,能为每个人学会 和体验的,非常适合于儿童的。 它形式简洁,它不用什么大型的形式,不用结构;是小型的序列形式、固定音型和小型的回旋曲形式。 奥尔夫原本性音乐教育的原理可以归纳为以下几点: 1、即兴性; 2、综合性; 3、参与性; 4、自然性; 5、民族性 6、大众性。 其中即兴是奥尔夫音乐教育体系最核心、最吸引人的构成部分。 奥尔夫音乐教育的可贵之处在于: 1、音乐教育不再是个别的,而是让每一个孩子都有了机会来感受,表现音乐的丰富性。 2、让孩子们摆脱了琴凳琴弦的束缚,也不再只是被动地聆听。没有枯燥乏味的技巧训练,即可让孩子进入表现音乐的阶段,使学习音乐不再那么“BORING”。 3、孩子不再是一直被动地学习固化的东西,而有了自己广泛的即兴创作的空间。 4、把孩子从单纯的个体化的练声,练琴带入了合作的天地,让他们早早地开始学习如何协作、服从、领导与被领导。 5、在置身于“玩”的过程中去感知音乐的内涵,去产生人与人之间的在情感上的沟通与联系,在“玩”中增强合作意识和在群体中的协调能力。 奥尔夫教学法特点: 1.节奏….奥尔夫认为儿童音乐才能的发展,应从其自然趋势出发。如四分音符为走步,八分音符是跑步的节奏等。他还认为音乐构成的第一要素是节奏,不是旋律。节奏可以脱离旋律单独存在。应当说奥尔夫强调节奏是音乐的生命,是音乐生命力的源泉。因此,奥尔夫强调从节奏入手进行音乐教育。并且同时要结合语言节奏,动作的节奏来训练和培养儿童的节奏感。因此在一开始上课时就要安排一些有节奏的语言朗诵练习。如: 小 老 鼠∣ 上 灯 台 ∣偷 油 吃∣ 下 不 来∣ 喵 喵 喵∣ ∣ 猫 来 了∣叽 里 咕 噜 叽 里 咕 噜∣ 滚 下 来‖ 就这么一个小儿歌,你可以把他变成各种节奏来朗诵,然后再结合一定动作 或舞蹈去加强节奏,使孩子在边朗诵边跳或边拍掌,跺脚等过程中。培养对 节奏的敏感.这种基本节奏练习,应在儿童学习的过程中,不断穿插着进行。 2、奥尔夫教学第二个重要特点就是打击乐器。在奥尔夫的教学中一般不用钢琴,小提琴等这种乐器,而采用精制的打击乐器。有固定音高能奏出旋律的,和无固定音高而起节奏作用的两类。如三角铁,木质音条琴,鼓等等。利用打击乐器有一些目的性.因为打击乐器最易奏出节奏,这迎合奥尔夫以节奏为第一的目的。其次打击乐器音色鲜明,富于幻想性,这很适合小孩子的好奇心,再者打击乐器容易掌握,避免演奏者的技术负担。尤其对于孩子可以使它们尽心的演奏。打击乐器的运用非常广泛,他可以排练已经编好的歌曲和器乐曲,在排练过程中,可让孩子们交换乐器,以便他们能够掌握各种打击乐器的使用。在打击乐器的运用中常与朗诵,表演,舞蹈相结合起来运用。 3、在奥尔夫教学法中即兴演奏也是他的一大特点。由于打击乐器的演奏技术简易,和声思维单纯,而且伴奏的各个声部均以固定的节奏型为基础,因此完全可以让孩子一开始就作自由即兴性演奏。这对培养孩子奏乐的灵活性,创造性以及合作能力都极其有益,即兴演奏可以让儿童直接参与到音乐活动中。充分发挥他们的想象力和创造力。这些正好符合奥尔夫要求孩子“动”、“注重培养艺术想象力和创造力”、要求孩子自己创造音乐,发展个性和创造性的精 奥尔夫音乐教育是当今世界最著名的音乐教育之一。 走出奥尔夫误区: 何为奥尔夫教学法? 据了解,奥尔夫音乐教学法的全称为“奥尔夫儿童音乐舞蹈基础教育”,它被放在莫扎特音乐学院第11系,是一种基础教育体系,具有很强的专业性。它可以概括为融音乐、美术、舞蹈、文学、戏剧等艺术形式于一体,注重培养幼儿感知、体验、想象力和创造力的独特教学方式。 “奥尔夫”立足于音乐但又远远超越音乐领域本身,并将教育扩展到语言、身体、自然等诸多领域中。从教育理念上,“奥尔夫”主张“寓教于乐,寓教于游戏”,还强调与本土文化的结合,并在世界50多个国家广泛地传播。 奥尔夫音乐教学起源于德国,其创始人是德国著名的作曲家、教育家卡尔·奥尔夫。它运用各种艺术表现形式进行教学,能使孩子的视野开阔,学习兴趣倍增。参与其中的孩子形成了一个缩小的微型社会,每个人可以同时扮演指挥、领唱、伴奏等不同角色,这些角色同时又是在不停地转换。孩子承担不同的分工,随着节奏转换不同的角色,在这过程中,培养了乐感,学会了不少音乐技能,同时将认知与训练编织在游戏中,让幼儿在愉快的氛围中感受音乐艺术的魅力。 不是为了游戏而游戏 据了解,奥尔夫音乐教学的内容以节奏为基础,从游戏入手、进行歌唱、律动、乐器合奏、即兴创作等。运用声音造型(歌唱、朗诵)、动作造型(游戏、律动、舞蹈、戏剧表演)、身体造型(身体器乐活动的声势活动)及奥尔夫乐器,来引导幼儿去体验、探索、发现和创造。音乐游戏能够充分调动孩子的积极性,而新鲜有趣的游戏不断吸引了孩子长久的注意力,将孩子带入一种自然学习的状态。 目前,很多早教机构已纷纷开设“奥尔夫音乐教学课”,但有相当一部分的授课教师对奥尔夫教学法的认识只停留在肤浅的表象认识。专家表示,目前很多授课教师只在奥尔夫教学培训班受过短期的培训,便开始所谓的“奥尔夫音乐教学”。其实,这是远远不够的。 奥尔夫音乐教学法作为一种基础教育体系,具有很强的专业性,并非短时间就能理解,更谈不上很好地结合本土实际情况融合至课堂对孩子进行教学。现在大部分教师,只学到局部和表象的知识,为游戏而游戏,将游戏搬入课堂,甚至纯粹从营造气氛出发,而不知如何根据孩子的实际情况、个性特征、兴趣爱好来设计课堂教学,是不能真正将奥尔夫音乐教学法落到实处。 奥尔夫和中国 奥尔夫从未到过中国,而 1962 年曾去过一次日本。不仅如此,他青少年时还曾有过一段日本热的时期,根据日本 NO 剧《乡村学校》(Terakoy a)撰写过一部音乐戏剧的剧本和音乐,想以此创作一部欧洲式的音乐戏剧,可是后来终于觉悟,晚年在他编撰的收献记录》(Dokumentation,1975 — 1983)中这样写道:(幸亏放弃了这一创作),“否则人们必然会对我说:‘年轻的欧洲朋友和日本热患者:把你的手从你根本什么也不能懂的东西那里缩回来吧,狂热代替不了学识”'。① 奥尔夫创作生涯中的这一插曲和这一番话,可以从某一个角度说明:西方和东方的文化之间,毕竟存在着不容忽视的差距和隔阂,正是这使他意识到他对日本的文化尽管向往,却“根本什么也不能懂”;这是过分的谦虚?这是强烈的自我意识?——不,这更由于他有一种深刻的直觉和敏锐的洞察力,能认识到东西方文化质的差异。奥尔夫尽管是一个欧洲人,但他决没有受欧洲的局限,而心怀着全球;他的理念和精神是从全人类的共性出发的,从而他的创作和音乐尽管扎根于西方,但却能诉诸于全人类。他在精神上和音乐上,都与东方以及世界其他地区存在着一定的联系,他认为:这种联系正是活力和希望的所在。 奥尔夫音乐教育体系始终是一个灵活不过的、要求不断创造——再创造,并具有即兴性的体系,因而可以说:奥尔夫音乐教学完全是因人而异的;每一位好的奥尔夫音乐教师的教学,实际上都仅仅是他令人对奥尔夫体系的一种诠释和实施,而决不能说是该体系最初威的、最正宗的代表。 (三)求实与返璞归真 为什么我们中国的音乐教育工作者,要来从事和师事奥尔夫?首先,我们有必要尽可能深地来认识,奥尔夫的音乐和音乐教育最本质的东西是什么?那到底又和我们有什么关系?只有在这方面有所认识,才能明确我们为什么要学、以及怎样来学奥尔夫。此外,我们还有必要全面地认识,奥尔夫音乐教育体系到底和我们有什么“灵犀一点通”的地方,同时也有什么和我们毕竟存在着差异。 是否可以用一句中国成语,来概括奥尔夫的音乐和音乐教育的本质?那就是“返璞归真”。奥尔夫在 20 世纪的音乐家和音乐教育家当中,可以说是一个极少数的例外,也是一个典型的范例:试问有哪一位音乐家和音乐教育家,如此地强调要追溯并发挥人的本性,要在音乐和音乐教育中追求原本性?试问有哪一位 20 世纪的作曲家,这样绝少应用升降的变音?可是,又有哪一位 20 世纪的作曲家,能像他那样以最淳朴不过的思想、语言(包括音乐语言)和音乐教材,建立起一个在世界范围内不胜而走的音乐教育体系?能像他那样写出一部《卡尔米那·布拉拿》(C。na Burana,1937),至今如此广泛地在全世界流行,并受到无数人的热烈喜爱?可以说: 20 世纪整个德国在音乐教育方面对世界影响和贡献最大的,应首推奥尔夫音乐教育体系;在整个德国纳粹反动统治的历史时期(1933 一 1945)所写下的音乐作品中,惟有这部不朽的乐曲,至今为全世界无数人喜闻乐见。这些,首先是由于他不论在音乐教育思想和方法上,以及在音乐作品的内容、风格或音乐语言上,都切实地做到了返噗归真,将人类最本质、最原本和最有生命力的东西,融化在音乐教育和音乐作品之中,去诉诸于人的本性、诉诸于全人类;同样,他的音乐教育体系及其精神,不论对无邪的儿童抑或成熟的成人,都能起到滋养、振奋、建设和教化的作用。 理查·施特劳斯曾在给他的信中写道:“你属于少数人,懂得什么如今已行不通了。”这句话说得很深刻。事实正是如此:奥尔夫青少年时期和他的同时代音乐家一样,也曾醉心于当时流行的各种风格和思潮,包括德彪西、勋贝格、印象主义、表现主义和异国情调等;也探索过用那些音乐语言去写作。可是,在这些插曲之后,他终于能找到了自我,从而通过不断的探索,形成了独特的“奥尔夫风格”。“奥尔夫风格”的最大特 征和最杰出的优点,就在于能以再简单不过的素材和手法,创造出深刻动人、雅俗共赏的音乐。我想:这里可以再恰当不过湖【用鲁迅先生的诗句来表叙:“扫除腻粉存风骨,脱却红衣学淡妆”(《咏莲蓬》)。 即使从奥尔夫的为人、生平事迹以及他的爱好等,也可以看出:求实是他的人生哲学,原本和自然是他最高的追求。他曾明确地说过:“……对原本性的、天然的回归,那简直是我本性中固有的,这不是……一种推测,这对我说来是理所当然的”。 (奥尔夫生平)他出身自旧式的、充满音乐气氛的军官家庭,生活在慕尼黑这样的大城市,却和学校里的小同学们缺乏共同语言,而最爱去远郊安默湖(Ammerse e)畔的乡下,并和乡下的孩子们玩得亲密无间。家中的女厨师,一位来自乡下的老太太,不仅教会了他巴伐利亚最土的方言,而且讲各种民间故事,使他听得发迷。所以,他会在自己的创作中如此广泛而深刻地采用各种民间的故事、语言和风俗习惯;他后来会在安默湖畔购地盖屋以终老,度过他的后半辈子。他的这所故居,舒适而非常简朴。生活和为人上的求实以及返回自然,和他音乐上的返噗归真是完全一致的。曾经有评论家把他的音乐贴上“原始主义”的标签。如果不从贬义而从襄义来理解,这个名词也许是恰当的。求实的精神,使他一再强调艺术和音乐教育都不在于是否新,相反地,他最反感的就是当今音乐教育界的那种“进步狂”,他在一次采访中高呼:要“从一种错误的进步狂中解放出来”!他公然宣称:他的音乐教育体系不是什么“新”的东西,而像传递火把那样,把最根本的、原本的东西从古代传递到现代来。他毫不留情地指出:“在一切工作中,但凡赶时髦做的和所能做的,都必然会衰落。一切摩登的东西都通过时间,必然无条件地变成不摩登,而原本性的东西,却会由于它的没有时间性,在全世界上一切人中间得到理解”。③ 正是他的这种素质和风格,使他的音乐和音乐语言,包括他的音乐教材,会如此强烈而深刻地引起我们中国人的共鸣。听他的音乐,不论是《卡尔米那·布拉拿》,还是《快跳起来》等儿童歌曲和教材,总能使人感到一种自然、天真、直率、亲切而无比生动和乐观的激情,在鼓舞着你,使你请不自禁地,会闻乐而动地手舞足蹈起来,并感到这个人世尽管存在着各种丑恶,而其本质、其理想是美好的,正如“聪明的女人”在他自撰词曲的那部同名的音乐戏剧中,最后所唱道的: “不论是农夫、小孩。 皇帝、国王,在睡觉在梦乡,大家都一样。” (四)本源一本性一本能 和这紧密联系、并行不停的,是他的音乐教育思想、理念和精神。这,我们是否能用“三本”来集中地概括呢?即:本源一本性一本能。奥尔夫音乐教育最本质、最深刻的要素,就在于对本源的回归。1923 年秋,他前往柏林求教于杰出的民族音乐学家扎赫士(Curt Sachs, 1881 ~ 1959),后者听完了他的自白后,曾一语破的地说:“通过你的计划,你遵循着全然独特的意图,并且想在这条路上走向源泉,这源泉通常一直被人忽视或视流不见。你是想‘走向母亲'去,那里是一切开端的所在地”。① 也许我们可以引用烁记》,这部约两千年前撰写下的中国古代乐论中最后的一段话,来代奥尔夫说明他的音乐教育思想的根本依据和出发点: “故歌之为言也,长言之也。说之故言之,言之不足故长言之,长言之不足放嗟叹之,嗟叹之不足,故不知手之舞之。足之蹈之也。” 这里,一开始就点明:音乐(“歌”)是一种语名一种外华了的语言(“长吉”),唱歌与说话何异?而且后面更进一步说明:只停留在这种升华了的语言还不够,要更进一步地“嗟叹”和“手舞足蹈”,这就是说:要结合情感、结合动作。中。国古语中有一句话:“长歌当哭”,就是说:一般的歌如果进一步提升为“长歌”,就能动情;这样的音乐就能像“哭”一般‘地自我抒发。 奥尔夫非常强调对古希腊 Musicae 的回归,即:音乐-语言一动作这三者的结合和统一;这不论在他的音乐创作,抑或在他的音乐教育理念中,都被作为一个最基本的核心和原则提出。《乐记》中的这段话,说的不正是这同一回事吗?并且更把“乐”的起源和本义,以及语言、音乐和舞蹈这三者的内在联系,都揭示了出来。古希腊的思想文化,本来正体现着东、西方思想、文化的交遇。Msicae 的思想精神和《乐记》的这一番话会不谋而合,是发人深省的。古人深刻地认识并强调这一本义和原理,而今人于此反而往往麻木不仁。尤其是近几百年来的音乐教育,不论是专业的或是业余的,往往违背了这一基本原理,陷入了唯音乐、纯音乐和唯技艺的泥坑,经常流于僵化、手艺化和技艺化,那是忘却了人的本性、艺术的本质以及音乐的本源。1932 年,奥尔夫在他的论文中写道:“音乐始于人自身,教学也应当如此。不是在乐器上、不是用第一个手指或第一个把位,或是用这个、那个和弦。首要的是自己的宁静、倾听自己、对音乐的准备就绪、倾听自己的心跳和呼吸――这些是有根本性意义的。应当从导向音乐开始,如此普遍、如此包罗万象、如此从内在出发,需要这样地教学。对孩子和成年人都一样……人们不应当走向音乐,而是音乐应当自己进入”。①奥尔夫还说过:‘管舒柏特那样一种无意识地奏乐,今天已不再有了……很遗憾”。②从这些话可以看出奥尔夫所惯有的、主张的奏乐,是怎样一种发自内心的、出自本性和本能的自然行为,正如我国能歌善舞的少数民族所进行的那样。 这些话,说明了他对音乐本源以及音乐教育原理,最根本的理解和最深刻的要求。他在临终前三年的一次采访谈话中说:“你们去看看我们的那些教学计划。那里可以看到‘教学大纲'以及一些了不起的东西,可是忘却了孩子和音乐。这就像在日本也没有了音乐一样:如果成百个孩子同时在拉提琴,而每个人的呼吸是不同的。如果我不能为我而呼吸,我就只能机械地做动作,而音乐必须要呼吸。”④由此可见他对音乐四 理解和要求,是首先要从音乐本身出发、从音乐的生命――最自然的呼吸出发;只有这样,才能正确地对待音乐和音乐学习。 按这样的观点来看:音乐的本质就是人类本性的体现和人类本能的证实,因而从事音乐和音乐教育,都首先应当对人刻本性和音乐本源的回归,即:把内在的、自然的表现意欲,作为从事音乐的原动力,从而还音乐的本来面目——作为生活的必需、作为人自身的表现意欲的自然体现,而首先不在于人为的、理性的作为。理性和智力等当然也必不可少,但那些不足音乐的母亲,而只是助产婆;不是音乐的原动力,而只是辅助力。这样,就能够在具体的音乐教学中做到:从音乐的本源出发、诉诸于人的本性、并发挥人的本能。这样,音乐教育就不会局限于从理性、智力或技艺出发,不会流于机械化和僵化,从而成为纯技艺或知识的传授以及纯技术的操练,而成为一种从人自身的意欲出发、并归结到人自身的体验去的生活行为。同样,也会使师生之间的教与学,成为人际之间的一种认识的交换和精神的交流;这样就会收到自然而然、水到渠成的教育结果。这样,就会像奥尔夫所一再强调的:音乐(尤其对于孩子们说来)应当“是自然而然的事”。⑤所以,他和柯达依同样深刻地认识到:没有没有乐感的孩子。他们都曾深刻地指出:音乐教育如果不懂得去发掘并助长这一天性和本能,就是无知和无能的体现。 对人的以及音乐的本源-本性-本能的回归,和对音乐-语言-动作这三者的统一和结合,构成了奥尔夫音乐教育体系的核心和灵魂。 与此密切联系在一起地,是对形象化和戏剧化的强调。不论在思维上或创作上,奥尔夫都十分重视形象化。他的语言和音乐语言也往往充满形象性。他不擅长于写“绝对音乐”。晚年时,有人劝他写一部交响乐,他的回答是:他的领域是舞台音乐作品,而不愿去写交响乐(尽管他在早期也曾写过交响音乐)。作为戏剧音乐家,他具有高度的戏剧家秉性和才能;这体现于他自撰剧本的音乐戏剧作品的词曲两方面,也表现在他说话时的神态上,尤其可以从他朗诵自己的剧本片段的录像中,看到他那种全身心投入,通过戏剧性的声调和丰富的面部表情与手势,以充分表现的动人神情。他说过:“对我一切的起因,当然首先是演戏。演戏是我生而仅有的事,从一切之中,我都会弄出戏来演”。⑥自幼,他手里拿着球,就用球来演戏;看到和想到什么,就用戏剧来表现。后来,他在慕尼黑室内剧院任指挥,更和古典的剧目以及当时兴起的各种戏剧新潮(包括布赖希特的戏剧及其理论),结下不解之缘。这些对于他此后终生一直以音乐舞台作品为主,有着密切联系。他的音乐创作表象,往往也总是有场景的。1928 年在柏林首次演出了布赖希特的《三分钱的歌剧》后不久,他就在慕尼黑室内剧院,以场景性的形式演出了伪托巴赫所作的《路加受难曲》,而被人戏称为“三分钱的受难曲”。他对《卡尔米那·布拉拿》的演出设想,原来也是有场景和表演的,如 1937 年的首演。对形象化的追求,同样体现在他的音乐教育理念上:音乐教育应当首先不是通过诉诸于理性和逻辑思维,而是感性和形象思维去进行。所以,他写的音乐教材,不仅需要富于表现地唱-奏,而且往往最好由学生和孩子们去加以表演;这表演,不仅限于动作或舞蹈,而最好更加上戏剧性的、哪怕是极简单的表演。一一从这些方面看来,也可以更明确地看出:他内心的艺术表象和表现意欲是何等地鲜明而强烈;他对音乐的表象,仅系各种艺术综合在一起的整体艺术中的一个有机的组成部分。这和他的音乐教育思想、理念和要求上,是平行的、如出一辙的。 正是以上所说的这些,使我们中国人能对奥尔夫的音乐,包括他的音乐教材,感到一种亲切和共鸣,能去欣赏并加以应用;听或唱一奏他的音乐,会感到有一种清新而强烈的力量,在驱使着人们去按它的节奏呼吸、闻乐而动,并从而自得其乐。他的音乐在许多方面,和我们中国人的听觉习惯和审美特点上有亲和性,例如我 80 年代初在瑞士苏里希听他的音乐戏剧《安提戈涅》(Antigonae)演出,那些强烈的打击乐,许多人可能会感到难以接受,而它不论在节奏或音响效果上,却能使我产生共鸣,感到就像是在听京戏时被那些锣鼓所吸引一样,从而不感到陌生。奇怪的是:单独地听唱片,却不可能有那样强烈的感受,而必须结合着整个戏剧的表演、结合着形象的感受,才会产生这样的感染力。同样,通过这些年在中国采用奥尔夫体系进行音乐教学的经验和体会,我感到:遵循他的理念去进行音乐教育,就不再会是本末倒置,而是探本穷源; 不再会是生吞活剥,而是自发、自觉;不再是手工业式地操作,而是创造性地教与学。这样的结果会对我们音乐教育作根本性的改革,起到重大的作用。 这一切,归根结底是由于他的思想、精神和风格,和我们中国人有一种亲和性。这种亲和性体现着东西方精神的沟通,也是文化际的交际。如果说:奥尔夫的音乐和他的音乐教育体系,体现着德意志和古希腊精神的交汇,那末,它也能和中华民族的精神和文化传统交溶在一起,而不会成为一个外来的、陌生的异体。这正是为什么我们会喜爱奥尔夫的音乐,以及要引进和学习奥尔夫音乐教育体系的前提和根由。 儿童与成人的“接轨” 奥尔夫音乐教育体系尤其适合于儿童,这是事实,但并不是事实的全部。他的五卷集《学校音乐教材》是有《为儿童的音乐》这样一个别名。但是,应当看到:《学校音乐教材》中有许多乐曲,完全可以、甚至更适合于成年人使用;更重要的是:全书的教育理念同样适用于成人。我们必须了解:奥尔夫本人是首先针对成年人,而后来才重点针对儿童写教材的。 二、三十年代,奥尔夫在军特学校担任音乐部主任并教学,对象就完全是成年人;他对音乐教育的改革,是首先从成年人入手的。这时他写的一些教材,如当时构思的、总称为《学校音乐教材》的一整套教材中,所出版的第一部教材《旋律一节奏练习》(1931),就是当时他教那些成年学生的教材;那具有高度的音乐性、甚至专业性,可惜我们至今未能介绍并加以应用。 奥尔夫教育体系以及他的理念是一个完整的整体,不能把儿童音乐教育和成人音乐教育,机械地分裂为彼此对立的两个部分。这两个部分的基本原理和要求应当是一致的,只不过由于对象年龄、性格、接受能力以及其他特点的不同,而有所区别而且。奥尔夫在 M 次大战后(1948 年起),重新从事音乐教 育以后,把重点对象移到儿童上来,就没有再去从事成年人音乐教育的课题,这不等于说:他的体系就此割裂开来,成为前后不一样的了;相反地,应当看到:他的体系是贯彻始终、首尾一致的。他在“军特舞蹈一体操一音乐学校”教成年人,更突出音乐以及音乐与动作的结合,是理所当然的,其结果正如 1934 年该校舞蹈队演出后,报刊的评论文章所写道的:“这里,首次地、深深地触及到了和音乐的关系。军特舞蹈队重新地再现了音乐与舞蹈的统一,正如在原始民族和古代文化那里所存在过的那样” ①“……由于同时进行音乐与舞蹈的培养,贯彻了这样一个优秀的教学原则,从而以几乎理想的方式达到了音乐与舞蹈的全然同一”。②从这些评论中可以看出:奥尔夫在军特学校的音乐教学,是何等地重视音乐本身的训练,以及音乐与动作的高度结合,从而到达了怎样一种质量和水平,那和一切“儿戏”或“业余式”的作为,是完全不可同日而语的!世纪的教育观,已把教育延伸到人的毕生,音乐教育一也不例外。2000 年,美国举行的“奥尔夫音乐教育”年会和国际学术会议,就总称为“毕生长久的音乐教育”。我们进行音乐教育改革,也必须把整个音乐教育由儿童起、经过成年人、直至老年人,作为一个连贯的整体。奥尔夫音乐教育本身就曾包括过儿童和成年这两个部分,我们不应当把它割裂开来,使它只适合于儿童;这一点往往被许多人误解或忽视。我们如今从事成人的奥尔夫音乐教育,不是一项新的任务,而是继续他 20 年代曾经做过的事。成年人的音乐教育,是我们整国民音乐教育中的一个重要方面,其重要性和难度,不亚于儿童音乐教育;它一部分(如中学生和大学生)仍属于、而另一部分已超越了学校音乐教育的范畴,而属于国民音乐教育以及社会音乐教育;这同样急需我们去从事和改革。 在我们中国,对于把奥尔夫音乐教育用于儿童,已取得一定的经验,但对于怎样用于成年人,仍缺乏认识与实践。因此,重点参考他在军特学校时期做过的一切,如今对我们很有必要,可惜这方面的介绍和研究在中国还没有开始;这有待于我们从今起步去做、去实验和实践。为此,我们也需要有大量这方面的中国教材。 希腊的察哈来那基士(K . Zacharenakis)教授说得好:“奥尔夫《学校音乐教材》以及奥尔夫乐器,使教师仿佛有了一间‘音乐实验室'的可能,这使得完成教育学的任务大为简易了”。③这段话深刻地揭示了使用奥尔夫教材和乐器的奥秘和目的:那绝不是一般人所以为或想象的:仅仅用来唱一奏或敲敲打打、伴奏一些歌曲;不!那是供人们去进行各种音乐的实验:怎样通过实践,学会进行音乐思维、学会音乐的安排和创造;怎样进行伴奏、重奏、合奏等各种方式和各种形式的奏乐;怎样通过这样的实践和实验,使学生们对音乐的结构、音乐的语言和规律,都有亲身的、深刻的体验和具体的操作经验。我们为什么不能把这问“音乐实验室”,更扩大、更提高地,也提供给成年人使用呢?通过在奥尔夫乐器上进行创造性的奏乐,将来再在小提琴、钢琴或二胡、琵琶上,进行重奏、合奏,以及甚至参加乐队演奏,就不再是难事,而是顺理成章、水到渠成的事了!按照奥尔夫教学的精神,通过大量有高度要求和艺术水平的即兴演奏和重奏、合奏,所学习到的音乐,就不再会是机械的、僵化的、枯燥的,而是活生生的、有表现力、幻想性和创造性的音乐,这对于培养和促进学生的整个素质,会起到莫大的积极作用。这样,不仅儿童与成年人“接轨”,即使是业余与专业“接轨”,也大有可能。所以,奥尔夫乐器和奥尔夫音乐教学本身,不仅是一个前阶,而本身就是一个领域和园地,可以在那上面播种、收获,可以进行真正有艺术性的奏乐,因为那些乐器能发出高质量的音响、奏出动人的音乐。我们还可以把中国传统的和民间的乐器加进去,使它们洛合成一个和谐的整体,以进行有高度创造性、艺术性和民族性地奏乐。我们还可以通过改革和试制,制造出小编钟。'小玉馨和小钢碗等一系列中国的“奥尔夫乐器”,并把它们具有创造性和艺术性地,应用进我们的教学和伴奏、重奏、合奏中去,这将是我们在世界范围内对发展奥尔夫教学的一项重大贡献。这方面的前途广阔,至今还是一块“处女地”,有待于开发。 “和美”音乐社团简介 我校“和美”音乐社团创建于2016年9月,分为三个兴趣小组:“和之韵”舞蹈队、“梦之声”合唱团、“鼓之韵”手拍鼓。音乐社团是一个交流音乐的社团,是学生提高音乐素养的团体,是音乐爱好者展现自己的平台。音乐社致力于提供一个音乐爱好者交流的平台,兼顾学校的艺术表演任务,逐步开展歌唱交流比赛等其他活动。 一、指导思想: 为丰富校园文化生活,发展学生兴趣与特长,促进学生的全面发展,以社团活动为平台,以“丰富生活、展示个性培养兴趣、拓宽知识、开发潜能”为宗旨,成立相应的学生社团活动小组,努力使学校成为学生余款而有趣的生活学习乐园。 二、活动目的: 1、激发学生兴趣爱好,弘扬学生的个性,让学生在活动中学习知识,增长能力。 2、凸显学校的办学特色,塑造学校社团活动的品牌。 3、积极参加各级演出和比赛,为校争光。 4、通过多种方式吸收更多学生加入到组织中来,让每一个学生都有成长的舞台。 三、活动时间: 每周二、三、四各上一节课,课时不少于60分钟。 四、社团宗旨: “领悟音乐,感动生活”!本社团以音乐表演和艺术交流为形式,以提高学生音乐表现力和鉴赏力以及探索音乐艺术真谛为最终目的。努力使同学们了解音乐、热爱音乐进而热爱生活。在本社中,从事音乐专业学习的同学将主动并无偿将自己所学习的音乐知识奉献给社员,并教导他们如何领悟音乐的真谛,感受生活的快乐。> finalClusters = KMeansClusterer.clusterPoints(pointVectors, clusters, measure, maxIter, distanceThreshold);
> clustersM = DisplayClustering.loadClusters(output);
> finalClusters = FuzzyKMeansClusterer.clusterPoints(points, clusters, measure, distanceThreshold, maxIter, fuzzificationFactor);// 打印聚类结果
第三篇:奥尔夫音乐简介
第四篇:奥尔夫音乐简介
第五篇:音乐社团简介