关于【街舞的常见种类】,街舞常见种类有哪些,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
内容导航:1、KMeans算法的MapReduce实现2、街舞的常见种类1、KMeans算法的MapReduce实现
在本文中我使用KMeans算法实现搜狗搜索数据集上的MapReduce程序。K-Means算法输入聚类个数k,以及源数据,并将源数据分为k类输出。在分类后的数据中,同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。众所周知,KMeans算法在初始中心点选取及聚类个数方面存在一定不足,在本文中我将在实现算法之余对于这两点尝试做出一些改进。此外,想要顺利的实现算法清晰的思路必不可少,在程序实现方面,我将按照制定距离衡量标准、生成初始聚类中心、迭代聚类中心、数据分类、衡量分类效果的步骤进行,最后还将对使用不同个数聚类中心,程序所展示出的效果进行分析。
一、制定距离衡量标准
搜狗数据集每行一条记录,每条记录由六个属性构成:时间、用户ID、搜索关键字、Order、Rank和URL。因为数据集没有分类标志,所以不能使用有监督算法对其进行分类,只能使用无监督算法。在六个属性中,用户ID是一串浏览器生成的字符,并不能衡量两个ID之间的距离,所以这里我们不将其考虑到算法中;URL的命名规则很随意,也很难衡量两个URL之间的距离,则算法中也不考虑URL属性。除此之外,我们将在算法中,依据时间、搜索关键字、Order、Rank对数据之间的距离进行衡量,并分类。
时间、搜索关键字、Order、Rank这四个属性拥有不同的特征,其中时间、Order、Rank是整数,可以执行数字运算;而搜索关键字是字符串无法执行数字运算,从而这两类属性需要使用不同的方法衡量距离。这里我们使用曼哈顿距离衡量时间、Order、Rank之间的距离,使用莱文斯坦距离衡量搜索关键字之间的距离:
1.1曼哈顿距离衡量时间、Order、Rank之间的距离。
在数据集中,时间是连续变化的其范围是:2011年12月30日至2011年12月31日,数据格式为“20111230000005”,其中第7,8位数字表示小时,为了不使计算过于麻烦,我们以小时(即时间属性字符串的7和8位数字)作为该条数据时间属性的值,每天有24个小时,这里我们对其进行归一化,设at为记录A的时间属性值,bt为记录B的时间属性值,则记录A与记录B之间时间属性的距离如公式(1)所示:
Dt=abs(at-bt)/24 公式(1)
Order是该条记录在网页展示时的排序,这是较为重要的一个属性。在数据集中Order值的范围在1~40之间,设ao为记录A的Order数值,bo为记录B的Order数值,则记录A与记录B之间的Order属性的的距离如公式(2)所示:
Do=abs(ao-bo) 公式(2)
Rank记录用户点击的次序,也是一个很重要的属性。这里设ar为记录A的Rank值,br为记录B的Rank至,则记录A与记录B之间的Order属性的距离如公式(3)所示:
Dr=abs(ar-br) 公式(3)
1.2莱文斯坦距离衡量关键字之间的距离。
本数据集中的记录中的搜索关键字属性是用户在使用搜狗浏览器输入的搜索内容,因其是文本,不能使用简单的算术运算衡量其距离,所以这里选择编辑距离——莱文斯坦距离衡量两个关键字之间的距离。在信息论和计算机科学中,莱文斯坦距离是一种两个字符串序列的距离度量。形式化地说,两个单词的莱文斯坦距离是一个单词变成另一个单词要求的最少单个字符编辑数量(如:删除、插入和替换)。莱文斯坦距离也被称做编辑距离,尽管它只是编辑距离的一种,与成对字符串比对紧密相关。其定义为,两个字符串a,b的莱文斯坦距离记为
,其计算公式为公式(11):
公式(11)
这里,
Â
åÂ
Â
åå«è¡¨ç¤ºå符串aåbçé¿åº¦ï¼Â
Â
æ¯å½Â
Â
æ¶å¼ä¸º1ï¼å¦åå¼ä¸º0ç示æ§å½æ°ãè¿æ ·ï¼
是 a的前 i个字符和b的前 j 个字符之间的距离。
这里我们采用向量存储的方式实现莱文斯坦距离的计算,使用函levenshteinTwoRows(String string1, int s_len, String string2, int t_len) 来实现,该函数的执行过程如流程图1所示,具体实现代码见代码(1)。设ak为记录A的关键字,设bk为记录B的关键字,则记录A与记录B之间的Keyword属性的距离如公式(4)所示:
Dk=levenshteinTwoRows(ak,len(ak),bk,len(bk)) 公式(4)
1.3三种距离的计算。
综上所述,数据集中任意两条记录:记录A与记录B之间的距离可以使用公式(5)来计算。结合程序需求,我们需要计算三种情况的距离:1两个记å½ä¹é´çè·ç¦»ï¼2ä¸æ¡è®°å½ä¸ç±»ç°ä¸å¿ç¹éåçè·ç¦»ï¼3新类簇中心点集合与旧类簇中心点之间的距离。
D=Dt+Do+Dr+Dk 公式(5)
1.3.1两个记录之间的距离。
该功能使用函数caculateDistance0(List<Object> A,List<Object> B)实现,其实现逻辑为:程序使用公式(5)计算两个参数的距离,并返回该距离。函数的实现代码见附录Help类,函数的测试函数为caculateDistance0Test(),代码内容见附录HelpTest类。
1.3.2一条记录与类簇中心点集合的距离。
该功能使用函数caculateDistance1(List<Object> A,List< List<Object>> B)实现,其实现逻辑为:程序依次读取B中的元素,并使用公式(5)计算该元素与A的距离,记录每次的距离,最终返回最小距离所对应的元素。函数的实现代码见附录Help类,函数的测试函数为caculateDistance1Test(),代码内容见附录HelpTest类。
1.3.3新类簇中心点集合与旧类簇中心点之间的距离。
该功能使用函数caculateDistance2(List< List<Object>> A,List< List<Object>> B),其实现逻辑为:程序依次读取A的第K个元素与B的第K个元素(其中K∈(0,len(A))),并使用公式(5)计算距离,将每次得到的距离累加得到D,返回D/len(A)。
二、设计定制的Writeable集合与实现功能函数
2.1定制的Writable集合:dataCell类
Hadoop有一套非常有用的Writable实现可以满足大部分需求,但是在本文的情况下,我们需要设计构造一个新的实现,从而完全控制二进制的表示和排序顺序,这将有助于后续的MapReduce算法实现。
我们使用类dataCell实现对于一条记录的存储与表示。每条记录有六个字段,则dataCell需为这六个字段创建对应的属性,分别是: String time;String uid;String keyword;int rank;int order;String url。此外,我们为其这些属性提供getter和setter方法。为了让dataCell类能够用于MapReduce过程的数据传输中,我们需要让dataCell类可序列化、可比较大小,这里我们通过让类dataCell实现接口WritableComparable<dataCell>实现这些功能。dataCell的代码实现见附录dataCell类。
2.1.1构造函数:dataCell()、dataCell(String time, String uid, String keyword, int rank, int order, String url)。
在dataCell类中我们提供两个构造函数,其中无参构造函数用于反序列化时的反射;拥有六个参数的构造函数用于实例化一个dataCell对象,函数体内六个形参依次对类的六个属性赋值。
2.1.2序列化与反序列化:write(DataOutput out)、readFields(DataInput in)。
本类中序列化与反序列化的功能通过实现函数write与readFields实现。write函数实现序列化,本函数将六个属性依次写入输出流out,这里要注意的是写出String类型的属性时需要使用写出UTF的形式。readFields函数实现反序列化,该函数对应于write写出属性的格式与顺序将属性从输入流in中读取出来。
2.1.3比较大小:compareTo(dataCell o)
MapReduce的suffer过程中需要将输出的键值对进行排序,所以dataCell有必要实现比较大小的功能。这里我们将参数列表传入的参数o与类属性通过上文所提到函数caculateDistance0进行比较(注:这里不取绝对值),若结果大于0,返回1;结果小于0,返回-1。
2.2功能函数。
为了让MapReduce程序结构更清晰,让程序的可用性更高,这里我们将一些复杂的逻辑函提取出来放到Help类中,具体实现代码见附录Help类,对应测试代码见附录HelpTest类。
2.2.1从一组元素中计算一个类簇中心:caculateCenter(List<List<Object>> A)
本函数适用于迭代类簇的Reduce程序中。函数接收一组记录,首先遍历记录计算出这组记录的平均值,然后再次遍历记录从记录中找到与平均值距离最近的那条记录,作为新的类簇中心返回。这里要注意的是:不能直接返回这组记录的平均值作为新的类簇中心,否则会造成类簇中心集合元素缺失的问题。
2.2.2从文件中获取所有类簇中心集合:getCenters(String inputpath)
该函数的主要逻辑为从参数列表中获的类簇中心集合的路径,然后通过HDFS的API接口逐行读取类簇中心文件,并将每行数据封装成为一个List<Object>,最后返回类簇中心列表List< List<Object>>。
2.2.3从Hdfs获取程序迭代类簇中心结果及分类结果到本地:getCenterResult( String localPath)、getClassfiyResult( String localPath)
MapReduce程序执行完毕后会在输出目录下产生运行结果,getCenterResult与getClassfiyResult分别将类簇中心结果与分类结果拷贝到本地。这两个函数逻辑大致相同,使用HDFS的API接口从集群上取得对应的文件,然后将该文件放入参数localPath路径中。
2.2.4使用新类簇中心集合替换旧类簇中心集合:replaceOldCenter(String oldpath, String newpath)
由于HDFS的API中并没有提供集群中移动文件的方法,在这里我们通过首先将新类簇中心文件下载到本地文件,然后再旧类簇中心文件删除,最后再将本地文件上传到旧类簇中心文件中的方法实现该功能。参数oldpath为旧类簇中心文件的路径,newpath的新类簇中心文件的路径,该函数由isFinished函数调用。
2.2.5判断新旧两组类簇中心的距离是否已经达到迭代停止条件:isFinished(String oldpath, String newpath, int max)
该函数首先使用函数getCenters()分别从参数oldpath和参数newpath所对应的路径中获取旧类簇中心集合与新类簇中心集合,然后使用函数caculateDistance2()计算两组类簇的距离,如果距离小于max,则满足停止迭代条件,返回false;若距离大于max,则不满足迭代条件,使用函数replaceOldCenter将旧类簇中心文件替换为新类簇中心文件,返回true。使用流程图表示如图1所示
三、生成初始类簇中心点
初始聚类中心的选择对于KMeans算法来说十分重要,初始类簇中心的好坏直接影响到聚类的效果。这里我使用“选择批次距离尽可能远的K个点”的方法,具体操作步骤为,首先随机选择一个点作为作为初始类簇中心点,然后选择距离该店最远的那个点作为第二个初始聚类中心点,然后再选择距离前两个点的最近距离最大的点作为第三个初始类簇的中心点,以此类推,直至选择出K个初始类簇中心点。
基于以上思想,在程序中实现该算法时,可以按照图1中流程执行。该算法使用函数ProdeceCenter(String inputpath,int k,int initRank,int initOrder)实现,其中参数inputpath为源数据的路径,k为要生成的初始类簇集合元素的个数,initRank为随机生成的初始类簇中心。函数的实现代码见附录Help类。
四、第一次MapReduce:迭代聚类中心点
在KMean算法中,迭代聚类中心是使用初始类簇作为集合做初始分类,然后再每个分类中寻找中心点作为新的类簇中心点,如此迭代,直到迭代次数足够多或者新旧两组类簇的类簇距离足够小。下面,将按照MapReduce设计、Mapper实现、Reducer实现、JobDriver实现三部分进行阐述。
4.1MapReduce设计。
该部分的MapReduce读取源数据,读取初始类簇集合,产生聚类中心集合。Map部分逐行读入搜狗搜索数据,并找到类簇集合中距离该行数据最近的类簇,然后将最近的类簇的序号作为这一行数据的标签,最终将标签作为Key,改行数据作为Value作为数据写出;Reduce部分负责接收Map产生的数据,并在标签相同的数据中找到中心点,将中心点作为新的类簇输出;JobDriver部分负责一些配置工作,并负责计算新旧两组类簇集合的距离、统计迭代的次数,其中类簇集合的距离与迭代的次数均可以控制整个MapReduce过程的停止。其中,Map部分与Reduce部分的输入输出格式如表1所示。
表1 Map与Reduce的输入输出格式
输入
输出
Map
(字节偏移量,一行数据内容)
(类簇中心标志,一行数据内容)
Reduce
(类簇中心标志,多行数据内容)
(NULLWriteable,新的类簇中心)
4.2 Mapper实现。
本文中我们使用类KmeansMapperForCenter实现迭代聚类中心的Mapper,该类的实现代码见附录KmeansMapperForCenter类。该类继承Mapper<LongWritable,Text,IntWritable,Text>类,并实现了Mapper类的抽象方法map。在map函数中实现了Mapper部分的主要逻辑,其流程如图1所示。
4.3 Reducer实现。
本文中我们使用类KMeansReducerForCenter实现迭代聚类中心的Reducer,该类的实现代码见附录KMeansReducerForCenter类。该类继承Reducer<IntWritable, Text, NullWritable, Text>类,并实现了Reducer类的抽象方法reduce。在reduce函数中实现了Reducer部分的主要逻辑,其流程如图2所示。
图2 reduce函数流程图
4.4 JobDriver实现。
JobDriver部分驱动MapReduce的执行,这里我们在类KMeansDriver中的getCenter()函数中实现该功能。getCenter()需要为MapReduce流程设置六个变量:输入路径、输出路径、旧类簇中心文件、新类簇中心内文件、类簇个数、聚类停止条件,并且该函数还设置了Map过程使用类,Reduce过程使用类等。我们在这个函数中控制迭代类簇中心的迭代次数,该函数的流程如图1所示,实现代码见附录KMeansDriver类。
图2 getCenter()函数流程图
五、第二次MapReduce:数据分类
在KMeans算法中,数据分类一部分比较简单,该部分为每一个源数据中的元素在类簇中心集合中寻找一个距离最近的类簇中心,并将该元素标记为该类簇中心类即可。下面,将按照MapReduce设计、Mapper实现、Reducer实现、JobDriver实现三部分进行阐述。
5.1 MapReduce设计。
该部分的MapReduce读取源数据,读取初始类簇中心集合,给每个源数据中元素分类并输出。Map部分负责逐行读入搜狗搜索数据,并找到类簇中心集合中距离该行数据最近的类簇中心,然后将最近的类簇中心的序号作为这一行数据的标签,最终将标签作为Key,改行数据作为Value作为数据写出;Reduce部分负责将Map传输过来的数据逐行输出到结果集中;JobDriver部分负责程序的配置工作,以及提交任务。其中,Map部分与Reduce部分的输入输出格式如表2所示。
表2 Map与Reduce的输入输出格式
输入
输出
Map
(字节偏移量,一行数据内容)
(类簇中心标志,一行数据内容)
Reduce
(类簇中心标志,多行数据内容)
n(类簇中心标志,一行数据内容)
5.2 Mapper实现。
本文中我们使用类KMeansMapperForClassify实现迭代聚类中心的Mapper,该类的实现代码见附录KMeansMapperForClassify类。该类继承Mapper<LongWritable,Text,IntWritable,dataCell>类,并实现了Mapper类的抽象方法map。在map函数中实现了Mapper部分的主要逻辑,其流程如图1所示。
图1 map函数流程图
5.3 Recuce实现。
本文中我们使用类KMeansReducerForCenter实现迭代聚类中心的Reducer,该类的实现代码见附录KMeansReducerForCenter类。该类继承Reducer<IntWritable, Text, NullWritable, Text>类,并实现了Reducer类的抽象方法reduce。在reduce函数中实现了Reducer部分的主要逻辑,该部分比较简单,直接将迭代器中的dataCell对象写出到文件中即可。
5.4 JobDriver实现。
JobDriver部分驱动MapReduce的执行,这里我们在类KMeansDriver中的forClssify()函数中实现该功能。forClssify()需要为MapReduce流程设置四个变量:输入路径、输出路径、类簇中心文件、类簇个数,并且该函数还设置了Map过程使用类,Reduce过程使用类等。该函数过于简单,只是对Job做了一些简单的配置,在这里不予展示,实现代码见附录KMeansDriver类。
六、衡量分类效果
KMeans算法将数据分为几类,如何度量分类效果是值得考虑的问题。聚类的任务是将目标样本分为若干簇,并且保证每个簇之间样本尽可能接近,并且不同簇的样本距离尽可能远。基于此,聚类的效果好坏又分为两类指标衡量,一类是外部聚类效果,一类是内部聚类效果。这里我们仅使用内部聚类效果来衡量聚类的效果,且由于作业时间太紧,我们仅仅衡量聚类的紧凑度一项指标。
这里我们使用类簇中所有样本到类簇中心距离的累加和作为衡量紧凑度的标准,其中,数据集合相同的情况下,累加和越小,紧凑度越高;累加和越大,紧凑度越低。我们使用函数measureResult(String inputPath ,String centerPath,int k)衡量聚类效果,该函数有三个参数:inputPath为分类后结果数据集的路径,centerPath是迭代后类簇中心点的坐标,k是类簇的个数。程序调用getCenter()函数得到类簇中心点的集合,然后逐行读取inputPath中的数据并计算其与对应类簇中心的距离,并将距离累加,最终打印累加距离的值。该函数的实现代码见附录中Help类,其实现的流程如图1所示。
图1 measureResult函数流程图
七、运行与分析
由于电脑配置跟不上,而KMeans算法有需要较多的迭代次数,所以这里我仅使用了10000条数据运行程序。
7.1Â 一次完整的程序运行
在执行程序之前,首先要做一些配置:(1)创建迭代类簇中心点输出文件夹,创建分类结果输出文件夹;(2)将源数据提交到集群上;(3)将代码打包上传到Linux系统上。程序的运行步骤为:产生初始聚类中心、迭代聚类中心、数据分类、衡量分类效果。
7.1.1产生初始聚类中心。
我们首先产生20个不重复的类簇中心,以time=00,Rank=1,Order=1,key=“火影忍者”为随机初始类簇中心,运行函数Help.ProdeceCenter(),可以得到初始类簇中心,这里仅展示前10个,如表1所示。
表1 初始类簇中心
时间
搜索关键词
Rank
Order
20111230001328
火影忍者
2
2
20111230001600
蹲墙诱相公
10
10
20111230004356
家园守卫战罗德港防守攻略
1
1
20111230003246
Gay 性骚扰 图
10
9
20111230002353
汕头市金平区八年级第一学期数学试卷
3
1
20111230000219
人体艺术
9
9
20111230004156
广州渥格服装辅料有限公司
1
2
20111230001037
快播 中文字幕 主妇42
10
8
20111230003830
WWW、RRMMM、COM
1
9
20111230001230
海南师范大学美术系校园照片
10
1
7.1.2迭代聚类中心。
根据上文产生的初始类簇中心,我们选取前六个初始类簇中心点迭代聚类中心。本此迭代共计六轮,最终迭代后的类簇中心如表2所示,程序运行截图如图1所示。
表2 迭代后的类簇中心
时间
搜索关键词
Rank
Order
20111230000249
天与地
2
1
20111230004246
HTCG10手机系统自带软件怎么删除?
1
2
20111230004356
家园守卫战罗德港防守攻略
1
1
20111230000158
北京市西城区2008英语抽样测试答案
4
1
20111230002353
汕头市金平区八年级第一学期数学试卷
3
1
20111230001418
环卫工人业务知识竞赛抢答题
4
2
图1 程序运行截图
7.1.3数据分类。
根据以上迭代产生的类簇中心点集合,我们执行数据分类操作,运行函数forClssify(),可以对数据集进行分类,部分分类结果如表1所示。从表1中我们可以看到分类效果还是不错的。
表1 数据分类结果
类簇
时间
用户ID
关键词
Rank
Order
URL
0
20111230002225
5794763849288f418c58789492cd1f2e
左耳
2
1
http://www.tudou.com/programs/view/q96O7olHT-Q/
0
20111230000942
b54b6c1e8039276b87c8002be3e8583f
遵义宅 快递电话
2
2
http://zhidao.baidu.com/question/235623645
0
20111230001418
1b4fc71d2a068a638e66db462a93f89f
最终幻想
2
1
http://www.163dyy.com/detail/1678.html
0
20111230003938
fa936e397a0994997f234681a65549b2
最新移动手机充值q币
2
1
http://service.qq.com/info/25295.html
1
20111230003905
3c21686be709b847009680976d6a2b4c
百度一下
1
2
http://www.baidu.com/
1
20111230004234
6056710d9eafa569ddc800fe24643051
百度一下
1
2
http://www.baidu.com/
1
20111230000701
c71267c05b21e2a8f6a3e6b812fabc1f
百度ady
1
2
http://zhidao.baidu.com/question/188644177
7.1.4衡量分类效果。
经过以上三个步骤,我们已经基本完成了KMeans算法的基本过程,最后对算法的分类效果进行衡量。运行函数measureResult()可以得到类簇的累加距离,运行结果为10528。该数据需要有多组分类数据时进行比较才有意义,所以接下来我们寻找本数据集的最佳类簇个数。
7.2Â 寻找最佳类簇个数
我们使用产生聚类中心小节中产生的初始聚类中心,分别取前1个、前2个、前3个、前4个、前5个、前6个、前7个初始类簇中心对数据集进行聚类,并最终使用函数measureResult()计算累加距离,结果如表1所示。将表中数据用折线图表示如图1所示,从图中我们可以清楚看到,在类簇个数为3时,图中曲线出现了很大的转折:在类簇个数小于3时,每增加一个类簇,累加距离下降频度很大;在类簇个数大于3时,每增加一个类簇,累加距离下降频度较小。由此,当类簇个数为3时,既可以保证较好的分类效果,又可以避免分类过于细致的麻烦。
表1 1~7个类簇的分类效果
类簇个数
距离
1
25805
2
17503
3
12348
4
11798
5
11003
6
10528
7
10288
图1 1~7个类簇的分类效果
2、街舞的常见种类
街舞的常见种类
以动作形态来看,街舞舞者分两大类:Dancer和Bboy(BGIRL)。
以表演形态来看,街舞舞者分两大类:一种是个人的技巧街舞,另外一种就是集体街舞。
常见种类
1、Locking(锁舞)起源于60年代,由Don Cambell领衔的The Lockers团队发明,是最早成型的街舞舞种。手腕手臂的快速旋转与指向,动作的突然定格,伴以各种拍手、跳跃及劈叉等技术为其主要特征。
2、Popping(震感舞)起源于70年代初成型于70年代中后期,以不同形式兴起于美国西岸加尼福尼亚州的旧金山、弗雷斯诺、奥克兰等地,是Funk和Street Dance中的一种风格,最初的基本形式是借由各部位肌肉迅速地收缩与放松的技巧,是舞者的身体产生震动的感觉。
3、Breaking(霹雳舞)起源于70年代并成型于80年代的美国纽约市的布朗克斯区,是一种难度较高的街舞舞种,比较重视舞步和技巧的结合,分为TopRock、Footwork、Freeze、Powermove四大内容。
4、Hip-Hop(嘻哈舞)起源于80年代末90年代初,是继Breaking之后的第二种Hiphop舞蹈,是现在广泛流行的街舞类型,嘻哈舞最开始的原本意指B-Boy,后来才有人用MC唱的歌来跳舞,所以说跳Hip-Hop其实是一种后来的说法,B-Boy才是Hip-Hop的起源。
5、House成型于80到90年代,广泛吸收Breaking、Hiphop、Salsa、Tap、Ballet等等各种不同舞蹈元素,形成了以丰富轻快的脚步变化来表现House舞曲的舞蹈种类,分为Jacking,Footwork和Lofting三大类内容。
6、Reggae、Dancehall(雷鬼)此舞种起源于牙买加,并随着雷鬼音乐在法国及美国的传播和发展开始走进流行文化和公众视野,动作热情而狂野,带有大量的性暗示动作内容。
7、Clown、Krump(小丑舞)于90年代初由Tommy The Clown发明,以小丑装扮进行舞蹈,风格上与Hiphop相似但狂野和夸张得多。其弟子Lil C、Tight Eyez等人脱离团队后自立门户,将Clown舞蹈进行大量改变并称之为Krump,寓意Kingdom Radically Uplifted Mighty Praise,并解释为一种通过激烈动作将内在负面情绪进行发泄和升华的赞扬神的舞蹈。
8、Waacking、Punking、Voguing(甩舞)成型于70年代,原本是美国西岸地下Gay吧异装的男同性恋的舞台舞蹈,以大量手臂的旋转挥舞和风骚的Pose、走位来表达Disco及Funk音乐。Punking原指Locking舞者表演的Waacking,而Voguing是Waacking在美国东岸以House音乐表现并特别突出模特的Pose感的形式。
9、Turfing出现于美国西岸,以手臂在肩膀等关节处进行非人类的扭曲(Bonebreak)为主要特点,大量结合Popping和相关的Robot、Wave、Kingtut、Slide、Slowmotion等Style和技术,以及芭蕾、Breaking等舞蹈的身体旋转和翻转,形成的一种诡异夸张的新兴街舞舞种。
10、JAZZ(爵士舞)爵士舞是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代舞所表现的一种内敛性的舞蹈。Contemporary Jazz作为街舞舞种之一, 随着时间迁移,亦在不同的`Jazz编舞师口中被冠以Street Jazz、Jazz Funk、La Style、La Style Hiphop、Urban Dance等不同名称。
扩展资料:
街舞起源于20世纪60年代末的美国,70年代被归为嘻哈文化的一部分,与涂鸦、打碟和说唱并称为嘻哈四大元素。街舞具有较强的表演性,参与性和竞争性。跳街舞使人注意力集中,兴趣浓厚,动作优美随意,能培养一个人的意志力,也可以激发大脑想象力,并让创造力发挥到极致。
最早的街舞与纽约黑人区的嘻哈及说唱音乐有关,街舞在演唱时常利用肢体做出一些大幅度的动作,这些动作逐渐传播开并形成一些约定俗成的定势。然后这些动作逐渐发展成了最初的街舞——霹雳舞。一种观点认为breaking来源于歌手总是在歌曲暂停时进行表演。这之后,滑步、琐舞等也逐渐加入到原有的街舞风格中。这一时期的街舞风格被人称为旧学院,它们需要比较高的技巧。
90年代之后,又发展出了一种新的舞蹈类型:嘻哈舞与原有的街舞相比,其幅度较小,更加注重和音乐节奏的配合。不过这种舞蹈多少也参杂着一些琐舞、机器舞,随着其发展又逐渐分裂出电流等新风格。
街舞的常见种类
街舞种类介绍
1、locking(锁舞),最早的街舞舞种,起源于20世纪六十年代。身体做一些很快的动作,然后在某一个动作时候突然停住 ,顾名思义lock,锁住的意思,身体突然被锁住了一样,是一个比较难的舞种,该舞种强调干净俐落,有的人觉得上手简单,但是lock的动作如果做不到位,拖拖拉拉的,就像一个小丑。
2、Poppin(机械舞),运用身体各部位的肌肉和关节,随着音乐的节拍,加上自己丰富的想象力,由肌肉迅速地收缩与放松的技巧(pop),配合wave,加上瞬间停止的感觉,综合起来创造出令人惊讶的舞步。
3、Breaking(霹雳舞),1970年代起源于美国纽约市的布朗克斯区,是一种难度较高的街舞舞种,比较重视舞步和技巧的结合,主要由TopRock、UpRock、Footwork、Powermoves、Freeze等几类不同的舞蹈方式所组成。Breaking分成大地板(power move)和小地板(style move)。大地板以连续并互相连结的旋转动作为主,小地板以连续动作后突然静止或其他具个人特色的动作为主。
4、Hiphop(自由舞)是人们最常接触的一种舞蹈,它有着幅度大而简单的舞步,能够表现出复杂的舞感。因为容易学习,跳起来也相当好看,所以很受大众喜爱.但想要掌握其精髓,同样需要长期坚持与练习。
5、Jazz(爵士舞):JAZZ(爵士舞)爵士舞是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代舞所表现的一种内敛性的舞蹈。爵士舞动作的本质是一种自由而纯朴的表现,直接把内心的感受用身体的颠,抖,扭表达出来。就像我们听到喜欢的音乐,能从内心自然的流露出感情,身体就不由自主的随著音乐节奏而活动。
6、House,是一种可以在不大的空间(小房间)里就能组织起dance party,尽情享受音乐与身体(舞蹈)的融合,与trance的音乐风格所需要的大空间,大舞池氛围所不同。它可以加上拉丁舞的扭腰、武术的空翻、踢踏舞的基本步以及芭蕾的转圈,跳起来既可以十分优雅,也可以相当狂野。
街舞的常见种类
街舞的起源
舞是一种民间舞蹈,兴起于20世纪80年代的美国黑人青少年,是美国黑人“嘻哈文化”(Hip-Hop)的组成部分。由于这种舞蹈出现在街头、不拘于场地器械,所以称为街舞,并且具有极强的参与性、表演性和竞赛性。在逐渐的发展中,街舞青少年形成了一种共同的思想理念和行为方式,他们以街舞来张扬自我个性,展示青春的活力和激情,表达勇于进取的生活态度,他们强调的是“做自己,享受生命,勇于挑战”的理念。
街舞在日韩的发展
随着嘻哈文化在世界的普及,街舞也迅速传遍世界。街舞成型之际就已传入日本,并转而传入韩国。日本人创造并发展了许多新的街舞形式,比较注重其中的舞蹈性。而韩国人将街舞融入自己的理解,创造了极具民族特点的嘻哈变体文化,旋律优美节奏明快的音乐,简单整齐的舞蹈,绚丽夸张的造型……这种文化自1997年开始风靡中国,被称为“韩流”。日韩这种嘻哈变体文化形成对亚洲其他国家强大的文化影响力。
街舞的种类
以动作为标准,街舞分两大类:Hip-Hop和Breaking。
Breaking,要求舞者具有较高的力量、柔韧性和协调性,属于技巧性较高的体育舞蹈,所以最先为国内青少年所喜爱。跳这种类型舞蹈的青少年叫做B-Boy/B-Girl。
20世纪80年代,被称为“Hip-Hop之父”的DJ Kool Herc创造了B-Boy的概念,也就是Breaking Boy。每年,全世界的许多国家都有一些为B-Boy们举办的比赛,较有名的是每年一度的BOTY(B-Boy of The Year)和在英国举办的B-BoyChampion,超过10个国家的百名参赛选手会参加这样的盛事。比赛的优胜者很快就会声名远播,成为青少年的明星。
Hip-Hop,有Poping、Locking、Electric、Turbo、House等多种风格。它们都不如Breaking那样需要较高的技巧,但更要求舞者的动作协调性和舞感,以及肢体灵活性和控制力。好的Hip-Hop舞者同样需要艰苦的练习。由于Hip-Hop Dance不如Breaking那样技巧性强,也缺乏竞赛性,以前没有受到街舞爱好者足够的重视,现在随着舞蹈观念的增强,这种情况得到了改变,甚至B-Boy也开始练习并出现了许多全能型的街舞好手。
街舞的沿革
以时代特色为标准,街舞可以分为Old School和New School两类,前者为20世纪80年代的街舞风格,后者产生于90年代,在音乐和动作上都有相当大的改观。
本文关键词:街舞的常见种类有哪十种,街舞主要种类,街舞常见种类有哪些,街舞的几种类型,街舞的常见种类有。这就是关于《街舞的常见种类,街舞常见种类有哪些(KMeans算法的MapReduce实现)》的所有内容,希望对您能有所帮助!