├── .gitattributes ├── 2107091.pdf ├── README.md ├── tex源程序 └── 2021 D │ └── easymcm │ ├── 2107091.pdf │ ├── LICENSE.rst │ ├── PAPER.aux │ ├── PAPER.log │ ├── PAPER.out │ ├── PAPER.synctex.gz │ ├── PAPER.tex │ ├── PAPER.toc │ ├── README.md │ ├── easymcm.sty │ ├── img │ ├── all.pdf │ ├── all.png │ ├── dp.pdf │ ├── emotion.pdf │ ├── jubu.pdf │ ├── jubu.png │ ├── model.pdf │ ├── model.png │ ├── model2.pdf │ ├── model2.png │ ├── model3.pdf │ ├── model3.png │ ├── musician.pdf │ ├── musician.png │ ├── pca.pdf │ ├── pca.png │ ├── pca1.pdf │ ├── plot.pdf │ ├── plot.png │ ├── pop.pdf │ ├── pop.png │ ├── quanju.pdf │ ├── quanju.png │ ├── sa1.pdf │ ├── sa2.pdf │ ├── sa21.pdf │ ├── sub.pdf │ ├── subtime.pdf │ ├── subtime.png │ ├── time.pdf │ ├── time.png │ ├── work.pdf │ └── work.png │ └── pythonhighlight.sty ├── 代码 ├── 2.py ├── 2021d_1.py ├── 3.py ├── 4.py └── 5.py └── 图片 ├── 三维散点图.pdf ├── 加入局部后的相似度.pdf ├── 变化.pdf ├── 子网络.pdf ├── 差异性.pdf ├── 幂律分布.pdf ├── 我们的工作.pdf ├── 数据处理.pdf ├── 未加入局部的相似度.pdf ├── 流派-人数-时间.pdf ├── 流派之间时间相关变化.pdf ├── 流行度-时间.pdf ├── 滑动窗口.pdf ├── 滑动窗口修改.pdf ├── 灵敏度分析1.pdf ├── 电子音乐特征变化.pdf ├── 相似度修改.pdf ├── 相似性.pdf ├── 零名都分析2.pdf ├── 音乐风格情绪变化.pdf └── 饼图.pdf /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /2107091.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/2107091.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2021-ICM-D-Outstanding 2 | 2021 数模美赛O奖论文及代码公开,包含了论文pdf、latex源文件、源代码。 3 | 4 | ![v2-5f65cb41b5d835859b2121b00f2a85d2_b](https://s2.loli.net/2022/01/01/FVis3OKvfUkRBm7.jpg) 5 | 6 | ## 论文 7 | 8 | 我们也公开了论文的中文版供大家参考:[2021美赛D题O奖论文中文版+超详解读](https://zhuanlan.zhihu.com/p/370250195) 9 | 10 | ## latex 11 | 12 | 我们还公开了论文的latex代码,见:[2021-ICM-D-O奖论文latex代码-XDU](https://github.com/Jy-stdio/2021-ICM-D-Outstanding/tree/main/tex%E6%BA%90%E7%A8%8B%E5%BA%8F/2021%20D/easymcm) 13 | 14 | latex所使用的原始模板见:[一个简洁、易用的美赛 LaTeX 模板: easymcm](https://github.com/xjtu-blacksmith/easymcm),大家可以下载使用这个 15 | 16 | ## 代码 17 | 18 | 本文代码由于时间原因,可能并不完善而且版本可能比较乱,公开的目的只在于为大家提供代码编写的思路,如有错误,欢迎指正。 19 | 20 | --- 21 | add:如有其它问题,可以在issue中提出,由于作者时间有限,尽量抽时间进行回答。 22 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/2107091.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/2107091.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/LICENSE.rst: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009--2011, Olivier Verdier 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | * Neither the name of "pythonhighlighting" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | 11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 12 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \providecommand\hyper@newdestlabel[2]{} 3 | \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} 4 | \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined 5 | \global\let\oldcontentsline\contentsline 6 | \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} 7 | \global\let\oldnewlabel\newlabel 8 | \gdef\newlabel#1#2{\newlabelxx{#1}#2} 9 | \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} 10 | \AtEndDocument{\ifx\hyper@anchor\@undefined 11 | \let\contentsline\oldcontentsline 12 | \let\newlabel\oldnewlabel 13 | \fi} 14 | \fi} 15 | \global\let\hyper@last\relax 16 | \gdef\HyperFirstAtBeginDocument#1{#1} 17 | \providecommand*\HyPL@Entry[1]{} 18 | \HyPL@Entry{0<>} 19 | \HyPL@Entry{1<>} 20 | \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{3}{section.0.1}\protected@file@percent } 21 | \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Background and Problem Statement}{3}{subsection.0.1.1}\protected@file@percent } 22 | \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Our work}{3}{subsection.0.1.2}\protected@file@percent } 23 | \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Our Work\relax }}{3}{figure.caption.1}\protected@file@percent } 24 | \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} 25 | \newlabel{fig:work}{{1}{3}{Our Work\relax }{figure.caption.1}{}} 26 | \@writefile{toc}{\contentsline {section}{\numberline {2}Preparation of the Models}{3}{section.0.2}\protected@file@percent } 27 | \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Assumptions}{3}{subsection.0.2.1}\protected@file@percent } 28 | \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Notations}{4}{subsection.0.2.2}\protected@file@percent } 29 | \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Parameter Settings\relax }}{4}{table.caption.2}\protected@file@percent } 30 | \newlabel{tab001}{{1}{4}{Parameter Settings\relax }{table.caption.2}{}} 31 | \@writefile{toc}{\contentsline {section}{\numberline {3}\textsc {Task 1}: Musical Influence Network Analysis Based on SNA}{4}{section.0.3}\protected@file@percent } 32 | \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Data Processing}{4}{subsection.0.3.1}\protected@file@percent } 33 | \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Data Processing\relax }}{4}{figure.caption.3}\protected@file@percent } 34 | \newlabel{fig:dp}{{2}{4}{Data Processing\relax }{figure.caption.3}{}} 35 | \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Model Overview}{4}{subsection.0.3.2}\protected@file@percent } 36 | \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Musical Influence Network Analysis Based on SNA}{5}{subsection.0.3.3}\protected@file@percent } 37 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Establishment of Musical Influence Network and Analysis Using SNA}{5}{subsubsection.0.3.3.1}\protected@file@percent } 38 | \newlabel{eq:time}{{2}{5}{Establishment of Musical Influence Network and Analysis Using SNA}{equation.0.3.2}{}} 39 | \citation{1} 40 | \citation{2} 41 | \newlabel{eq:weight}{{4}{6}{Establishment of Musical Influence Network and Analysis Using SNA}{equation.0.3.4}{}} 42 | \newlabel{eq:DC}{{5}{6}{Establishment of Musical Influence Network and Analysis Using SNA}{equation.0.3.5}{}} 43 | \newlabel{eq:EC}{{7}{6}{Establishment of Musical Influence Network and Analysis Using SNA}{equation.0.3.7}{}} 44 | \newlabel{eq:set}{{8}{6}{Establishment of Musical Influence Network and Analysis Using SNA}{equation.0.3.8}{}} 45 | \citation{3} 46 | \citation{4} 47 | \citation{5} 48 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Model Test on Musical Influence Network}{7}{subsubsection.0.3.3.2}\protected@file@percent } 49 | \@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces $MI$ of Musicians\relax }}{7}{table.caption.4}\protected@file@percent } 50 | \newlabel{tab:best}{{2}{7}{$MI$ of Musicians\relax }{table.caption.4}{}} 51 | \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Analysis of The Result}{7}{subsection.0.3.4}\protected@file@percent } 52 | \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces The Frequency Distribution of $MI$\relax }}{7}{figure.caption.5}\protected@file@percent } 53 | \newlabel{fig:plot}{{3}{7}{The Frequency Distribution of $MI$\relax }{figure.caption.5}{}} 54 | \newlabel{eq:28}{{11}{8}{Analysis of The Result}{equation.0.3.11}{}} 55 | \@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Distribution Parameters\relax }}{8}{table.caption.6}\protected@file@percent } 56 | \newlabel{tab:fit}{{3}{8}{Distribution Parameters\relax }{table.caption.6}{}} 57 | \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Analysis of Musical Influence Sub-network}{8}{subsection.0.3.5}\protected@file@percent } 58 | \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Sub-network of Musical Influence\relax }}{9}{figure.caption.7}\protected@file@percent } 59 | \newlabel{fig:sub}{{4}{9}{Sub-network of Musical Influence\relax }{figure.caption.7}{}} 60 | \@writefile{toc}{\contentsline {section}{\numberline {4}\textsc {Task} 2 \& 3: Multi-dimensional Music Similarity Evaluation Model}{9}{section.0.4}\protected@file@percent } 61 | \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Model Overview}{9}{subsection.0.4.1}\protected@file@percent } 62 | \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Multi-dimensional Music Similarity Evaluation Model\relax }}{9}{figure.caption.8}\protected@file@percent } 63 | \newlabel{fig:m2}{{5}{9}{Multi-dimensional Music Similarity Evaluation Model\relax }{figure.caption.8}{}} 64 | \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Establishment of Multi-dimensional Music Similarity Evaluation Model}{10}{subsection.0.4.2}\protected@file@percent } 65 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Global Similarity of Music}{10}{subsubsection.0.4.2.1}\protected@file@percent } 66 | \newlabel{eq:cos}{{14}{10}{Global Similarity of Music}{equation.0.4.14}{}} 67 | \newlabel{eq:glo}{{15}{10}{Global Similarity of Music}{equation.0.4.15}{}} 68 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Partial Similarity of Music}{10}{subsubsection.0.4.2.2}\protected@file@percent } 69 | \newlabel{eq:1}{{16}{11}{Partial Similarity of Music}{equation.0.4.16}{}} 70 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Fashion Trends Impact Factor}{11}{subsubsection.0.4.2.3}\protected@file@percent } 71 | \@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Evaluation of Music Similarity}{11}{subsection.0.4.3}\protected@file@percent } 72 | \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Statistics of Musicians by Genre\relax }}{11}{figure.caption.9}\protected@file@percent } 73 | \newlabel{fig:all}{{6}{11}{Statistics of Musicians by Genre\relax }{figure.caption.9}{}} 74 | \@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces The Music Chosen from Pop/Rock, R\&B, and Jazz\relax }}{12}{table.caption.10}\protected@file@percent } 75 | \newlabel{tab:songs}{{4}{12}{The Music Chosen from Pop/Rock, R\&B, and Jazz\relax }{table.caption.10}{}} 76 | \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Global Similarity\relax }}{12}{figure.caption.11}\protected@file@percent } 77 | \newlabel{fig:quanju}{{7}{12}{Global Similarity\relax }{figure.caption.11}{}} 78 | \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Multi--Similarity\relax }}{12}{figure.caption.11}\protected@file@percent } 79 | \newlabel{fig:jubu}{{8}{12}{Multi--Similarity\relax }{figure.caption.11}{}} 80 | \@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Similarity of Musicians from Pop/Rock, R\&B, and Jazz\relax }}{13}{table.caption.12}\protected@file@percent } 81 | \newlabel{tab:sim}{{5}{13}{Similarity of Musicians from Pop/Rock, R\&B, and Jazz\relax }{table.caption.12}{}} 82 | \@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Statistics of Musicians by Genre\relax }}{13}{figure.caption.13}\protected@file@percent } 83 | \newlabel{fig:pca}{{9}{13}{Statistics of Musicians by Genre\relax }{figure.caption.13}{}} 84 | \@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Analysis of the Musical Discrimination and Influences of Genres}{13}{subsection.0.4.4}\protected@file@percent } 85 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}Discrimination Evaluation Model of Feature Combination}{13}{subsubsection.0.4.4.1}\protected@file@percent } 86 | \@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Partial Similarity Evaluation Vector\relax }}{14}{figure.caption.14}\protected@file@percent } 87 | \newlabel{fig:model}{{10}{14}{Partial Similarity Evaluation Vector\relax }{figure.caption.14}{}} 88 | \@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces Feature Combination Discrimination\relax }}{14}{table.caption.15}\protected@file@percent } 89 | \newlabel{tab:fm}{{6}{14}{Feature Combination Discrimination\relax }{table.caption.15}{}} 90 | \newlabel{tab:addlabel}{{6}{14}{Feature Combination Discrimination\relax }{table.caption.15}{}} 91 | \citation{6} 92 | \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.2}Analysis of Genre Changes Over Time}{15}{subsubsection.0.4.4.2}\protected@file@percent } 93 | \@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Changes of Electronic Over Time\relax }}{15}{figure.caption.16}\protected@file@percent } 94 | \newlabel{fig:time}{{11}{15}{Changes of Electronic Over Time\relax }{figure.caption.16}{}} 95 | \citation{9} 96 | \@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Changes of New age and Easy listening Over Time\relax }}{16}{figure.caption.17}\protected@file@percent } 97 | \newlabel{fig:subtime}{{12}{16}{Changes of New age and Easy listening Over Time\relax }{figure.caption.17}{}} 98 | \@writefile{toc}{\contentsline {section}{\numberline {5}Task 4 :Long-Short Term Influence Evaluation Model Based on Sliding Window}{16}{section.0.5}\protected@file@percent } 99 | \@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Establishment of Sliding Window Model}{16}{subsection.0.5.1}\protected@file@percent } 100 | \@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Long-Short Term Influence Evaluation Model Based on Sliding Window\relax }}{17}{figure.caption.18}\protected@file@percent } 101 | \newlabel{fig:m3}{{13}{17}{Long-Short Term Influence Evaluation Model Based on Sliding Window\relax }{figure.caption.18}{}} 102 | \newlabel{eq:ids}{{24}{17}{Establishment of Sliding Window Model}{equation.0.5.24}{}} 103 | \@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Test of the Established Model}{17}{subsection.0.5.2}\protected@file@percent } 104 | \@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces Result of Sliding Window Model\relax }}{17}{table.caption.19}\protected@file@percent } 105 | \newlabel{tab:res}{{7}{17}{Result of Sliding Window Model\relax }{table.caption.19}{}} 106 | \@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Contagious Evaluation of Musical Characteristics}{18}{subsection.0.5.3}\protected@file@percent } 107 | \@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces Contagious of Musical Characteristics\relax }}{18}{table.caption.20}\protected@file@percent } 108 | \newlabel{tab:res1}{{8}{18}{Contagious of Musical Characteristics\relax }{table.caption.20}{}} 109 | \@writefile{toc}{\contentsline {section}{\numberline {6}Task 5 \& 6 \& 7: Analysis of Music Revolution Over Time}{18}{section.0.6}\protected@file@percent } 110 | \@writefile{toc}{\contentsline {subsection}{\numberline {6.1}The Identification of the Musical revolution}{18}{subsection.0.6.1}\protected@file@percent } 111 | \citation{7} 112 | \citation{7} 113 | \newlabel{eq:control}{{28}{19}{The Identification of the Musical revolution}{equation.0.6.28}{}} 114 | \@writefile{lot}{\contentsline {table}{\numberline {9}{\ignorespaces Identification of Revolution of Electronic\relax }}{19}{table.caption.21}\protected@file@percent } 115 | \newlabel{tab:res2}{{9}{19}{Identification of Revolution of Electronic\relax }{table.caption.21}{}} 116 | \citation{4} 117 | \@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Changes in the Number of Musicians Over Time\relax }}{20}{figure.caption.22}\protected@file@percent } 118 | \newlabel{fig:mus}{{14}{20}{Changes in the Number of Musicians Over Time\relax }{figure.caption.22}{}} 119 | \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Major Influencers of Revolution}{20}{subsection.0.6.2}\protected@file@percent } 120 | \@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Dynamic Influencer Evaluation Indicator}{20}{subsection.0.6.3}\protected@file@percent } 121 | \@writefile{lot}{\contentsline {table}{\numberline {10}{\ignorespaces $DII$ of Musicians Over Time\relax }}{21}{table.caption.23}\protected@file@percent } 122 | \newlabel{tab:dii}{{10}{21}{$DII$ of Musicians Over Time\relax }{table.caption.23}{}} 123 | \@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Influence from Social, Political and Cultural Aspects}{21}{subsection.0.6.4}\protected@file@percent } 124 | \@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Changes of \emph {valence} Over Time\relax }}{21}{figure.caption.24}\protected@file@percent } 125 | \newlabel{fig:emo}{{15}{21}{Changes of \emph {valence} Over Time\relax }{figure.caption.24}{}} 126 | \citation{8} 127 | \@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Changes of \emph {popularity} Over Time\relax }}{22}{figure.caption.25}\protected@file@percent } 128 | \newlabel{fig:pop}{{16}{22}{Changes of \emph {popularity} Over Time\relax }{figure.caption.25}{}} 129 | \@writefile{toc}{\contentsline {section}{\numberline {7}Sensitive Analysis}{22}{section.0.7}\protected@file@percent } 130 | \@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Sensitive Analysis of Model in \textsc {Task} 2 }{22}{subsection.0.7.1}\protected@file@percent } 131 | \@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Sensitive Analysis of Model in \textsc {Task} 4 }{22}{subsection.0.7.2}\protected@file@percent } 132 | \@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces Sensitive Analysis of the Model in Task 2\relax }}{23}{figure.caption.26}\protected@file@percent } 133 | \newlabel{fig:sa1}{{17}{23}{Sensitive Analysis of the Model in Task 2\relax }{figure.caption.26}{}} 134 | \@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces Sensitive Analysis of the Model in Task 4\relax }}{23}{figure.caption.27}\protected@file@percent } 135 | \newlabel{fig:sa2}{{18}{23}{Sensitive Analysis of the Model in Task 4\relax }{figure.caption.27}{}} 136 | \bibcite{1}{1} 137 | \bibcite{2}{2} 138 | \bibcite{3}{3} 139 | \bibcite{4}{4} 140 | \bibcite{5}{5} 141 | \bibcite{6}{6} 142 | \bibcite{7}{7} 143 | \bibcite{8}{8} 144 | \bibcite{9}{9} 145 | \@writefile{toc}{\contentsline {section}{\numberline {8}Strengths and Weaknesses}{24}{section.0.8}\protected@file@percent } 146 | \@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Strengths}{24}{subsection.0.8.1}\protected@file@percent } 147 | \@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Weaknesses}{24}{subsection.0.8.2}\protected@file@percent } 148 | \@writefile{toc}{\contentsline {section}{References}{24}{section.0.9}\protected@file@percent } 149 | \@writefile{toc}{\contentsline {section}{MEMO\centering }{25}{section.0.10}\protected@file@percent } 150 | \newlabel{LastPage}{{}{25}{}{page.25}{}} 151 | \xdef\lastpage@lastpage{25} 152 | \xdef\lastpage@lastpageHy{25} 153 | \ttl@finishall 154 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.log: -------------------------------------------------------------------------------- 1 | This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020/W32TeX) (preloaded format=xelatex 2020.6.30) 9 FEB 2021 06:06 2 | entering extended mode 3 | restricted \write18 enabled. 4 | %&-line parsing enabled. 5 | **PAPER.tex 6 | (./PAPER.tex 7 | LaTeX2e <2020-02-02> patch level 5 8 | L3 programming layer <2020-03-06> 9 | (c:/texlive/2020/texmf-dist/tex/latex/base/article.cls 10 | Document Class: article 2019/12/20 v1.4l Standard LaTeX document class 11 | (c:/texlive/2020/texmf-dist/tex/latex/base/size12.clo 12 | File: size12.clo 2019/12/20 v1.4l Standard LaTeX file (size option) 13 | ) 14 | \c@part=\count163 15 | \c@section=\count164 16 | \c@subsection=\count165 17 | \c@subsubsection=\count166 18 | \c@paragraph=\count167 19 | \c@subparagraph=\count168 20 | \c@figure=\count169 21 | \c@table=\count170 22 | \abovecaptionskip=\skip47 23 | \belowcaptionskip=\skip48 24 | \bibindent=\dimen134 25 | ) (./easymcm.sty 26 | Package: easymcm 2019/01/21 EasyMCM v5.1 27 | 28 | EasyMCM Package, version 5.1 29 | (c:/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty 30 | Package: geometry 2020/01/02 v5.9 Page Geometry 31 | 32 | (c:/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty 33 | Package: keyval 2014/10/28 v1.15 key=value parser (DPC) 34 | \KV@toks@=\toks15 35 | ) 36 | (c:/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty 37 | Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. 38 | 39 | (c:/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty 40 | Package: iftex 2020/03/06 v1.0d TeX engine tests 41 | )) 42 | \Gm@cnth=\count171 43 | \Gm@cntv=\count172 44 | \c@Gm@tempcnt=\count173 45 | \Gm@bindingoffset=\dimen135 46 | \Gm@wd@mp=\dimen136 47 | \Gm@odd@mp=\dimen137 48 | \Gm@even@mp=\dimen138 49 | \Gm@layoutwidth=\dimen139 50 | \Gm@layoutheight=\dimen140 51 | \Gm@layouthoffset=\dimen141 52 | \Gm@layoutvoffset=\dimen142 53 | \Gm@dimlist=\toks16 54 | ) 55 | (c:/texlive/2020/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty 56 | Package: fancyhdr 2019/01/31 v3.10 Extensive control of page headers and footer 57 | s 58 | \f@nch@headwidth=\skip49 59 | \f@nch@O@elh=\skip50 60 | \f@nch@O@erh=\skip51 61 | \f@nch@O@olh=\skip52 62 | \f@nch@O@orh=\skip53 63 | \f@nch@O@elf=\skip54 64 | \f@nch@O@erf=\skip55 65 | \f@nch@O@olf=\skip56 66 | \f@nch@O@orf=\skip57 67 | ) 68 | (c:/texlive/2020/texmf-dist/tex/latex/fancybox/fancybox.sty 69 | Package: fancybox 2010/05/15 1.4 70 | 71 | Style option: `fancybox' v1.4 <2010/05/15> (tvz) 72 | \@fancybox=\box45 73 | \shadowsize=\dimen143 74 | \@Sbox=\box46 75 | \do@VerbBox=\toks17 76 | \the@fancyput=\toks18 77 | \this@fancyput=\toks19 78 | \EndVerbatimTokens=\toks20 79 | \Verbatim@Outfile=\write3 80 | \Verbatim@Infile=\read2 81 | ) (c:/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty 82 | Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) 83 | ) 84 | (c:/texlive/2020/texmf-dist/tex/latex/lastpage/lastpage.sty 85 | Package: lastpage 2015/03/29 v1.2m Refers to last page's name (HMM; JPG) 86 | ) 87 | (c:/texlive/2020/texmf-dist/tex/latex/paralist/paralist.sty 88 | Package: paralist 2017/01/22 v2.7 Extended list environments 89 | \pltopsep=\skip58 90 | \plpartopsep=\skip59 91 | \plitemsep=\skip60 92 | \plparsep=\skip61 93 | \pl@lab=\toks21 94 | ) 95 | (c:/texlive/2020/texmf-dist/tex/latex/tools/indentfirst.sty 96 | Package: indentfirst 1995/11/23 v1.03 Indent first paragraph (DPC) 97 | ) 98 | (c:/texlive/2020/texmf-dist/tex/latex/appendix/appendix.sty 99 | Package: appendix 2020/02/08 v1.2c extra appendix facilities 100 | \c@@pps=\count174 101 | \c@@ppsavesec=\count175 102 | \c@@ppsaveapp=\count176 103 | ) 104 | (c:/texlive/2020/texmf-dist/tex/latex/amsfonts/amsfonts.sty 105 | Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support 106 | \@emptytoks=\toks22 107 | \symAMSa=\mathgroup4 108 | \symAMSb=\mathgroup5 109 | LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. 110 | LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' 111 | (Font) U/euf/m/n --> U/euf/b/n on input line 106. 112 | ) 113 | (c:/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty 114 | Package: amsmath 2020/01/20 v2.17e AMS math features 115 | \@mathmargin=\skip62 116 | 117 | For additional information on amsmath, use the `?' option. 118 | (c:/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty 119 | Package: amstext 2000/06/29 v2.01 AMS text 120 | 121 | (c:/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty 122 | File: amsgen.sty 1999/11/30 v2.0 generic functions 123 | \@emptytoks=\toks23 124 | \ex@=\dimen144 125 | )) 126 | (c:/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty 127 | Package: amsbsy 1999/11/29 v1.2d Bold Symbols 128 | \pmbraise@=\dimen145 129 | ) 130 | (c:/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty 131 | Package: amsopn 2016/03/08 v2.02 operator names 132 | ) 133 | \inf@bad=\count177 134 | LaTeX Info: Redefining \frac on input line 227. 135 | \uproot@=\count178 136 | \leftroot@=\count179 137 | LaTeX Info: Redefining \overline on input line 389. 138 | \classnum@=\count180 139 | \DOTSCASE@=\count181 140 | LaTeX Info: Redefining \ldots on input line 486. 141 | LaTeX Info: Redefining \dots on input line 489. 142 | LaTeX Info: Redefining \cdots on input line 610. 143 | \Mathstrutbox@=\box47 144 | \strutbox@=\box48 145 | \big@size=\dimen146 146 | LaTeX Font Info: Redeclaring font encoding OML on input line 733. 147 | LaTeX Font Info: Redeclaring font encoding OMS on input line 734. 148 | \macc@depth=\count182 149 | \c@MaxMatrixCols=\count183 150 | \dotsspace@=\muskip16 151 | \c@parentequation=\count184 152 | \dspbrk@lvl=\count185 153 | \tag@help=\toks24 154 | \row@=\count186 155 | \column@=\count187 156 | \maxfields@=\count188 157 | \andhelp@=\toks25 158 | \eqnshift@=\dimen147 159 | \alignsep@=\dimen148 160 | \tagshift@=\dimen149 161 | \tagwidth@=\dimen150 162 | \totwidth@=\dimen151 163 | \lineht@=\dimen152 164 | \@envbody=\toks26 165 | \multlinegap=\skip63 166 | \multlinetaggap=\skip64 167 | \mathdisplay@stack=\toks27 168 | LaTeX Info: Redefining \[ on input line 2859. 169 | LaTeX Info: Redefining \] on input line 2860. 170 | ) 171 | (c:/texlive/2020/texmf-dist/tex/latex/amsfonts/amssymb.sty 172 | Package: amssymb 2013/01/14 v3.01 AMS font symbols 173 | ) 174 | \c@Theorem=\count189 175 | 176 | (c:/texlive/2020/texmf-dist/tex/latex/titlesec/titlesec.sty 177 | Package: titlesec 2019/10/16 v2.13 Sectioning titles 178 | \ttl@box=\box49 179 | \beforetitleunit=\skip65 180 | \aftertitleunit=\skip66 181 | \ttl@plus=\dimen153 182 | \ttl@minus=\dimen154 183 | \ttl@toksa=\toks28 184 | \titlewidth=\dimen155 185 | \titlewidthlast=\dimen156 186 | \titlewidthfirst=\dimen157 187 | ) 188 | (c:/texlive/2020/texmf-dist/tex/latex/titlesec/titletoc.sty 189 | Package: titletoc 2019/10/16 v2.13 TOC entries 190 | \ttl@leftsep=\dimen158 191 | ) 192 | (c:/texlive/2020/texmf-dist/tex/latex/caption/caption.sty 193 | Package: caption 2020/01/03 v3.4h Customizing captions (AR) 194 | 195 | (c:/texlive/2020/texmf-dist/tex/latex/caption/caption3.sty 196 | Package: caption3 2020/01/03 v1.8h caption3 kernel (AR) 197 | Package caption3 Info: TeX engine: e-TeX on input line 61. 198 | \captionmargin=\dimen159 199 | \captionmargin@=\dimen160 200 | \captionwidth=\dimen161 201 | \caption@tempdima=\dimen162 202 | \caption@indent=\dimen163 203 | \caption@parindent=\dimen164 204 | \caption@hangindent=\dimen165 205 | Package caption Info: Standard document class detected. 206 | ) 207 | \c@caption@flags=\count190 208 | \c@continuedfloat=\count191 209 | ) 210 | (c:/texlive/2020/texmf-dist/tex/latex/tools/longtable.sty 211 | Package: longtable 2020/01/07 v4.13 Multi-page Table package (DPC) 212 | \LTleft=\skip67 213 | \LTright=\skip68 214 | \LTpre=\skip69 215 | \LTpost=\skip70 216 | \LTchunksize=\count192 217 | \LTcapwidth=\dimen166 218 | \LT@head=\box50 219 | \LT@firsthead=\box51 220 | \LT@foot=\box52 221 | \LT@lastfoot=\box53 222 | \LT@cols=\count193 223 | \LT@rows=\count194 224 | \c@LT@tables=\count195 225 | \c@LT@chunks=\count196 226 | \LT@p@ftn=\toks29 227 | ) 228 | (c:/texlive/2020/texmf-dist/tex/latex/multirow/multirow.sty 229 | Package: multirow 2019/05/31 v2.5 Span multiple rows of a table 230 | \multirow@colwidth=\skip71 231 | \multirow@cntb=\count197 232 | \multirow@dima=\skip72 233 | \bigstrutjot=\dimen167 234 | ) 235 | (c:/texlive/2020/texmf-dist/tex/latex/tools/array.sty 236 | Package: array 2019/08/31 v2.4l Tabular extension package (FMi) 237 | \col@sep=\dimen168 238 | \ar@mcellbox=\box54 239 | \extrarowheight=\dimen169 240 | \NC@list=\toks30 241 | \extratabsurround=\skip73 242 | \backup@length=\skip74 243 | \ar@cellbox=\box55 244 | ) 245 | (c:/texlive/2020/texmf-dist/tex/latex/booktabs/booktabs.sty 246 | Package: booktabs 2020/01/12 v1.61803398 Publication quality tables 247 | \heavyrulewidth=\dimen170 248 | \lightrulewidth=\dimen171 249 | \cmidrulewidth=\dimen172 250 | \belowrulesep=\dimen173 251 | \belowbottomsep=\dimen174 252 | \aboverulesep=\dimen175 253 | \abovetopsep=\dimen176 254 | \cmidrulesep=\dimen177 255 | \cmidrulekern=\dimen178 256 | \defaultaddspace=\dimen179 257 | \@cmidla=\count198 258 | \@cmidlb=\count199 259 | \@aboverulesep=\dimen180 260 | \@belowrulesep=\dimen181 261 | \@thisruleclass=\count266 262 | \@lastruleclass=\count267 263 | \@thisrulewidth=\dimen182 264 | ) 265 | (c:/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty 266 | Package: fontenc 2020/02/11 v2.0o Standard LaTeX package 267 | LaTeX Font Info: Trying to load font information for T1+lmr on input line 11 268 | 2. 269 | 270 | (c:/texlive/2020/texmf-dist/tex/latex/lm/t1lmr.fd 271 | File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern 272 | )) 273 | (c:/texlive/2020/texmf-dist/tex/latex/url/url.sty 274 | \Urlmuskip=\muskip17 275 | Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. 276 | ) 277 | (c:/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty 278 | Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR) 279 | 280 | (c:/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty 281 | Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR) 282 | 283 | (c:/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty 284 | Package: trig 2016/01/03 v1.10 sin cos tan (DPC) 285 | ) 286 | (c:/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg 287 | File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration 288 | ) 289 | Package graphics Info: Driver file: xetex.def on input line 105. 290 | 291 | (c:/texlive/2020/texmf-dist/tex/latex/graphics-def/xetex.def 292 | File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex 293 | )) 294 | \Gin@req@height=\dimen183 295 | \Gin@req@width=\dimen184 296 | ) 297 | (c:/texlive/2020/texmf-dist/tex/latex/base/flafter.sty 298 | Package: flafter 2018/11/28 v1.4d Standard LaTeX floats after reference (FMi) 299 | Applying: [2015/01/01] float order in 2-column on input line 49. 300 | Already applied: [0000/00/00] float order in 2-column on input line 151. 301 | ) 302 | (c:/texlive/2020/texmf-dist/tex/generic/iftex/ifpdf.sty 303 | Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. 304 | ) 305 | (c:/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty 306 | Package: hyperref 2020/01/14 v7.00d Hypertext links for LaTeX 307 | 308 | (c:/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty 309 | Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO) 310 | ) 311 | (c:/texlive/2020/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty 312 | Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO 313 | ) 314 | 315 | (c:/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty 316 | Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) 317 | ) 318 | Package pdftexcmds Info: \pdf@primitive is available. 319 | Package pdftexcmds Info: \pdf@ifprimitive is available. 320 | Package pdftexcmds Info: \pdfdraftmode not found. 321 | ) 322 | (c:/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty 323 | Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) 324 | ) 325 | (c:/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty 326 | Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) 327 | ) 328 | (c:/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty 329 | Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) 330 | ) 331 | (c:/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty 332 | Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) 333 | ) 334 | (c:/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty 335 | Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) 336 | ) 337 | (c:/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty 338 | Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) 339 | ) 340 | (c:/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty 341 | Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO) 342 | ) 343 | \@linkdim=\dimen185 344 | \Hy@linkcounter=\count268 345 | \Hy@pagecounter=\count269 346 | 347 | (c:/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def 348 | File: pd1enc.def 2020/01/14 v7.00d Hyperref: PDFDocEncoding definition (HO) 349 | ) 350 | (c:/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty 351 | Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) 352 | ) 353 | (c:/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty 354 | Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) 355 | ) 356 | \Hy@SavedSpaceFactor=\count270 357 | Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 4421 358 | . 359 | Package hyperref Info: Option `bookmarksopen' set `true' on input line 4421. 360 | Package hyperref Info: Option `colorlinks' set `true' on input line 4421. 361 | Package hyperref Info: Hyper figures OFF on input line 4547. 362 | Package hyperref Info: Link nesting OFF on input line 4552. 363 | Package hyperref Info: Hyper index ON on input line 4555. 364 | Package hyperref Info: Plain pages OFF on input line 4562. 365 | Package hyperref Info: Backreferencing OFF on input line 4567. 366 | Package hyperref Info: Implicit mode ON; LaTeX internals redefined. 367 | Package hyperref Info: Bookmarks ON on input line 4800. 368 | \c@Hy@tempcnt=\count271 369 | LaTeX Info: Redefining \url on input line 5159. 370 | \XeTeXLinkMargin=\dimen186 371 | 372 | (c:/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty 373 | Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) 374 | 375 | (c:/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty 376 | Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO 377 | ) 378 | )) 379 | \Fld@menulength=\count272 380 | \Field@Width=\dimen187 381 | \Fld@charsize=\dimen188 382 | Package hyperref Info: Hyper figures OFF on input line 6430. 383 | Package hyperref Info: Link nesting OFF on input line 6435. 384 | Package hyperref Info: Hyper index ON on input line 6438. 385 | Package hyperref Info: backreferencing OFF on input line 6445. 386 | Package hyperref Info: Link coloring ON on input line 6448. 387 | Package hyperref Info: Link coloring with OCG OFF on input line 6455. 388 | Package hyperref Info: PDF/A mode OFF on input line 6460. 389 | LaTeX Info: Redefining \ref on input line 6500. 390 | LaTeX Info: Redefining \pageref on input line 6504. 391 | 392 | (c:/texlive/2020/texmf-dist/tex/generic/atbegshi/atbegshi.sty 393 | Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO) 394 | ) 395 | \Hy@abspage=\count273 396 | \c@Item=\count274 397 | \c@Hfootnote=\count275 398 | ) 399 | Package hyperref Info: Driver: hxetex. 400 | 401 | (c:/texlive/2020/texmf-dist/tex/latex/hyperref/hxetex.def 402 | File: hxetex.def 2020/01/14 v7.00d Hyperref driver for XeTeX 403 | 404 | (c:/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def 405 | File: puenc.def 2020/01/14 v7.00d Hyperref: PDF Unicode definition (HO) 406 | ) 407 | (c:/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty 408 | Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO 409 | ) 410 | ) 411 | \pdfm@box=\box56 412 | \c@Hy@AnnotLevel=\count276 413 | \HyField@AnnotCount=\count277 414 | \Fld@listcount=\count278 415 | \c@bookmark@seq@number=\count279 416 | 417 | (c:/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty 418 | Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) 419 | 420 | (c:/texlive/2020/texmf-dist/tex/latex/atveryend/atveryend.sty 421 | Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO) 422 | Package atveryend Info: \enddocument detected (standard20110627). 423 | ) 424 | (c:/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty 425 | Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) 426 | ) 427 | Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 428 | 86. 429 | ) 430 | \Hy@SectionHShift=\skip75 431 | ) 432 | \c@prefix=\count280 433 | 434 | (c:/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty 435 | Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) 436 | \etb@tempcnta=\count281 437 | ) 438 | \@abstract=\box57 439 | ) 440 | (c:/texlive/2020/texmf-dist/tex/latex/listings/listings.sty 441 | \lst@mode=\count282 442 | \lst@gtempboxa=\box58 443 | \lst@token=\toks31 444 | \lst@length=\count283 445 | \lst@currlwidth=\dimen189 446 | \lst@column=\count284 447 | \lst@pos=\count285 448 | \lst@lostspace=\dimen190 449 | \lst@width=\dimen191 450 | \lst@newlines=\count286 451 | \lst@lineno=\count287 452 | \lst@maxwidth=\dimen192 453 | 454 | (c:/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty 455 | File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz) 456 | \c@lstnumber=\count288 457 | \lst@skipnumbers=\count289 458 | \lst@framebox=\box59 459 | ) 460 | (c:/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg 461 | File: listings.cfg 2020/03/24 1.8d listings configuration 462 | )) 463 | Package: listings 2020/03/24 1.8d (Carsten Heinz) 464 | 465 | (c:/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty 466 | Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) 467 | 468 | (c:/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg 469 | File: color.cfg 2016/01/02 v1.6 sample color configuration 470 | ) 471 | Package xcolor Info: Driver file: xetex.def on input line 225. 472 | Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. 473 | Package xcolor Info: Model `RGB' extended on input line 1364. 474 | Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. 475 | Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. 476 | Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. 477 | Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. 478 | Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. 479 | Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. 480 | ) 481 | (./pythonhighlight.sty 482 | Package: pythonhighlight 2011/09/19 python code highlighting; provided by Olivi 483 | er Verdier 484 | ) 485 | (c:/texlive/2020/texmf-dist/tex/latex/subfigure/subfigure.sty 486 | Package: subfigure 2002/03/15 v2.1.5 subfigure package 487 | \subfigtopskip=\skip76 488 | \subfigcapskip=\skip77 489 | \subfigcaptopadj=\dimen193 490 | \subfigbottomskip=\skip78 491 | \subfigcapmargin=\dimen194 492 | \subfiglabelskip=\skip79 493 | \c@subfigure=\count290 494 | \c@lofdepth=\count291 495 | \c@subtable=\count292 496 | \c@lotdepth=\count293 497 | 498 | **************************************** 499 | * Local config file subfigure.cfg used * 500 | **************************************** 501 | (c:/texlive/2020/texmf-dist/tex/latex/subfigure/subfigure.cfg) 502 | \subfig@top=\skip80 503 | \subfig@bottom=\skip81 504 | ) 505 | (c:/texlive/2020/texmf-dist/tex/latex/threeparttable/threeparttable.sty 506 | Package: threeparttable 2003/06/13 v 3.0 507 | \@tempboxb=\box60 508 | ) 509 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/mathptmx.sty 510 | Package: mathptmx 2005/04/12 PSNFSS-v9.2a Times w/ Math, improved (SPQR, WaS) 511 | LaTeX Font Info: Redeclaring symbol font `operators' on input line 28. 512 | LaTeX Font Info: Overwriting symbol font `operators' in version `normal' 513 | (Font) OT1/cmr/m/n --> OT1/ztmcm/m/n on input line 28. 514 | LaTeX Font Info: Overwriting symbol font `operators' in version `bold' 515 | (Font) OT1/cmr/bx/n --> OT1/ztmcm/m/n on input line 28. 516 | LaTeX Font Info: Redeclaring symbol font `letters' on input line 29. 517 | LaTeX Font Info: Overwriting symbol font `letters' in version `normal' 518 | (Font) OML/cmm/m/it --> OML/ztmcm/m/it on input line 29. 519 | LaTeX Font Info: Overwriting symbol font `letters' in version `bold' 520 | (Font) OML/cmm/b/it --> OML/ztmcm/m/it on input line 29. 521 | LaTeX Font Info: Redeclaring symbol font `symbols' on input line 30. 522 | LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' 523 | (Font) OMS/cmsy/m/n --> OMS/ztmcm/m/n on input line 30. 524 | LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' 525 | (Font) OMS/cmsy/b/n --> OMS/ztmcm/m/n on input line 30. 526 | LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 31. 527 | LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' 528 | (Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31. 529 | LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' 530 | (Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31. 531 | \symbold=\mathgroup6 532 | \symitalic=\mathgroup7 533 | LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 34. 534 | LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' 535 | (Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34. 536 | LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' 537 | (Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34. 538 | LaTeX Font Info: Redeclaring math alphabet \mathit on input line 35. 539 | LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' 540 | (Font) OT1/cmr/m/it --> OT1/ptm/m/it on input line 35. 541 | LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' 542 | (Font) OT1/cmr/bx/it --> OT1/ptm/m/it on input line 35. 543 | LaTeX Info: Redefining \hbar on input line 50. 544 | ) 545 | (c:/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def 546 | File: l3backend-xdvipdfmx.def 2020-03-12 L3 backend support: xdvipdfmx 547 | \g__graphics_track_int=\count294 548 | \l__pdf_internal_box=\box61 549 | \g__pdf_backend_object_int=\count295 550 | \g__pdf_backend_annotation_int=\count296 551 | ) 552 | (./PAPER.aux) 553 | \openout1 = `PAPER.aux'. 554 | 555 | LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 32. 556 | LaTeX Font Info: ... okay on input line 32. 557 | LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 32. 558 | LaTeX Font Info: ... okay on input line 32. 559 | LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 32. 560 | LaTeX Font Info: ... okay on input line 32. 561 | LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 32. 562 | LaTeX Font Info: ... okay on input line 32. 563 | LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 32. 564 | LaTeX Font Info: Trying to load font information for TS1+cmr on input line 3 565 | 2. 566 | (c:/texlive/2020/texmf-dist/tex/latex/base/ts1cmr.fd 567 | File: ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions 568 | ) 569 | LaTeX Font Info: ... okay on input line 32. 570 | LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 32. 571 | LaTeX Font Info: ... okay on input line 32. 572 | LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 32. 573 | LaTeX Font Info: ... okay on input line 32. 574 | LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 32. 575 | LaTeX Font Info: ... okay on input line 32. 576 | LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 32. 577 | LaTeX Font Info: ... okay on input line 32. 578 | LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 32. 579 | LaTeX Font Info: ... okay on input line 32. 580 | LaTeX Font Info: Trying to load font information for T1+ptm on input line 32 581 | . 582 | 583 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/t1ptm.fd 584 | File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. 585 | ) 586 | *geometry* driver: auto-detecting 587 | *geometry* detected driver: xetex 588 | *geometry* verbose mode - [ preamble ] result: 589 | * driver: xetex 590 | * paper: a4paper 591 | * layout: 592 | * layoutoffset:(h,v)=(0.0pt,0.0pt) 593 | * modes: 594 | * h-part:(L,W,R)=(71.13188pt, 455.24411pt, 71.13188pt) 595 | * v-part:(T,H,B)=(71.13188pt, 731.23584pt, 42.67912pt) 596 | * \paperwidth=597.50787pt 597 | * \paperheight=845.04684pt 598 | * \textwidth=455.24411pt 599 | * \textheight=731.23584pt 600 | * \oddsidemargin=-1.1381pt 601 | * \evensidemargin=-1.1381pt 602 | * \topmargin=-38.1381pt 603 | * \headheight=15.0pt 604 | * \headsep=25.0pt 605 | * \topskip=12.0pt 606 | * \footskip=30.0pt 607 | * \marginparwidth=44.0pt 608 | * \marginparsep=10.0pt 609 | * \columnsep=10.0pt 610 | * \skip\footins=10.8pt plus 4.0pt minus 2.0pt 611 | * \hoffset=0.0pt 612 | * \voffset=0.0pt 613 | * \mag=1000 614 | * \@twocolumnfalse 615 | * \@twosidefalse 616 | * \@mparswitchfalse 617 | * \@reversemarginfalse 618 | * (1in=72.27pt=25.4mm, 1cm=28.453pt) 619 | 620 | Package lastpage Info: Please have a look at the pageslts package at 621 | (lastpage) https://www.ctan.org/pkg/pageslts 622 | (lastpage) ! on input line 32. 623 | Package caption Info: Begin \AtBeginDocument code. 624 | Package caption Info: hyperref package is loaded. 625 | Package caption Info: listings package is loaded. 626 | Package caption Info: longtable package is loaded. 627 | (c:/texlive/2020/texmf-dist/tex/latex/caption/ltcaption.sty 628 | Package: ltcaption 2018/08/26 v1.4a longtable captions (AR) 629 | ) 630 | Package caption Info: subfigure package is loaded. 631 | Package caption Info: threeparttable package is loaded. 632 | Package caption Info: End \AtBeginDocument code. 633 | \AtBeginShipoutBox=\box62 634 | Package hyperref Info: Link coloring ON on input line 32. 635 | 636 | (c:/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty 637 | Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section 638 | 639 | (c:/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty 640 | Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) 641 | ) 642 | (c:/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty 643 | Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) 644 | ) 645 | \c@section@level=\count297 646 | ) 647 | LaTeX Info: Redefining \ref on input line 32. 648 | LaTeX Info: Redefining \pageref on input line 32. 649 | LaTeX Info: Redefining \nameref on input line 32. 650 | 651 | (./PAPER.out) (./PAPER.out) 652 | \@outlinefile=\write4 653 | \openout4 = `PAPER.out'. 654 | 655 | \c@lstlisting=\count298 656 | LaTeX Font Info: Trying to load font information for OT1+ztmcm on input line 657 | 38. 658 | 659 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/ot1ztmcm.fd 660 | File: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm. 661 | ) 662 | LaTeX Font Info: Trying to load font information for OML+ztmcm on input line 663 | 38. 664 | 665 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/omlztmcm.fd 666 | File: omlztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm. 667 | ) 668 | LaTeX Font Info: Trying to load font information for OMS+ztmcm on input line 669 | 38. 670 | 671 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/omsztmcm.fd 672 | File: omsztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm. 673 | ) 674 | LaTeX Font Info: Trying to load font information for OMX+ztmcm on input line 675 | 38. 676 | 677 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/omxztmcm.fd 678 | File: omxztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm. 679 | ) 680 | LaTeX Font Info: Trying to load font information for OT1+ptm on input line 3 681 | 8. 682 | 683 | (c:/texlive/2020/texmf-dist/tex/latex/psnfss/ot1ptm.fd 684 | File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. 685 | ) 686 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available 687 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 38. 688 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available 689 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 38. 690 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available 691 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 38. 692 | 693 | (c:/texlive/2020/texmf-dist/tex/generic/stringenc/se-ascii-print.def 694 | File: se-ascii-print.def 2019/11/29 v1.12 stringenc: Printable ASCII characters 695 | 696 | ) [1 697 | 698 | ] 699 | (./PAPER.toc) 700 | \tf@toc=\write5 701 | \openout5 = `PAPER.toc'. 702 | 703 | [2] 704 | File: ./img/work.pdf Graphic file (type pdf) 705 | 706 | [3 707 | 708 | ] 709 | File: ./img/dp.pdf Graphic file (type pdf) 710 | 711 | [4] 712 | Missing character: There is no : in font ptmr8t! 713 | [5] [6] 714 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10.95> not available 715 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 295. 716 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available 717 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 295. 718 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <6> not available 719 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 295. 720 | File: ./img/plot.pdf Graphic file (type pdf) 721 | 722 | [7] 723 | Overfull \hbox (0.11023pt too wide) in paragraph at lines 362--363 724 | \T1/ptm/m/n/12 SNA anal-y-sis to ex-plore each mu-si-cian's in-flu-ence on pre- 725 | de-ces-sors and on ju-niors $\OML/ztmcm/m/it/12 EI[] [] EI[]$\T1/ptm/m/n/12 , 726 | [] 727 | 728 | File: ./img/sub.pdf Graphic file (type pdf) 729 | 730 | [8] 731 | File: ./img/model2.pdf Graphic file (type pdf) 732 | 733 | 734 | Overfull \hbox (12.66397pt too wide) in paragraph at lines 386--386 735 | |[]\T1/ptm/b/n/14.4 Establishment of Multi-dimensional Mu-sic Sim-i-lar-ity Eva 736 | l-u-a-tion Model| 737 | [] 738 | 739 | [9] [10] 740 | File: ./img/all.pdf Graphic file (type pdf) 741 | 742 | [11] 743 | File: ./img/quanju.pdf Graphic file (type pdf) 744 | 745 | File: ./img/jubu.pdf Graphic file (type pdf) 746 | 747 | [12] 748 | File: ./img/pca1.pdf Graphic file (type pdf) 749 | 750 | [13] 751 | File: ./img/model.pdf Graphic file (type pdf) 752 | 753 | 754 | Overfull \hbox (10.65845pt too wide) in paragraph at lines 631--647 755 | [][][] 756 | [] 757 | 758 | [14] 759 | File: ./img/time.pdf Graphic file (type pdf) 760 | 761 | [15] 762 | File: ./img/subtime.pdf Graphic file (type pdf) 763 | 764 | 765 | Overfull \hbox (7.9423pt too wide) in paragraph at lines 699--699 766 | |[]\T1/ptm/b/n/17.28 Task 4 :Long-Short Term In-flu-ence Eval-u-a-tion Model Ba 767 | sed 768 | [] 769 | 770 | File: ./img/model3.pdf Graphic file (type pdf) 771 | 772 | [16] [17] 773 | Overfull \hbox (2.91707pt too wide) in paragraph at lines 811--824 774 | [][][] 775 | [] 776 | 777 | [18] 778 | File: ./img/musician.pdf Graphic file (type pdf) 779 | 780 | [19] [20] 781 | File: ./img/emotion.pdf Graphic file (type pdf) 782 | 783 | [21] 784 | File: ./img/pop.pdf Graphic file (type pdf) 785 | 786 | File: ./img/sa1.pdf Graphic file (type pdf) 787 | 788 | [22] 789 | Missing character: There is no , in font ptmr8t! 790 | File: ./img/sa21.pdf Graphic file (type pdf) 791 | 792 | [23] 793 | LaTeX Font Info: Trying to load font information for T1+lmtt on input line 1 794 | 052. 795 | 796 | (c:/texlive/2020/texmf-dist/tex/latex/lm/t1lmtt.fd 797 | File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern 798 | ) 799 | Underfull \hbox (badness 1552) in paragraph at lines 1062--1064 800 | []\T1/ptm/m/n/12 Zadeh, Farkhon-deh Kho-rashadi,Nossent, Jiri,Sarrazin, Fanny, 801 | et al.\T1/ptm/m/it/12 Comparison of 802 | [] 803 | 804 | [24] 805 | 806 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 807 | (hyperref) removing `\-command' on input line 1070. 808 | 809 | 810 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 811 | (hyperref) removing `\\' on input line 1070. 812 | 813 | 814 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 815 | (hyperref) removing `\@centercr' on input line 1070. 816 | 817 | 818 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 819 | (hyperref) removing `\rightskip' on input line 1070. 820 | 821 | 822 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 823 | (hyperref) removing `\@flushglue' on input line 1070. 824 | 825 | 826 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 827 | (hyperref) removing `\leftskip' on input line 1070. 828 | 829 | 830 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 831 | (hyperref) removing `\@flushglue' on input line 1070. 832 | 833 | 834 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 835 | (hyperref) removing `\parindent' on input line 1070. 836 | 837 | 838 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 839 | (hyperref) removing `\z@' on input line 1070. 840 | 841 | 842 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 843 | (hyperref) removing `\parfillskip' on input line 1070. 844 | 845 | 846 | Package hyperref Warning: Token not allowed in a PDF string (Unicode): 847 | (hyperref) removing `\z@skip' on input line 1070. 848 | 849 | Missing character: There is no : in font ptmr8t! 850 | 851 | AED: lastpage setting LastPage 852 | [25 853 | 854 | ] 855 | Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1112. 856 | Package atveryend Info: Empty hook `AfterLastShipout' on input line 1112. 857 | (./PAPER.aux) 858 | Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 1112. 859 | Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1112. 860 | 861 | Package rerunfilecheck Info: File `PAPER.out' has not changed. 862 | (rerunfilecheck) Checksum: 5520C772928E803D725D467C56B4CCD2;4174. 863 | Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1112. 864 | ) 865 | Here is how much of TeX's memory you used: 866 | 14805 strings out of 479418 867 | 211580 string characters out of 5888105 868 | 496432 words of memory out of 5000000 869 | 32065 multiletter control sequences out of 15000+600000 870 | 593104 words of font info for 93 fonts, out of 8000000 for 9000 871 | 1348 hyphenation exceptions out of 8191 872 | 49i,17n,50p,973b,423s stack positions out of 5000i,500n,10000p,200000b,80000s 873 | 874 | Output written on PAPER.pdf (25 pages). 875 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.out: -------------------------------------------------------------------------------- 1 | \BOOKMARK [1][]{section.0.1}{1\040Introduction}{}% 1 2 | \BOOKMARK [2][]{subsection.0.1.1}{1.1\040Background\040and\040Problem\040Statement}{section.0.1}% 2 3 | \BOOKMARK [2][]{subsection.0.1.2}{1.2\040Our\040work}{section.0.1}% 3 4 | \BOOKMARK [1][]{section.0.2}{2\040Preparation\040of\040the\040Models}{}% 4 5 | \BOOKMARK [2][]{subsection.0.2.1}{2.1\040Assumptions}{section.0.2}% 5 6 | \BOOKMARK [2][]{subsection.0.2.2}{2.2\040Notations}{section.0.2}% 6 7 | \BOOKMARK [1][]{section.0.3}{3\040Task\0401:\040Musical\040Influence\040Network\040Analysis\040Based\040on\040SNA}{}% 7 8 | \BOOKMARK [2][]{subsection.0.3.1}{3.1\040Data\040Processing}{section.0.3}% 8 9 | \BOOKMARK [2][]{subsection.0.3.2}{3.2\040Model\040Overview}{section.0.3}% 9 10 | \BOOKMARK [2][]{subsection.0.3.3}{3.3\040Musical\040Influence\040Network\040Analysis\040Based\040on\040SNA}{section.0.3}% 10 11 | \BOOKMARK [3][]{subsubsection.0.3.3.1}{3.3.1\040Establishment\040of\040Musical\040Influence\040Network\040and\040Analysis\040Using\040SNA}{subsection.0.3.3}% 11 12 | \BOOKMARK [3][]{subsubsection.0.3.3.2}{3.3.2\040Model\040Test\040on\040Musical\040Influence\040Network}{subsection.0.3.3}% 12 13 | \BOOKMARK [2][]{subsection.0.3.4}{3.4\040Analysis\040of\040The\040Result}{section.0.3}% 13 14 | \BOOKMARK [2][]{subsection.0.3.5}{3.5\040Analysis\040of\040Musical\040Influence\040Sub-network}{section.0.3}% 14 15 | \BOOKMARK [1][]{section.0.4}{4\040Task\0402\040&\0403:\040Multi-dimensional\040Music\040Similarity\040Evaluation\040Model}{}% 15 16 | \BOOKMARK [2][]{subsection.0.4.1}{4.1\040Model\040Overview}{section.0.4}% 16 17 | \BOOKMARK [2][]{subsection.0.4.2}{4.2\040Establishment\040of\040Multi-dimensional\040Music\040Similarity\040Evaluation\040Model}{section.0.4}% 17 18 | \BOOKMARK [3][]{subsubsection.0.4.2.1}{4.2.1\040Global\040Similarity\040of\040Music}{subsection.0.4.2}% 18 19 | \BOOKMARK [3][]{subsubsection.0.4.2.2}{4.2.2\040Partial\040Similarity\040of\040Music}{subsection.0.4.2}% 19 20 | \BOOKMARK [3][]{subsubsection.0.4.2.3}{4.2.3\040Fashion\040Trends\040Impact\040Factor}{subsection.0.4.2}% 20 21 | \BOOKMARK [2][]{subsection.0.4.3}{4.3\040Evaluation\040of\040Music\040Similarity}{section.0.4}% 21 22 | \BOOKMARK [2][]{subsection.0.4.4}{4.4\040Analysis\040of\040the\040Musical\040Discrimination\040and\040Influences\040of\040Genres}{section.0.4}% 22 23 | \BOOKMARK [3][]{subsubsection.0.4.4.1}{4.4.1\040Discrimination\040Evaluation\040Model\040of\040Feature\040Combination}{subsection.0.4.4}% 23 24 | \BOOKMARK [3][]{subsubsection.0.4.4.2}{4.4.2\040Analysis\040of\040Genre\040Changes\040Over\040Time}{subsection.0.4.4}% 24 25 | \BOOKMARK [1][]{section.0.5}{5\040Task\0404\040:Long-Short\040Term\040Influence\040Evaluation\040Model\040Based\040on\040Sliding\040Window}{}% 25 26 | \BOOKMARK [2][]{subsection.0.5.1}{5.1\040Establishment\040of\040Sliding\040Window\040Model}{section.0.5}% 26 27 | \BOOKMARK [2][]{subsection.0.5.2}{5.2\040Test\040of\040the\040Established\040Model}{section.0.5}% 27 28 | \BOOKMARK [2][]{subsection.0.5.3}{5.3\040Contagious\040Evaluation\040of\040Musical\040Characteristics}{section.0.5}% 28 29 | \BOOKMARK [1][]{section.0.6}{6\040Task\0405\040&\0406\040&\0407:\040Analysis\040of\040Music\040Revolution\040Over\040Time}{}% 29 30 | \BOOKMARK [2][]{subsection.0.6.1}{6.1\040The\040Identification\040of\040the\040Musical\040revolution}{section.0.6}% 30 31 | \BOOKMARK [2][]{subsection.0.6.2}{6.2\040Major\040Influencers\040of\040Revolution}{section.0.6}% 31 32 | \BOOKMARK [2][]{subsection.0.6.3}{6.3\040Dynamic\040Influencer\040Evaluation\040Indicator}{section.0.6}% 32 33 | \BOOKMARK [2][]{subsection.0.6.4}{6.4\040Influence\040from\040Social,\040Political\040and\040Cultural\040Aspects}{section.0.6}% 33 34 | \BOOKMARK [1][]{section.0.7}{7\040Sensitive\040Analysis}{}% 34 35 | \BOOKMARK [2][]{subsection.0.7.1}{7.1\040Sensitive\040Analysis\040of\040Model\040in\040Task\0402\040}{section.0.7}% 35 36 | \BOOKMARK [2][]{subsection.0.7.2}{7.2\040Sensitive\040Analysis\040of\040Model\040in\040Task\0404\040}{section.0.7}% 36 37 | \BOOKMARK [1][]{section.0.8}{8\040Strengths\040and\040Weaknesses}{}% 37 38 | \BOOKMARK [2][]{subsection.0.8.1}{8.1\040Strengths}{section.0.8}% 38 39 | \BOOKMARK [2][]{subsection.0.8.2}{8.2\040Weaknesses}{section.0.8}% 39 40 | \BOOKMARK [1][]{section.0.9}{References}{}% 40 41 | \BOOKMARK [1][]{section.0.10}{MEMO}{}% 41 42 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/PAPER.synctex.gz -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.tex: -------------------------------------------------------------------------------- 1 | %% 美赛模板:正文部分 2 | 3 | \documentclass[12pt]{article} % 官方要求字号不小于 12 号,此处选择 12 号字体 4 | 5 | % 本模板不需要填写年份,以当前电脑时间自动生成 6 | % 请在以下的方括号中填写队伍控制号 7 | \usepackage[2107091]{easymcm} % 载入 EasyMCM 模板文件. 8 | \usepackage{listings} 9 | \usepackage{xcolor} 10 | \usepackage{booktabs} 11 | \usepackage{pythonhighlight} 12 | \usepackage{graphicx} 13 | \usepackage{subfigure} 14 | \usepackage{threeparttable} 15 | \problem{D} % 请在此处填写题号 16 | \usepackage{mathptmx} % 这是 Times 字体,中规中矩 17 | %\usepackage{mathpazo} % 这是 COMAP 官方杂志采用的更好看的 Palatino 字体,可替代以上的 mathptmx 宏包 18 | 19 | 20 | \title{How Does Musical Influence Lead to Musical Revolution?} % 标题 21 | 22 | % 如需要修改题头(默认为 MCM/ICM),请使用以下命令(此处修改为 MCM) 23 | %\renewcommand{\contest}{MCM} 24 | \newenvironment{shrinkeq}[1] 25 | { \bgroup 26 | \addtolength\abovedisplayshortskip{#1} 27 | \addtolength\abovedisplayskip{#1} 28 | \addtolength\belowdisplayshortskip{#1} 29 | \addtolength\belowdisplayskip{#1}} 30 | {\egroup\ignorespacesafterend} 31 | % 文档开始 32 | \begin{document} 33 | 34 | % 此处填写摘要内容 35 | \begin{abstract} 36 | During the revolution of music, interactions within and between genres can have a critical impact on the direction of musical change. In this paper, we develop models to analyze the influence between musicians, measure the degree of similarity between music, and reveal the changes in genres over time, as well as the influence of social, cultural, and historical aspects. 37 | 38 | In \textsc{Task 1:} First, we take each musician as a node and calculate the directed influence between musicians as weights by considering the factors of \textbf{time span} and \textbf{genre span} to build a \textbf{directed music influence network}. Then we use social network analysis (\textbf{SNA}) to analyze the influence network. The Degree Centrality of musicians in the network is calculated, and the \textbf{Pagerank-modified eigenvector centrality} is further used to measure the influence of musicians$(MI)$, obtaining that Bob Dylan, The Rolling Stones, Chuck Berry, and Elvis Presley have the highest influence. We also find that $MI$ obeys \textbf{power-law distribution}, implying that the influence network between influencers and followers is a \textbf{scale-free network}. Finally, we explore the sub-network to analyze the meaning of the subset of $MI$. 39 | 40 | In \textsc{Task 2 \& 3:} First, we use Cosine similarity and Euclidean similarity to measure \textbf{global similarity} $S_{global}$ and \textbf{local similarity} $S_{part}$ in two aspects of music, and consider the influence of popular trends to build \textbf{Multi-dimensional music similarity evaluation model} to measure the similarity of music $(MS)$. Music within genres is found to be more similar than between genres. Then, to investigate the distinguishing features of genres, we combine different features and built the \textbf{Discrimination evaluation model of feature combination} to select the feature combinations that better distinguish genres from each other. Finally, we analyze changes in genres over time. 41 | 42 | In \textsc{Task 4:} To investigate whether the influencers actually influence the followers' music, we develop a \textbf{Long-short term influence model based on sliding window} to calculate the influence degree score $(IDS)$, considering the time sequence of release of the followers' music and the influencers' music, and determine the influence threshold. The result shows that followers are indeed influenced by the influencers. Subsequently, to determine the "contagiousness" of specific musical characteristics to musicians, we also consider specific musical characteristics, analyze the degree of closeness $(DC)$ of characteristics of followers' and influencers' music, and establish the \textbf{Contagious evaluation model of musical characteristics} to find the most contagious musical characteristics for different followers. 43 | 44 | In \textsc{Task 5 \& 6 \& 7:} First we establish \textbf{constraint equations} to identify musical revolution points based on the musical characteristics of the genre and the number of musicians in the genre. And based on the \emph{popularity} before and after the musical revolution point to identify the main influencers in the musical revolution. Then we take 10 years as the examination period to calculate the $IDS$ of the analyzed object to everyone within the genre based on the $IDS$ in Task 4, and weight the sum to get the dynamic influencer index $(DII)$ for identifying the leading figures within the genre in different generations. Ultimately, we analyze the relationship between music and politics, culture, and society. 45 | 46 | Finally, we perform a sensitivity analysis of the model and investigate the effect of changes in the variable parameters of the model on the results. 47 | 48 | % 美赛论文中无需注明关键字。若您一定要使用, 49 | % 请将以下两行的注释号 '%' 去除,以使其生效 50 | \noindent\textbf{Keywords}: SNA, Slide Window, Scale-free Network, Pareto's Principle, PageRank, Combination of Features 51 | 52 | \end{abstract} 53 | 54 | \maketitle % 生成 Summary Sheet 55 | \tableofcontents % 生成目录 56 | 57 | 58 | % 正文开始 59 | \section{Introduction} 60 | \vspace{-0.5cm} 61 | \subsection{Background and Problem Statement} 62 | \vspace{-0.2cm} 63 | Music is a cultural product that people use to express their emotions and relax their bodies and minds. The influence of musicians on each other has a very important impact on the development and evolution of music. The development of computer technology allows us unprecedented access to data and computing power to analyze the network of influences between musicians, from which we can extract and analyze the key factors that influence the process of musical development, which will also help us understand the meaning of music better. In this problem, we need to accomplish the following objectives: 64 | 65 | $\bullet$ Create a music influence network to analyze the influence between musicians and capture the music influence parameters in the influence network. 66 | 67 | $\bullet$ Develop similarity evaluation model to explore the degree of influence and similarity between or within genres and between musicians. 68 | 69 | $\bullet$ Identify indicators of revolution in genres and analyze the interplay between them in relation to society, politics, and culture. 70 | 71 | $\bullet$ Applying a dynamic analysis of the similarities and influences between and within genres of musicians over time. 72 | 73 | %\begin{itemize} 74 | % \setlength{\parsep}{0ex} %段落间距 75 | % \setlength{\topsep}{2ex} %列表到上下文的垂直距离 76 | % \setlength{\itemsep}{1ex} %条目间距 77 | % \item Part 1 asks us to describe the energy use of each state using the data given. Then build a model to describe the energy use of the four states and analyze the influencing factors of different energy use in different states. Establish the evaluation index of renewable energy use and select the state with the best evaluation. The final projections are for energy use in 2025 and 2050. 78 | % \item Part 2 asks us to set targets for renewable energy use by 2025 and 2050, defined as "best" levels of clean and renewable energy use, and to specify policies and actions for the four states to meet the targets. 79 | % \item Part 3 asks us to prepare a memorandum summarizing the status as of 2009, the forecast for energy use and the proposed energy July target. 80 | %\end{itemize} 81 | 82 | \vspace{-0.5cm} 83 | \subsection{Our work} 84 | \vspace{-0.3cm} 85 | The work we have done in this problem is mainly shown in the following Figure\eqref{fig:work}. 86 | \vspace{-0.3cm} 87 | \begin{figure}[htbp] 88 | \centering 89 | \includegraphics[width=.99\textwidth]{work.pdf} 90 | \caption{Our Work}\label{fig:work} 91 | \end{figure} 92 | \vspace{-0.8cm} 93 | \section{Preparation of the Models} 94 | \vspace{-0.5cm} 95 | \subsection{Assumptions} 96 | \vspace{-0.3cm} 97 | We made the following assumptions to help us with our modeling. These assumptions are the promise of our subsequent analysis. 98 | 99 | $\bullet$ Assuming that the data is accurate and there is no falsified data: This means our analysis accords with the truth. 100 | 101 | $\bullet$ Assuming that followers can only be influenced by songs released before the current year, and that songs after the current year have no effect on the follower's for that year: this is done to measure the true influenceability of the influencers in a sliding window model. 102 | 103 | $\bullet$ Assuming that the decade when the musician begin his carrer is the year when they debut, because the accurate years when the musicians debut are not given. 104 | 105 | $\bullet$ Assuming that the musician's genre is limited to the genre provided by the data, and have no genre changes, that all his/her songs are in the style of his or her genre 106 | \vspace{-0.6cm} 107 | 108 | \subsection{Notations} 109 | \vspace{-0.3cm} 110 | The primary notations used in this paper are listed in Table 1. 111 | \vspace{-0.4cm} 112 | \begin{table}[!htbp] 113 | \caption{Parameter Settings}\label{tab001} \centering 114 | \begin{tabular}{cc} 115 | \toprule[1.5pt] 116 | \makebox[0.25\textwidth][c]{parameter} & \makebox[0.45\textwidth][c]{description}\\ 117 | \toprule[1.25pt] 118 | $T$ & time-span influence factor\\ 119 | $D_{Ci}$ & degree centrality\\ 120 | $E_{Ci}$ & eigenvector centrality\\ 121 | $MI$ & music influence\\ 122 | $S_{global}$ & global similarity\\ 123 | $S_{part}$ & partial similarity\\ 124 | $V^{(i)}$& music feature vector\\ 125 | $MS$ & multi-similarity\\ 126 | $SMS$ & short-term similarity\\ 127 | $LMS$ & long-term similarity\\ 128 | $IDS$ & influence degree score\\ 129 | $DC$ & degree of closeness\\ 130 | $DII$ & dynamic influencer indicator\\ 131 | \bottomrule[1.5pt] 132 | \end{tabular} 133 | \end{table} 134 | \vspace{-0.6cm} 135 | \section{\textsc{Task 1}: Musical Influence Network Analysis Based on SNA} 136 | \vspace{-0.5cm} 137 | \subsection{Data Processing} 138 | \vspace{-0.3cm} 139 | An overview of the given data shows that some songs are sung by more than one person (e.g. \emph{It Can't Happen Here} and \emph{I Wonder If I Take You Home}), and such songs cannot reflect the characteristics of a single musician, so to avoid disturbing the model, we remove the data of a total of 4410 chorus songs (4.4\% of the original data). Since there are singers with only choral music, they have no music data after the deletion of choral music, which are invalid data. We remove these people, including those who are not shared between two dataset, to prevent any effect on the model. The data processing is shown in the Figure\eqref{fig:dp}. 140 | \vspace{-0.3cm} 141 | \begin{figure}[htbp] 142 | \centering 143 | \includegraphics[width=.75\textwidth]{dp.pdf} 144 | \caption{Data Processing}\label{fig:dp} 145 | \end{figure} 146 | \vspace{-0.8cm} 147 | \subsection{Model Overview} 148 | To analyze the musical influences among musicians, we establish a directed network of musical influences with each musician as a node and directional influences among musicians as weights. We then further explore the influence among musicians using social network analysis (SNA) to capture the \emph{music influence} in the network to measure the influence of each musician. Finally, we explore the sub-networks of the influence network and explore the significance of \emph{music influence} in the sub-networks. 149 | \vspace{-0.5cm} 150 | \subsection{Musical Influence Network Analysis Based on SNA} 151 | \vspace{-0.2cm} 152 | \subsubsection{Establishment of Musical Influence Network and Analysis Using SNA} 153 | \noindent$\blacktriangleright\ $\textbf{\large{Establishment of Musical Influence Network}} 154 | 155 | The directed graph can be well used to describe the mutual influence relationship among musicians. Based on the relationship between influencers and followers among musicians given by \emph{influence\_data}, we build a directed network of musical influence among musicians with each musician as a node and the directed influence among musicians as a weight. 156 | 157 | Exploring the data reveals that the types of influence between musicians are divided into two categories: influence within the same genre and influence among different genres. Influence among musicians exists not only that a predecessor influences a junior, but also that a junior influences a predecessor. Therefore, we classify the types of inter-musician influence as follows. 158 | 159 | \textbf{From genre span}: Influence occurs within the same genre and between different genres. 160 | 161 | \textbf{From time span}: Junior influences predecessor and predecessor influences junior. 162 | 163 | %\begin{itemize} 164 | % \setlength{\parsep}{-0.5ex} %段落间距 165 | % \setlength{\topsep}{-0.5ex} %列表到上下文的垂直距离 166 | % \setlength{\itemsep}{1ex} %条目间距 167 | % \item \textbf{From genre span}: Influence occurs between the same genre and different genres. 168 | % \item \textbf{From time span}: Junior influences predecessor and predecessor influences junior. 169 | %\end{itemize} 170 | 171 | Fully considering the difference between the span of genres and the span of time in which the influence occurs, we define the weight of each side of the music influence network: 172 | 173 | $\bullet$ \textbf{Time span impact factor} 174 | 175 | Assuming that existing musician $i$ influences musician $j$, the time difference $\Delta t$ is defined as follows: 176 | \vspace{-0.1cm} 177 | \begin{shrinkeq}{-1.5ex} 178 | \begin{equation} 179 | \Delta t=t_j-t_i 180 | \end{equation} 181 | \end{shrinkeq} 182 | 183 | 184 | where $t_i$ and $t_j$ are the debut times of musician $i$ and musician $j$, respectively. 185 | 186 | In general, juniors are more likely to be influenced by predecessors as they grow up, while predecessors are less likely to be influenced by juniors. Therefore, we can conclude that the probability of the older generation being influenced by the younger generation is lower. And if this happens, it means the influence of the younger generation is very strong. Compared to predecessors influencing juniors, juniors influencing predecessors should be considered that the juniors have a stronger influence. We therefore define the time-span influence factor $T$ as follows: 187 | 188 | \begin{shrinkeq}{-1.5ex} 189 | \begin{equation}\label{eq:time} 190 | T=\begin{cases} 191 | -\beta\Delta t, \ \ \ \ \ \text{if }\Delta t<0\\ 192 | \ \ \ \ \ \Delta t, \ \ \ \ \ \text{if }\Delta t \ge0 193 | \end{cases} 194 | \end{equation} 195 | 196 | \end{shrinkeq} 197 | 198 | 199 | In equation\eqref{eq:time}, $\beta$ is a set parameter and $\beta>1$, indicating the difference in the effect of the two influence categories. 200 | 201 | $\bullet$ \textbf{Genre span impact factor} 202 | 203 | Generally speaking, musicians in the same genre are more likely to influence each other because they share the same direction and research areas. In contrast, musicians from different genres are less likely to influence each other because their work styles rarely overlap. Therefore, we argue that cross-genre influencers have stronger influence compared to within-genre influencers. The genre-spanning influence factor $a_{ij}$ between influencer $i$ and follower $j$ is given as follows: 204 | 205 | \begin{shrinkeq}{-1.5ex} 206 | \begin{equation} 207 | a_{ij}= 208 | \begin{cases} 209 | 1,\ \ \ \ \ \text{cross-genre}\\ 210 | 0,\ \ \ \ \ \text{within-genre} 211 | \end{cases} 212 | \end{equation} 213 | \end{shrinkeq} 214 | 215 | $\bullet$ \textbf{Edge weights of a directed graph} 216 | 217 | Combining the above analysis on the time span and genre span impact factors, we give the formula for the directed graph weights $w_{ij}$ as follows: 218 | \begin{shrinkeq}{-1.5ex} 219 | \begin{equation}\label{eq:weight} 220 | w_{ij}=(1+a_{ij})\cdot e^{\frac{T}{80}} 221 | \end{equation} 222 | \end{shrinkeq} 223 | 224 | In equation\eqref{eq:weight}, $w_{ij}$ is the weight of the directed edge between musician nodes $i$ to $j$. The time interval $|\Delta t|$ between the influencer and the influenced is at most $80$, so T is normalized using $\frac{T}{80}$. $w_{ij}$ also represents the intensity of the influence of musician $i$ on musician $j$. The larger the value of $w_{ij}$, the stronger the intensity of musician $i$'s influence. 225 | 226 | \noindent$\blacktriangleright\ $\textbf{\large{SNA Network Analysis Method}} 227 | 228 | In order to capture the \emph{musical influence} in the established musical influence directed network, we analyze the directed network using social network analysis (SNA) method\cite{1}. The influence of each musician is measured and analyzed by calculating the Degree Centrality of each musician in the musical influence directed network and further calculating the Eigenvector Centrality modified by the PageRank idea. The specific steps are as follows: 229 | 230 | \textbf{\emph{Step 1}: Calculating Degree Centrality} 231 | 232 | \emph{In an undirected network, the degree of a node can be used to measure the centrality of that point.} Analogously, in the music influence directed network we built, we can use the sum of the out-degree weights of a node to measure the importance of a node's influence at the microscopic level. The assumption behind this metric is that nodes with many connections are important nodes, which means that musicians who have an impact on more people have a stronger influence. We therefore give the definition of degree centrality $(D_{Ci})$ for point $i$ as shown in the equation\eqref{eq:DC} 233 | \begin{shrinkeq}{-1.5ex} 234 | \begin{equation}\label{eq:DC} 235 | D_{Ci}=\sum\limits_{j=1}^{n}w_{ij}d_{ij} 236 | \end{equation} 237 | \end{shrinkeq} 238 | 239 | %\begin{equation}\label{eq:DC} 240 | % D_{Ci}=\sum\limits_{j=1}^{n}w_{ij}d_{ij} 241 | %\end{equation} 242 | 243 | In equation\eqref{eq:DC} $n$ represents the total number of nodes in the network and $d_{ij}$ denotes the existence of directed edges between node $i$ to node $j$. And $d_{ij}$ is defined as follows: 244 | 245 | \begin{shrinkeq}{-1.5ex} 246 | \begin{equation} 247 | d_{ij}=\begin{cases} 248 | 1,\ \ \ \ \ \text{no directed edge }from\ i\ to\ j\\ 249 | 0,\ \ \ \ \ \text{there is directed edge } from\ i\ to\ j 250 | \end{cases} 251 | \end{equation} 252 | \end{shrinkeq} 253 | 254 | 255 | \textbf{\emph{Step 2}: Calculating Eigenvector Centrality} 256 | 257 | The importance of a node depends both on the number of its neighboring nodes and on the importance of its neighboring nodes. This means that the more important the nodes connected to node $i$, the more important node $i$ will be. We define the eigenvector centrality $E_{Ci}$ to measure the importance of node $i$ at the macro level, as shown in the iterative equation\eqref{eq:EC} 258 | \begin{shrinkeq}{-1.5ex} 259 | \begin{equation}\label{eq:EC} 260 | \mbox{\emph{iterative equation:} \ \ \ } E_{Ci}=\lambda\sum\limits_{j=1}^{n}d_{ij}E_{Cj} 261 | \end{equation} 262 | \end{shrinkeq} 263 | 264 | where $lambda$ is a scaling constant and the initial value of the iteration is set in the equation\eqref{eq:set} 265 | \begin{shrinkeq}{-1.5ex} 266 | \begin{equation}\label{eq:set} 267 | \mbox{\emph{initial value:} \ \ \ }E_{Cj}=D_{Cj},\ \ \ j=1\sim n 268 | \end{equation} 269 | \end{shrinkeq} 270 | 271 | However, for the directed network we build, the above analysis process only takes the importance of neighboring nodes into account. To increase the influence of the nodes themselves on the outside, we modify the equation based on the PageRank idea. 272 | 273 | PageRank\cite{2} is an algorithm proposed by Sergey Brin and Lawrence Page to rank the importance of nodes in a network. The PageRank algorithm assumes that a node exerts influence on the system is the result of its own influence combining with the results of its followers' influences. Therefore, we modify the model shown in the following equation: Therefore, we modify the model shown in the following equation: 274 | 275 | \begin{shrinkeq}{-1.5ex} 276 | \begin{equation} 277 | \mbox{\emph{iterative equation:} \ \ \ } E_{Ci}=\lambda\sum\limits_{j=1}^{n}d_{ij}E_{Cj}+(1-\lambda)E_{Ci} 278 | \end{equation} 279 | \end{shrinkeq} 280 | 281 | After several iterations, $E_{Ci}$ converges to a fixed value $E_{Ci}'$. We define the \emph{musical influence} $(MI_i)$ of musician $i$ as follows: 282 | \begin{shrinkeq}{-1.5ex} 283 | \begin{equation} 284 | MI_i=\frac{E_{Ci}'}{max\{E_{Cj}',\ j=1,2,\cdots,n \}} 285 | \end{equation} 286 | \end{shrinkeq} 287 | \vspace{-0.7cm} 288 | \subsubsection{Model Test on Musical Influence Network} 289 | \vspace{-0.4cm} 290 | Using all data given in the \emph{influence\_data}, the \emph{musical influence} ($MI$) of each musician is calculated, and the $MI$ of somes musician are shown in the Table\eqref{tab:best}. 291 | 292 | \vspace{-0.5cm} 293 | \begin{table}[htbp] 294 | \centering 295 | \caption{$MI$ of Musicians} 296 | \begin{tabular}{cc|cc} 297 | \hline 298 | \hline 299 | \textbf{Musician} & $MI$ & \textbf{Musician} & $MI$ \\ 300 | \hline 301 | \hline 302 | \textbf{The Beatles} & 1 & \textbf{Bob Dylan} & 0.738 \\ 303 | \hline 304 | \textbf{The Rolling Stones} & 0.546 & \textbf{Chuck Berry} & 0.5 \\ 305 | \hline 306 | \textbf{Hank Williams} & 0.424 & \textbf{Elvis Presley} & 0.424 \\ 307 | \hline 308 | \textbf{Jimi Hendrix} & 0.397 & \textbf{Little Richard} & 0.39 \\ 309 | \hline 310 | \textbf{James Brown} & 0.387 & \textbf{The Velvet Underground} & 0.356 \\ 311 | \hline 312 | \hline 313 | \end{tabular}% 314 | \label{tab:best}% 315 | \end{table}% 316 | \vspace{-0.2cm} 317 | As can be seen from the above table, The Beatles has the highest $MI$, followed by Bob Dylan, The Rolling Stones, Chuck Berry, Elvis Presley and so on. The similarity between the most influential musicians we analyzed and \emph{The 20 Most Representative Musicians in the World Jointly} selected by CNN and Songlines\cite{3} (a world-class music publication) is relatively high. We can conclude that the establishment and analysis process of the model is accurate, reasonable and feasible. 318 | \vspace{-0.6cm} 319 | \subsection{Analysis of The Result} 320 | \vspace{-0.3cm} 321 | Most real-world networks are not random networks, and a few nodes tend to have a large number of connections, while most nodes have only a small number of connections, generally obeying the Pareto Principle law\cite{4}. Complex networks with degree distribution conforming to power-law distribution are usually called scale-free networks\cite{5}. 322 | 323 | In section 3.2.3, we calculated the \emph{musical influence} ($MI$) of each musician. A line graph of the frequency distribution of $MI$ is plotted as shown in the blue solid line in the Figure\eqref{fig:plot}. 324 | \vspace{-0.2cm} 325 | \begin{figure}[htbp] 326 | \centering 327 | \includegraphics[width=.6\textwidth]{plot.pdf} 328 | \caption{The Frequency Distribution of $MI$}\label{fig:plot} 329 | \end{figure} 330 | 331 | To investigate the nature of the $MI$ distribution, we fit the frequency distribution curve of $MI$. Observe that the distribution of $MI$ in the figure resembles a power-law distribution, so the complementary cumulative distribution function of the power-law distribution is defined as equation\eqref{eq:28} 332 | 333 | \begin{shrinkeq}{-1.5ex} 334 | \begin{equation}\label{eq:28} 335 | P(X|X>x)=cx^{-a},\ \ \ \ \ \ c>0,a>0 336 | \end{equation} 337 | \end{shrinkeq} 338 | 339 | We solve for the power-law distribution parameters using the maximum likelihood estimation, and the distribution parameters at a confidence level of 95\% are shown in the Table\eqref{tab:fit}. 340 | 341 | \begin{table}[htbp] 342 | \centering 343 | \caption{Distribution Parameters} 344 | \begin{tabular}{c|c|c} 345 | \hline 346 | \hline 347 | \textbf{distribution parameter} & \textbf{estimated value} & \textbf{95\% Confidence interval} \\ 348 | \hline 349 | \hline 350 | $c$ & 0.001173 & (0.0009809, 0.001366) \\ 351 | \hline 352 | $\alpha$ & -1.526 & (-1.565, -1.488) \\ 353 | \hline 354 | \hline 355 | \end{tabular}% 356 | \label{tab:fit}% 357 | \end{table}% 358 | 359 | With the goodness of fit $R^2=0.9931$, we can consider that the Musical Influence Network is a scale-free network. Musical influence network obeys the law of Pareto Principle, i.e., only a small number of musicians influence many other musicians, while most musicians do not influence other musicians. This also means that a small number of highly influential musicians will have an impact on the music world. And this will be analyzed in detail in the subsequent analysis. 360 | \vspace{-0.5cm} 361 | \subsection{Analysis of Musical Influence Sub-network} 362 | In the model building process, we categorize time span and genre span: influence within genre, influence across genre, influence of predecessors on juniors, and influence of juniors on predecessors. We build independent sub-networks on genre and time span separately and use SNA analysis to explore each musician's influence on predecessors and on juniors $EI_{pre}\ \text{\&}\ EI_{jun}$, influence within and across genres $EI_{wit}\ \text{\&}\ EI_{out}$. $EI_{pre}$, $EI_{jun}$, $EI_{wit}$, and $EI_{out}$ are all subsets of the total influence $EI$. 363 | 364 | The cross-genre influence data, within-genre influence data, predecessor influence data, and juniors influence data are selected from \emph{influence\_data}, respectively, to establish the musical influence sub network. Then the \emph{musical influence}s are calculated separately and normalized. The results of the calculation of each type of influence and the musical influence sub-network are shown in the Figure\eqref{fig:sub}. 365 | 366 | \begin{figure}[htbp] 367 | \centering 368 | \includegraphics[width=.8\textwidth]{sub.pdf} 369 | \caption{Sub-network of Musical Influence}\label{fig:sub} 370 | \end{figure} 371 | 372 | In the Figure\eqref{fig:sub}, the size of nodes in each subnetwork represents the $MI$ of the corresponding type of singer, while the thickness of the directed curve represents the weight of influence. As can be seen from the Figure\eqref{fig:sub}, the occurrence frequency of influence within genres is higher than that between genres, and the occurrence frequency of influence of predecessors on their successors is higher than that of the latter on their predecessors. It can be concluded that in the interaction of musicians, musicians are more likely to influence musicians in the same genre, and musicians are more likely to influence younger generations rather than predecessors. It can also be seen from The $MI$ subseries that The Beatles and Bob Dylan have a huge influence on musicians both in and out of The genre, and Bob Dylan goes one step further and has a strong influence on his predecessors as well. 373 | \vspace{-0.5cm} 374 | \section{\textsc{Task} 2 \& 3: Multi-dimensional Music Similarity Evaluation Model} 375 | \vspace{-0.4cm} 376 | \subsection{Model Overview} 377 | \vspace{-0.4cm} 378 | To adequately measure the similarity between the music, we evaluate the similarity between the music using cosine similarity and Euclidean similarity, respectively. The global similarity $S_{global}$ between the music is first calculated. We further explore the partial similarity $S_{part}$ between music. Finally, the trend of the year when the music was released is considered to influence $S_{time}$. The multidimensional similarity evaluation between music is constructed to obtain the similarity between music. An overview of the model is shown in the Figure\eqref{fig:m2}. 379 | 380 | \begin{figure}[htbp] 381 | \centering 382 | \includegraphics[width=.99\textwidth]{model2.pdf} 383 | \caption{Multi-dimensional Music Similarity Evaluation Model}\label{fig:m2} 384 | \end{figure} 385 | 386 | \subsection{Establishment of Multi-dimensional Music Similarity Evaluation Model} 387 | \subsubsection{Global Similarity of Music} 388 | $\bullet$ \textbf{Euclidean similarity} 389 | 390 | The Euclidean similarity measure is based on the absolute distance between the feature vectors and is used to reflect the absolute difference in the feature values between the two songs. Then the distance between the eigenvectors of music A and music B $distance_{AB}$ is defined as follows: 391 | \begin{shrinkeq}{-1.5ex} 392 | \begin{equation} 393 | distance_{AB}=\sqrt{\sum\limits_{i=1}^{n}(A_i-B_i)^2} 394 | \end{equation} 395 | \end{shrinkeq} 396 | 397 | Then the Euclidean similarity between music AB $S_E(\mathbf{A},\mathbf{B})$ is defined by the following equation: 398 | \begin{shrinkeq}{-1.5ex} 399 | \begin{equation} 400 | S_E(\mathbf{A},\mathbf{B})=\frac{1}{1+distance_{AB}} 401 | \end{equation} 402 | \end{shrinkeq} 403 | 404 | $\bullet$ \textbf{Cosine similarity} 405 | 406 | Different from Euclidean similarity, cosine similarity uses the cosine of the angle between two vectors in vector space to measure the similarity between two vectors. The cosine similarity focuses more on the difference between the two vectors in terms of direction rather than the difference between the values. The cosine similarity between the eigenvectors of music A and music B $S_{cos}(\mathbf{A},\mathbf{B})$ is defined by the following equation\eqref{eq:cos} 407 | \begin{shrinkeq}{-1.5ex} 408 | \begin{equation}\label{eq:cos} 409 | S_{cos}(\mathbf{A},\mathbf{B})=1+\frac{cos\theta}{2}=1+\frac{\mathbf{A}\cdot\mathbf{B}}{2\cdot||\mathbf{A}||\cdot||\mathbf{B}||}=1+\frac{1}{2}\cdot\frac{\sum\limits_{i=1}^{n}A_i\cdot B_i}{\sqrt{\sum\limits_{i=1}^{n}(A_i^2)}+\sqrt{\sum\limits_{i=1}^{n}(B_i^2)}} 410 | \end{equation} 411 | \end{shrinkeq} 412 | 413 | The final global similarity $S_{global}$ between music A and B is defined by the following equation\eqref{eq:glo} 414 | 415 | \begin{shrinkeq}{-1ex} 416 | \begin{equation}\label{eq:glo} 417 | S_{global}(\mathbf{A},\mathbf{B})=S_E(\mathbf{A},\mathbf{B})+S_{cos}(\mathbf{A},\mathbf{B}) 418 | \end{equation} 419 | \end{shrinkeq} 420 | 421 | 422 | \subsubsection{Partial Similarity of Music} 423 | The global similarity measure between music is defined above, and the high-latitude feature vectors containing all the music features are considered. But this does not fully reflect the similarities between the music. The similarity measurement of music should be multi-dimensional and separate measurements should be made between different characteristic dimensions of music. In fact, in life, music can be considered similar if it is similar in some aspects such as rhythm, emotional tendencies, and instrumentation, but not in all characteristics. At the same time, songs from the same genre are not similar in all characteristics but may be similar only in certain aspects. To weigh the similarity between the whole dimension and the partial dimension of music, we explore the local similarity of music from the micro point of view, in terms of each feature. 424 | 425 | We randomly select two, three, and four features from the key features of music to form different feature vectors $\mathbf{V}$. There are a total of N new feature vectors composed of the extracted features. 426 | $$N=C_{12}^2+C_{12}^3+C_{12}^4+C_{12}^5=1573$$ 427 | 428 | The new feature vectors are $V^{(1)}, V^{(2)}, \cdots, V^{(1573)}$, respectively. For music $i$ and music $j$, we first calculate the $S_{global}$ of each combination of their features and select the highest 50 $S_{global}$ to calculate the average value as the partial similarity ($S_{part}(i,j)$) between music $i$ and music $j$. $S_{part}(i,j)$ is defined in the equation\eqref{eq:1}. 429 | \begin{shrinkeq}{-1.5ex} 430 | \begin{equation}\label{eq:1} 431 | S_{part}(i,j)=\frac{\sum\limits_{k=1}^{50}S_{global}(\mathbf{V_i^{(k)}},\mathbf{V_j^{(k)}})}{50} 432 | \end{equation} 433 | \end{shrinkeq} 434 | 435 | \subsubsection{Fashion Trends Impact Factor} 436 | Considering that music is a literary and artistic product with strong social and cultural attributes, we should also consider the influence of the popular trend in the year of music release when analyzing the similarity of two pieces of music. Usually, the style of the song will evolve in the direction of the popular trend of the year. If there is a big difference in the popularity of the two songs in the year of their release, then the difference in melody and vocals between the two songs will change with the pop trends of the two songs in the year of their release. 437 | 438 | Therefore, when measuring music similarity, the influence of pop trends on the music itself should be reduced, so as to explore the intrinsic similarity of songs after stripping away the impact of pop trends. For the two songs released in year $a$ and year $b$, we defined the trend impact factor $S_{time}$ as: 439 | 440 | \begin{shrinkeq}{-1.5ex} 441 | \begin{equation} 442 | S_{time}=S_{global}(Year_a,Year_b) 443 | \end{equation} 444 | \end{shrinkeq} 445 | 446 | Where $Year_a$ and $Year_b$ are the music style attribute vectors of year $a$ and $b$, respectively. 447 | 448 | In summary, we establish a multidimensional music similarity ($MS$) evaluation model considering the influence of popular trends, defined as follows, $\beta$ is a parameter defined later (0<$\delta$<1). 449 | \begin{shrinkeq}{-1.5ex} 450 | \begin{equation} 451 | MS=((1-\delta) S_{global}+ \delta S_{part})\cdot(1+\frac{0.1}{S_{time}}) 452 | \end{equation} 453 | \end{shrinkeq} 454 | \vspace{-0.9cm} 455 | \subsection{Evaluation of Music Similarity} 456 | 457 | We count the number of genres to which all influencers and followers belonged, and plot the following Figure\eqref{fig:all} for each type of musician's genre. 458 | 459 | \begin{figure}[htbp] 460 | \centering 461 | \includegraphics[width=.9\textwidth]{all.pdf} 462 | \caption{Statistics of Musicians by Genre}\label{fig:all} 463 | \end{figure} 464 | 465 | As can be seen from the Figure\eqref{fig:all}, Pop/Rock, R\&B, and Jazz have the largest number of influencers, accounting for nearly 75\% of all musicians. Therefore the subsequent analysis is based mainly on songs and musicians from these three genres. 466 | 467 | 468 | $\bullet$ \textbf{Similarity of Songs} 469 | 470 | We select four songs from Pop/Rock, R\&B, and Jazz as shown in the Table\eqref{tab:songs} and then analyzed their similarity. 471 | 472 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 473 | \begin{table}[htbp] 474 | \centering 475 | \caption{The Music Chosen from Pop/Rock, R\&B, and Jazz}\label{tab:songs} 476 | \begin{tabular}{rrrr} 477 | \hline 478 | \hline 479 | \multicolumn{4}{c}{\textbf{Pop/Rock}} \\ 480 | \hline 481 | \multicolumn{1}{c|}{Blind Faith} & \multicolumn{1}{c|}{So Alone} & \multicolumn{1}{c|}{Africa} & \multicolumn{1}{c}{Long Cool Woman} \\ 482 | \hline\hline 483 | \multicolumn{4}{c}{\textbf{R\&B}} \\ 484 | \hline 485 | \multicolumn{1}{c|}{Thinking of You} & \multicolumn{1}{c|}{Long Way Go} & \multicolumn{1}{c|}{Who's Loving You} & \multicolumn{1}{c}{Don't Stop 'Til You $\cdots$} \\ 486 | \hline\hline 487 | \multicolumn{4}{c}{\textbf{Jazz}} \\ 488 | \hline 489 | \multicolumn{1}{c|}{**** 'N Boogie} & \multicolumn{1}{c|}{What's New} & \multicolumn{1}{c|}{Floatin} & \multicolumn{1}{c}{Summer Breeze} \\ 490 | \hline 491 | \hline\\ 492 | \end{tabular}% 493 | \end{table}% 494 | 495 | The established Multi-dimensional Music Similarity Evaluation Model is used to calculate the overall similarity $S_{global}$ between each song and the similarity $MS$ after adding the partial similarity $S_{part}$. Set $\delta = 0.5$, the calculation results of $S_{global}$ and $MS$ are shown in the Figure\eqref{fig:quanju} and \eqref{fig:jubu}. 496 | 497 | \begin{figure}[htbp] 498 | \centering 499 | \begin{minipage}[t]{0.49\textwidth} 500 | \centering 501 | \includegraphics[width=1\textwidth]{quanju.pdf} 502 | \caption{Global Similarity}\label{fig:quanju} 503 | \end{minipage} 504 | \begin{minipage}[t]{0.49\textwidth} 505 | \centering 506 | \includegraphics[width=0.98\textwidth]{jubu.pdf} 507 | \caption{Multi--Similarity}\label{fig:jubu} 508 | \end{minipage} 509 | \end{figure} 510 | 511 | Figure\eqref{fig:quanju} shows the similarity between songs in each genre without the addition of $S_{part}$, and Figure\eqref{fig:jubu} shows the similarity between songs in each genre with the addition of $S_{part}$. As can be seen from the figure that songs within the same genre have higher similarity scores between them. Comparing Figure\eqref{fig:quanju} and Figure\eqref{fig:jubu} with the part circled by the box (i.e., the similarity scores between songs and songs within the same genre), it can be found that: the similarity scores between songs of the same genre have increased after the introduction of the parital similarity of songs $(S_{part})$, while the similarity between songs of different genres has decreased. The addition of local similarity makes the measurement of musical similarity more accurate and reasonable. 512 | 513 | Thus we can consider the discussion about local similarity in 4.2.2 to be accurate: that is, \textbf{songs in the same genre may have high similarity in the characteristics of several dimensions}. Songs within the same genre can be distinguished from songs in other genres by a combination of several features. 514 | 515 | $\bullet$ \textbf{Similarity of Musicians} 516 | 517 | We used the established Multi-dimensional Music Similarity Evaluation Model to calculate the similarity of Pop/Rock, R\&B, and Jazz musicians within and between genres. The specific values are shown in the Table\eqref{tab:sim}. 518 | 519 | \vspace{-0.5cm} 520 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 521 | \begin{table}[htbp] 522 | \centering 523 | \caption{Similarity of Musicians from Pop/Rock, R\&B, and Jazz}\label{tab:sim} 524 | \begin{tabular}{c|c|c|c|c|c|c} 525 | \hline 526 | \hline 527 | & \multicolumn{3}{c|}{\textbf{Within genres}} & \multicolumn{3}{c}{\textbf{Between genres}} \\ 528 | \hline 529 | \hline 530 | \textbf{Genres} & \textbf{Pop/ROCK} & \textbf{R\&B} & \textbf{Jazz} & \textbf{Pop and R\&B} & \textbf{Pop and Jazz} & \textbf{R\&B and Jazz} \\ 531 | \hline 532 | \textbf{Average} & 0.659 & 0.683 & 0.627 & 0.647 & 0.560 & 0.592 \\ 533 | \hline 534 | \textbf{Min} & 0.399 & 0.439 & 0.382 & 0.309 & 0.374 & 0.359 \\ 535 | \hline 536 | \textbf{Max} & 0.917 & 0.906 & 0.916 & 0.949 & 0.869 & 0.898 \\ 537 | \hline 538 | \hline 539 | \end{tabular}% 540 | \end{table}% 541 | 542 | Observing the Table\eqref{tab:sim}, we can learn that the intra-genre artists of each genre are more similar than the similarity with the artists of other genres. Therefore we can assume that the artists within each genre are more similar than the artists between genres. At the same time, we can also see that the average similarity between POP and R\&B artists reached 0.647, which is very close to the average similarity within Pop. From this, it can be concluded that there may be more similarities between genres. To visualize the relationship between genres, we used PCA to downscale the characteristics of Pop/Rock, R\&B, Jazz and plot the distribution of their musicians in three dimensions, as shown in the Figure\eqref{fig:pca}. 543 | 544 | \begin{figure}[htbp] 545 | \centering 546 | \includegraphics[width=.72\textwidth]{pca1.pdf} 547 | \caption{Statistics of Musicians by Genre}\label{fig:pca} 548 | \end{figure} 549 | 550 | As can be seen from the Figure\eqref{fig:pca}, the artists in the genres are more similar, but there is no clear line of distinction between genres. This coincides with the conclusion of our analysis of the Table\eqref{tab:sim}. 551 | 552 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 553 | %\begin{table}[htbp] 554 | % \centering 555 | % \caption{Feature Combination Discrimination of Electronic}\label{tab:elec} 556 | % \begin{tabular}{c|c} 557 | % \hline 558 | % \hline 559 | % \textbf{Feature combination} & \textbf{Discrimination} \\ 560 | % \hline 561 | % \hline 562 | % [acousticness, instrumentalness, speechiness] & 1.1588\\ 563 | % \hline 564 | % [energy, acousticness, instrumentalness, speechiness] & 1.1588\\ 565 | % \hline 566 | % [energy, acousticness, instrumentalness, liveness, speechiness] & 1.1586\\ 567 | % \hline 568 | % \hline 569 | % \end{tabular}% 570 | % \label{tab:addlabel}% 571 | %\end{table}% 572 | % 573 | %\begin{table}[htbp] 574 | % \centering 575 | % \caption{Feature Combination Discrimination of Latin}\label{tab:lat} 576 | % \begin{tabular}{c|c} 577 | % \hline 578 | % \hline 579 | % \textbf{Feature combination} & \textbf{Discrimination} \\ 580 | % \hline 581 | % \hline 582 | % [energy, valence, tempo, danceability] & 1.1474\\ 583 | % \hline 584 | % [energy, valence, loudness, danceability] & 1.1473\\ 585 | % \hline 586 | % [energy, valence, tempo, danceability, liveness] & 1.1470\\ 587 | % \hline 588 | % \hline 589 | % \end{tabular}% 590 | % \label{tab:addlabel}% 591 | %\end{table}% 592 | \vspace{-0.6cm} 593 | \subsection{Analysis of the Musical Discrimination and Influences of Genres} 594 | \vspace{-0.3cm} 595 | \subsubsection{Discrimination Evaluation Model of Feature Combination} 596 | \vspace{-0.3cm} 597 | Combining with the discussion of partial similarity in music in 4.2.2 and 4.3: songs between similar genres may do not share a high degree of similarity in all features, while the combination of several particular features may give music in the same genre a very high degree of similarity and thus distinguish it from music in other genres. Similarly, there may be a high similarity between different genres in the combination of certain characteristics. 598 | 599 | To analyze what combination of features distinguishes a genre, we arrange and combine the 12 musical features except \emph{popularity} in two-two, three-three, four-four, and five-five combinations to obtain a total of $N'$ types of new feature combinations: $V^{(1)},V^{(2)},\cdots,V^{(1573)}$ 600 | \begin{shrinkeq}{-1.5ex} 601 | \begin{equation} 602 | N'=C_{12}^2+C_{12}^3+C_{12}^4+C_{12}^5=1573 603 | \end{equation} 604 | \end{shrinkeq} 605 | 606 | 607 | Based on the new combination $V$, the partial similarity $S_{part}$ defined by the equation\eqref{eq:1} in 4.2.2 between the genres and the other genres is calculated. The minimum value of $S_{part}$ is $\frac{1}{2}$, which represents the minimum local similarity. For the $i_{th}$ new feature combination $V^{(i)}$, a metric vector $\mathbf{S_{part\ I}}=[S_{part\ 1},S_{part\ 2},\cdots,S_{part\ 18}]^T$ is obtained by the partial similarity between the genre to be evaluated and other genres, as shown in the Figure\eqref{fig:model}. 608 | 609 | \begin{figure}[htbp] 610 | \centering 611 | \includegraphics[width=.85\textwidth]{model.pdf} 612 | \caption{Partial Similarity Evaluation Vector}\label{fig:model} 613 | \end{figure} 614 | \vspace{-0.5cm} 615 | $\mathbf{S_{part\ i}}$ reflects the similarity of the genre between other genres when only the features contained within $V^{(i)}$ are considered. If the features contained within $V^{(i)}$ can well distinguish the genre from other genres, then these features can be considered as the significant differences between the music of the genre and other genres. Ideally, if the combination of features chosen can completely distinguish the genre from other genres, then the optimal partial similarity vector $\mathbf{S_{part}'}=[\frac{1}{2},\frac{1}{2},\cdots,\frac{1}{2}]^T$ is defined. 616 | 617 | Cosine similarity and Euclidean similarity are used to measure the $discrimination_i$ of feature combination vector $V^{(i)}$ 618 | \begin{shrinkeq}{-1.5ex} 619 | \begin{equation} 620 | discrimination_i=S_{cos}(\mathbf{S_{part}'},\mathbf{S_{part\ i}})+S_E(\mathbf{S_{part}'},\mathbf{S_{part\ i}}) 621 | \end{equation} 622 | \end{shrinkeq} 623 | 624 | We selected two genres, Electronic and Latin, for analysis, and obtained the top three discrimination scores as shown in the Table\eqref{tab:fm}. 625 | 626 | \vspace{-0.3cm} 627 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 628 | \begin{table}[htbp] 629 | \centering 630 | \caption{Feature Combination Discrimination}\label{tab:fm} 631 | \begin{tabular}{c|c|c} 632 | \hline 633 | \hline 634 | \multirow{4}[8]{*}{\textbf{Electronic}} & \textbf{Feature combination} & \textbf{Discrimination} \\ 635 | \cline{2-3} & [\emph{acousticness, instrumentalness, speechiness}]* & 1.1588 \\ 636 | \cline{2-3} & [\emph{energy, acousticness, instrumentalness, speechiness}]* & 1.1588 \\ 637 | \cline{2-3} & [\emph{energy, acousticness, instrumentalness, liveness, speechiness}] & 1.1586 \\ 638 | \hline 639 | \hline 640 | \multirow{4}[7]{*}{\textbf{Latin}} & \textbf{Feature combination} & \textbf{Discrimination} \\ 641 | \cline{2-3} & [\emph{energy, valence, tempo, danceability}]* & 1.1474 \\ 642 | \cline{2-3} & [\emph{energy, valence, loudness, danceability}] & 1.1473 \\ 643 | \cline{2-3} & [\emph{energy, valence, tempo, danceability, liveness}] & 1.1470\\ 644 | \hline\hline 645 | \end{tabular}% 646 | \label{tab:addlabel}% 647 | \end{table}% 648 | 649 | \vspace{-0.3cm} 650 | As can be seen from the Table\eqref{tab:fm}: 651 | 652 | $\bullet$ \textbf{For Electronic: }Electronic is different from other genres in four aspects, including \emph{acousticness}, \emph{instrumentalness}, \emph{speechiness}, and \emph{energy}. These characteristics are in line with those of electronic-synth music, which has a strong sense of rhythm and is more likely to evoke the desire to dance. 653 | 654 | $\bullet$ \textbf{For Latin: }Its concentrated characteristics are embodied in \emph{energy}, \emph{valence}, \emph{tempo}, \emph{danceability}, which coincide with the energetic, dynamic, rhythm-centered characteristics of Latin music. 655 | 656 | \vspace{-0.3cm} 657 | \subsubsection{Analysis of Genre Changes Over Time} 658 | \vspace{-0.2cm} 659 | $\bullet$ \textbf{Analysis of single genre changes over time} 660 | 661 | Take Electronic's music characteristics change as an example. The analysis process is shown below: 662 | 663 | \textbf{\emph{Step 1:}} \textbf{Data visualization} 664 | 665 | We use the four most distinguishing attributes of Electronic: \emph{acousticness}, \emph{instrumentalness}, \emph{speechiness}, and \emph{energy}, which are analyzed in 4.4.1. We add the \emph{number of musicians} within the genre and the \emph{popularity} to obtain six variables. The curves of these six variables over time are plotted as Figure\eqref{fig:time}. 666 | 667 | \begin{figure}[htbp] 668 | \centering 669 | \includegraphics[width=.9\textwidth]{time.pdf} 670 | \caption{Changes of Electronic Over Time}\label{fig:time} 671 | \end{figure} 672 | \vspace{-0.6cm} 673 | \textbf{\emph{Step 2:}} \textbf{Identification of mutation points} 674 | 675 | From the Figure\eqref{fig:time}, we can see that electronic music mutated in the 1950s and characteristics changed from 1970 to 1980. In total, it can be divided into three development stages: in the 1950s, 1970$\sim$1980, and after the 1980s. 676 | 677 | \textbf{\emph{Step 3:} Analysis with historical facts} 678 | 679 | 1. In the 1950s, there were significant changes in the variety of attributes of electronic music, from 0.93 to 0.10, and the score for acousticness, instrumentalness, iTunes, and energy increased by more than 200\%. After the 1950s, electronic music became more intense and electrically enhanced. According to Wikipedia\cite{6}, the first electronic music recorded on tape was composed by Louis and Bebe Barron in 1950, signifying the creation of true electronic music. 680 | 681 | 2. From the 1970s to the 1980s, there were a lot of innovations in electronic music equipment. Digital synthesizers and samplers replaced analog synthesizers, and more musicians could use a synthesizer for music creation. 682 | 683 | 3. After the 1980s, the Acid House movement in the UK pushed the development of electronic music into the mainstream, and between the late 1990s and the beginning of the 21st century, electronic music using only electronic instruments became increasingly popular, a trend that continues today. Nightclubs around the world are playing electronic music on a regular basis. 684 | 685 | $\bullet$ \textbf{ Analysis of correlation of changes between genres over time} 686 | 687 | We use Easy listening and New age as examples to analyze the interplay of genres during their change over time. We choose three characteristics of \emph{acousticness}, \emph{tampo}, and \emph{speechiness} of these two genres to analyze how they change over time. 688 | 689 | \begin{figure}[htbp] 690 | \centering 691 | \includegraphics[width=.9\textwidth]{subtime.pdf} 692 | \caption{Changes of New age and Easy listening Over Time}\label{fig:subtime} 693 | \end{figure} 694 | \vspace{-0.5cm} 695 | As can be seen from the Figure\eqref{fig:subtime}, both Easy listening and New age have a similar trend: \emph{acousticness} gradually decreases, \emph{tempo} stabilizes, and \emph{speechiness} continues to decrease on top of the already low values. This is also in line with the development history of the real Easy listening and New age, that is, the rhythm is soothing, there is less spoken word, and gradually introduced a small number of electronic instruments. 696 | 697 | Exploring the sequential correlation between the changes of the two curves, we can also learn that the changes of New age always lag behind Easy listening and change in the direction of Easy listening changes. It can be further concluded that New age is influenced by Easy listening as it changes over time, which coincides with the fact that New age started later and is influenced by Easy listening. 698 | \vspace{-0.6cm} 699 | \section{Task 4 :Long-Short Term Influence Evaluation Model Based on Sliding Window} 700 | \vspace{-0.5cm} 701 | \subsection{Establishment of Sliding Window Model} 702 | \vspace{-0.4cm} 703 | To explore whether influencers influence the music created by followers, we evaluated the similarity between the music of influencers and followers by $MS$. Considering that the influence of followers by influencers changes continuously over time, we add sliding windows\cite{9} to explore the short-term similarity $MS$ of music based on the similarity evaluation model established in \textsc{Task} 2 \& 3, to capture the short-term influence $STS$ of influencers on followers' music. Finally, the magnitude of the change in short-term similarity is summed to obtain the long-term influence $LTS$ of the influencer on the follower. An overview of the model is shown in the Figure\eqref{fig:m3}. 704 | 705 | We arrange the songs of influencers and followers by time, and as the window slides along the time line, new songs are added continuously on the right side, while some outdated songs are dropped on the left. We swipe two windows on the timelines of the works of influencers and followers at different times. Additionally, we ensure that the music in the influencer window is released earlier than the music in the follower window. Then calculate the similarity of influencer's music and follower's music $MS$ in both windows. 706 | 707 | In order to find the most similar songs (songs with real influence relationships), we define the similarity of the song in the $i$ th follower window to the influencer $(MS_i)$: 708 | \begin{shrinkeq}{-1ex} 709 | \begin{equation} 710 | MS_i=max\{MS(Fl_i,In_j),\ \ \ j=1\ to\ n\} 711 | \end{equation} 712 | \end{shrinkeq} 713 | 714 | \begin{figure}[htbp] 715 | \centering 716 | \includegraphics[width=.9\textwidth]{model3.pdf} 717 | \caption{Long-Short Term Influence Evaluation Model Based on Sliding Window}\label{fig:m3} 718 | \end{figure} 719 | \vspace{-0.3cm} 720 | $Fl_i$ and $In_j$ are the music within the follower window $i$ and the influencer window $j$, respectively. $MS(Fl_i,In_j)$ represents the short-term similarity of music within the influencer window $j$ to music within the follower window $i$. To satisfy that the music within the influencer window is released earlier than the followers, $n$ changes as $i$ changes. 721 | 722 | Define the magnitude of similarity change $(\Delta MS)_i$ for the follower's timeline window: 723 | \begin{shrinkeq}{-1ex} 724 | \begin{equation} 725 | (\Delta MS)_i=\frac{MS_i-MS_{i-1}}{MS_{i-1}} 726 | \end{equation} 727 | \end{shrinkeq} 728 | 729 | Define short-term similarity ($STS$) and long-term similarity ($LTS$): 730 | \begin{shrinkeq}{-1.5ex} 731 | \begin{equation} 732 | \begin{cases} 733 | STS=max\{(\Delta MS)_i\}\\ 734 | LTS=\sum(\Delta MS)_i 735 | \end{cases} 736 | \end{equation} 737 | \end{shrinkeq} 738 | 739 | We consider that when $STS>0.01$, i.e., in the short term, there is a period of time when followers' song styles are substantially closer to those of the influencers, and this is when the influencers can be considered to have influenced the followers. When $LTS>0$, the follower's music style is generally close to the influencer's in the long run, and the influencer can be considered to have a long-term influence on the follower. Defining the degree of influence long-term-short-term score $IDS$, when $IDS>0$, the influencer can be considered to have an influence on the follower. 740 | \begin{shrinkeq}{-1.5ex} 741 | \begin{equation}\label{eq:ids} 742 | IDS=max(0,LTS)+max(0,STS-0.01) 743 | \end{equation} 744 | \end{shrinkeq} 745 | 746 | \subsection{Test of the Established Model} 747 | \vspace{-0.4cm} 748 | We set the window size to 5 and the move step to 3 for window sliding detection. The $IDS$ between all influencers and followers are calculated using the model developed above and find that 86.08\% of the $IDS$ are greater than 0. It can be concluded that in general influencers do influence the music created by their followers. 749 | 750 | We choose the influencer: Black Box, and his followers: Soda Stereo and Dave Matthews Band as an example, the results are shown in the Table\eqref{tab:res}. 751 | \vspace{-0.4cm} 752 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 753 | \begin{table}[htbp] 754 | \centering 755 | \caption{Result of Sliding Window Model} 756 | \begin{tabular}{c|c|c|c|c} 757 | \hline 758 | \hline 759 | \textbf{Influencer} & \textbf{Follower} & \textbf{LTS} & \textbf{STS} & \textbf{IDS} \\ 760 | \hline 761 | \hline 762 | \textbf{Black Box} & \textbf{Soda Stereo} & 0.00033 & 0.01251 & 0.000334 \\ 763 | \hline 764 | \textbf{Black Box} & \textbf{Dave Matthews Band} & 0.00553 & 0.00549 & 0.00553 \\ 765 | \hline 766 | \hline 767 | \end{tabular}% 768 | \label{tab:res}% 769 | \end{table}% 770 | 771 | It can be seen that Black Box did influence the music making of its followers, Soda Stereo and Dave Matthews Band, to varying degrees. 772 | 773 | $\bullet$ \textbf{For Soda Stereo: }STS$\gg$LTS, the short-term impact is greater.Inspired by a few songs from an influencer and subsequently less influenced by the influencer. 774 | 775 | $\bullet$ \textbf{For Dave Matthews Band: }LTS$>$STS, the long-term impact is greater. Dave Matthews Band has been influenced by influencers for a long time and is a loyal follower. 776 | 777 | \subsection{Contagious Evaluation of Musical Characteristics} 778 | 779 | Music has many different characteristics, and in order to explore whether there are more contagious (easy to spread) ones among different characteristics, we established a contagious evaluation system for music characteristics based on the timeline of influencers' and followers' works in the previous section, and the music similarity ($MS$) evaluation model in 4.2.1. For a specific musician (as a follower), the contagious evaluation steps of musical features $v^{(k)}$ are as follows. 780 | 781 | \textbf{\emph{Step 1:}} Build the timelines of the works of this musician (single) and his influencer (possibly multiple) respectively, as shown in Figure\eqref{fig:m3} (4.4.2). 782 | 783 | \textbf{\emph{Step 2:}} For a musician's song $i$, it is combined with an influencer's song $j$, and then calculate the difference $dif(i,j)^{(k)}$ of the musical characteristics $v^{(k)}$ of the two songs. 784 | 785 | \begin{shrinkeq}{-1.5ex} 786 | \begin{equation} 787 | dif(i,j)^{(k)}=v_{i}^{(k)}-v_j^{(k)} 788 | \end{equation} 789 | \end{shrinkeq} 790 | 791 | \textbf{\emph{Step 3:}} Musicians' works may be influenced by only a relatively small number of enlightening works, so there should be the smallest feature difference between them on $v_{(k)}$. We choose the three smallest values of $dif(i,j)^{(k)}$ for weighted summation to obtain the difference $DIF_i^{(k)}$ between the follower's song $i$ on feature $v^{(k)}$ and and its corresponding enlightening work. $dif^{(k)}_1$, $dif^{(k)}_2$, $dif^{(k)}_3$ for the first three smallest characteristic differences. 792 | \begin{shrinkeq}{-1.5ex} 793 | \begin{equation} 794 | DIF_i^{(k)}=\frac{1}{2}dif^{(k)}_1+\frac{1}{3}dif^{(k)}_2+\frac{1}{6}dif^{(k)}_3 795 | \end{equation} 796 | \end{shrinkeq} 797 | 798 | \textbf{\emph{Step 4:}} Analyze the contagion of all the features within this musician's works. Define the degree of closeness $DC^{(k)}$ of all songs of a follower to the songs of its influencer on $v^{(k)}$. And $D[d]^{(k)}$ is the variance of all songs of this musician on the feature $v^{(k)}$. The smaller the final value of $DC^{(k)}$ is, the more susceptible the musician is to influencers on $v^{(k)}$, and the more contagious the $v^{(k)}$ is. 799 | \begin{shrinkeq}{-1.5ex} 800 | \begin{equation} 801 | DC^{(k)}=((1+average(DIF_i^{(k)}))\cdot(1+minimum(DIF_i^{(k)}))\cdot D[d]^{(k)} 802 | \end{equation} 803 | \end{shrinkeq} 804 | 805 | Using the above analysis process, Soda Stereo and Dave Matthews are selected as followers for the contagious analysis of music characteristics, and the results are obtained as shown in the following Table\eqref{tab:res1}. 806 | 807 | \vspace{-0.5cm} 808 | \begin{table}[htbp] 809 | \centering 810 | \caption{Contagious of Musical Characteristics} 811 | \begin{tabular}{c|c|c|c|c} 812 | \hline 813 | \hline 814 | \multirow{2}[4]{*}{\textbf{Soda Stereo}} & \textbf{Characteristics} & \textit{\textbf{speechiness}} & \textit{\textbf{energy}} & \textit{\textbf{instrumentalness}} \\ 815 | \cline{2-5} & \textbf{$DC$} & 0.000249 & 0.0068 & 0.007554 \\ 816 | \hline 817 | \hline 818 | \multirow{2}[4]{*}{\textbf{Dave Matthews}} & \textbf{Characteristic} & \textit{\textbf{speechiness}} & \textit{\textbf{instrumentalness}} & \textit{\textbf{danceability}} \\ 819 | \cline{2-5} & \textbf{$DC$} & $8.5279\times 10^{-5}$ & $9.6721\times10^{-5}$ & 0.012702 \\ 820 | \hline 821 | \hline 822 | \end{tabular}% 823 | \label{tab:res1}% 824 | \end{table}% 825 | As can be seen from the Table\eqref{tab:res1}, not all characteristics are highly contagious to a particular musician, and the most contagious characteristics vary from one musician to another. For Soda Stereo, the musical characteristic \emph{speechiness} is the most contagious. For Dave Matthews, the musical characteristics of \emph{speechiness} and \emph{instrumentalness} are the most contagious. 826 | \vspace{-0.5cm} 827 | \section{Task 5 \& 6 \& 7: Analysis of Music Revolution Over Time} 828 | \vspace{-0.3cm} 829 | \subsection{The Identification of the Musical revolution} 830 | 831 | \vspace{-0.2cm} 832 | We analyze the given data to identify musical revolutions in terms of two symbol: changes in existing musical genres, the creation of new musical genres. 833 | 834 | $\bullet$ \textbf{Changes in existing musical genres} 835 | 836 | Dramatic changes in musical characteristics within existing musical genres can be recognized as temporal musical revolution. The following are the conditions for determining the point in time when an evolution occurs: 837 | 838 | \textbf{\emph{A.}} The musical characteristics of the genre remained stable before and after the revolution. 839 | 840 | \textbf{\emph{B.}} In the year of the revolution, the musical characteristics of the genre change greatly. 841 | 842 | \textbf{\emph{C.}} There are at least two features that have taken a significant turn at the same time. 843 | 844 | The above conditions are quantified using mathematical formulas to explore whether a significant change occurs within a six-year period of analysis. For the characteristic $v^{(k)}$ of the genre, the condition for determining that an evolution occurs in the $3_{th}\sim4_{th}$ year of the analysis cycle is defined by the equation\eqref{eq:control} 845 | 846 | \begin{shrinkeq}{-1.5ex} 847 | \begin{equation}\label{eq:control} 848 | \begin{cases} 849 | |v_3^{(k)}-v_2^{(k)}|<0.03\\ 850 | |v_2^{(k)}-v_1^{(k)}|<0.03\\ 851 | |v_4^{(k)}-v_3^{(k)}|>0.1\\ 852 | |(v_5^{(k)}-v_4^{(k)})-(v_4^{(k)}-v_3^{(k)})|<0.02\ or\ |v_5^{(k)}-v_4^{(k)}|<0.03\\ 853 | |(v_6^{(k)}-v_5^{(k)})-(v_5^{(k)}-v_4^{(k)})|<0.02\ or\ |v_6^{(k)}-v_5^{(k)}|<0.03 854 | \end{cases} 855 | \end{equation} 856 | \end{shrinkeq} 857 | 858 | Using a six-year time span as the width of the sliding window, a sliding window model is used for analysis to identify the years in which the upper constraint is satisfied, i.e., the time when a revolution occurs. If the trend of change continues in the years following a turning point, we consider a long-term change to have occurred during that period. \emph{Electronic} is selected as the study object to explore the characteristics of significant revolution in \emph{Electronic}. With the above constraint equation, we capture the year 1950 and 1969 as the time points of the revolution. And the characteristics of Electronic in 1950 and 1969 are shown in the Table\eqref{tab:res2}. 859 | 860 | \vspace{-0.4cm} 861 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 862 | \begin{table}[htbp] 863 | \centering 864 | \caption{Identification of Revolution of Electronic} 865 | \begin{tabular}{c||c|c|c|c|c} 866 | \hline 867 | \hline 868 | \textbf{Year} & \multicolumn{3}{c|}{\textbf{1950}} & \multicolumn{2}{c}{\textbf{1969}} \\ 869 | \hline 870 | \textbf{Characteristic} & \textit{\textbf{speechiness}} & \textit{\textbf{acousticness}} & \textit{\textbf{energy}} & \textit{\textbf{instrumentalness}} & \textit{\textbf{acousticness}} \\ 871 | \hline 872 | \textbf{Change} & 0.796 & 0.513 & 0.210 & 0.131 & 0.123 \\ 873 | \hline 874 | \hline 875 | \end{tabular}% 876 | \label{tab:res2}% 877 | \end{table}% 878 | \vspace{-0.3cm} 879 | 880 | From the Table\eqref{tab:res2}, it can be seen that Electronic in 1950 \emph{speechiness}, \emph{energy} and \emph{acousticness} changed a lot. In 1969 \emph{instrumentalness} and \emph{acousticness} changed a lot. This is also similar to the conclusion of our analysis of Electronic in 4.4.2, and it can be considered that the established constraint equations can identify the revolution in the existing music genres. 881 | 882 | $\bullet$ \textbf{Creation of new musical genres} 883 | 884 | To identify the new generation of music genres, we visualize the number of musicians in each genre over time in Figure\eqref{fig:mus}. Each surge in the number of musicians in each genre can be considered as an evolution in the genre. The first surge in the number of musicians in each genre can be identified as the creation of a new genre. 885 | 886 | \begin{figure}[htbp] 887 | \centering 888 | \includegraphics[width=.95\textwidth]{musician.pdf} 889 | \caption{Changes in the Number of Musicians Over Time}\label{fig:mus} 890 | \end{figure} 891 | 892 | Observe the Figure\eqref{fig:mus}, using the analysis of R\&B and Country as an example: 893 | 894 | 1. The first explosion in the number of musicians in R\&B occurred in 1950. There had not been an explosion in the number of musicians in the genre before that, so it can be argued that an evolution happened in 1950, when R\&B was created. This also coincides with the start date of the R\&B genre, according to Sound and Music from Xinhua News Agency\cite{7}. 895 | 896 | 2. The first surge in the number of musicians in Country occurred in 1920, and it is also logical to assume that Country had an evolution in 1920, when Country was born. The results of the analysis are also consistent with the facts\cite{7}. 897 | 898 | \vspace{-0.5cm} 899 | \subsection{Major Influencers of Revolution} 900 | For a genre revolution, we analyze the music published within the genre in the two years before and after the evolution, looking for the most popular artists during that part of the time. We sum the popularity of each musician's works released during that period separately to obtain the popularity of each musician during that period, with the highest being the most influential in the evolution. Electronic is analyzed using the above method. 901 | 902 | In 1950, \textbf{Freestyle}'s music has the highest sum of popularity: 144, can be considered as a major influencer on the 1950 evolution. In 1969, \textbf{Jean-Jacques Perrey}'s music has the highest sum of popularity: 139, can be considered as a major influencer for the 1969 evolution. 903 | 904 | The trend of evolution in 1969 was maintained from the beginning of the evolution in 1969 to 1978, and we believe that a long-term change was produced during this period. We also identified the major influencers near 1969 to 1979 as \textbf{Kraftwerk} : sum of popularity=822, \textbf{Yellow Magic Orchestra}: sum of popularity=495, \textbf{Vangelis}: sum of popularity= 473. 905 | 906 | \vspace{-0.5cm} 907 | \subsection{Dynamic Influencer Evaluation Indicator} 908 | In the equation\eqref{eq:ids} in 5.1, we define $IDS$ to measure the degree of influence that influencers have on their followers. As genres develop over time, there may be different key influencers within the genre at different times who will influence other musicians within the genre and lead the direction of the genre. To reveal the dynamic influencers within genre $i$, we define the Dynamic Influencer Indicator $DII$ as follows. 909 | 910 | For musician $i$, first calculate its degree of influence $IDS_{i,j}$ on all musicians within the genre in turn and sum up $IDS$, to obtain the dynamic influencer index $DII_i$ for musician $i$: 911 | 912 | \begin{shrinkeq}{-1.5ex} 913 | \begin{equation} 914 | DII_i=\sum\limits_{j=1}^{n} IDS_{i,j} 915 | \end{equation} 916 | \end{shrinkeq} 917 | 918 | Within this genre, the musicians are ranked according to the $DII$ of each musician. From the analysis of the percentage of major influencers in 3.3, a point threshold of 20\% is used based on the law of Pareto's Principle\cite{4}. Musicians with $DII$ ranking in the top 20\% are then identified as dynamic influencers within this genre. We take Pop/Rock as an example, taking ten years as the analysis period, the $DII$ of musicians within the genre of every period is calculated, and we list the two largest $DII$ after normalization of musicians every decade shown in the Table\eqref{tab:dii}. 919 | 920 | % Table generated by Excel2LaTeX from sheet 'Sheet1' 921 | \begin{table}[htbp] 922 | \centering 923 | \caption{$DII$ of Musicians Over Time} 924 | \begin{tabular}{c||c|c|c|c|c} 925 | \hline 926 | \hline 927 | Year & 1950s & 1960s & 1970s & 1980s & 1990s \\ 928 | \hline 929 | \hline 930 | Musician & Elvis Presley & Bob dylan & The Clash & Sex Pistols & Blur \\ 931 | \hline 932 | $DII$ & 0.9951 & 0.9926 & 0.9635 & 0.8964 & 0.9131 \\ 933 | \hline 934 | Musician & Little Richard & Beatles & David Bowie &Nirvana & Beach Boys \\ 935 | \hline 936 | $DII$ & 0.9814 & 1 & 0.9804 & 0.8413 & 0.8971 \\ 937 | \hline 938 | \hline 939 | \end{tabular}% 940 | \label{tab:dii}% 941 | \end{table}% 942 | 943 | As can be seen from the Table\eqref{tab:dii}, the dynamic influencers within Pop/Rock are not the same in different eras, which is a good indication of the turnover of leading figures within the genre. The recognition threshold of $DII$ is 0.8127, and musicians above this threshold can be identified as dynamic influencers. 944 | \vspace{-0.5cm} 945 | \subsection{Influence from Social, Political and Cultural Aspects} 946 | 947 | Changes in musical genre attributes often reflect the social, political, and cultural aspects of the time to some extent. We explore the social and cultural changes of the time by analyzing the changes in musical attributes such as \emph{valence} related to emotions and \emph{acousticness} related to the use of science and technology in the music influence network across genres. 948 | 949 | $\bullet$ \textbf{From the general trends in the music industry} 950 | 951 | Taking the analysis of the emotional tendency of music as an example, we count the emotional tendency \emph{valence} statistics of several genres of music that account for a relatively large proportion of the genre as shown in the Figure\eqref{fig:emo}. 952 | 953 | \begin{figure}[htbp] 954 | \centering 955 | \includegraphics[width=.85\textwidth]{emotion.pdf} 956 | \caption{Changes of \emph{valence} Over Time}\label{fig:emo} 957 | \end{figure} 958 | \vspace{-0.5cm} 959 | From the Figure\eqref{fig:emo}, we can see that the emotional tendency of most genre songs started to become negative in 1947 and then became positive after 1965. Combined with the historical fact that the African-American Civil Rights Movement started in 1950 and ended in 1970, African-Americans were oppressed by society prior to the Civil Rights Movement, and the musicians used music to express their long-held negative feelings. After the civil rights movement, the future of African-Americans became clearer and they used music to express their desire for a better life. Thus we can consider that the emotional tendencies of music can, to some extent, reflect the implicit tendencies of society, politics, and culture, and be used to predict social revolution. 960 | 961 | $\bullet$ \textbf{From trends in specific music genres} 962 | 963 | Take the analysis of Electronic characteristics over time in 4.4.2 as an example. As shown in the Figure\eqref{fig:time} in 4.4.2, the \emph{acousticness} of Electronic increased significantly in 1950, and so did the \emph{energy}. It can be considered that Electronic has become more energetic and dynamic, which is related to the fact that people were in the ecstasy of achieving victory in the anti-fascist war after the Second World War in the 1950s. The cultural products of this historical period also fully reflect the optimistic and exciting social trends. 964 | 965 | $\bullet$ \textbf{From the listener's reaction to the music} 966 | 967 | In addition to the music itself, the connection between music and social development can also be glimpsed in the changes in listeners' reactions to music. The trend of \emph{popularity} in each category over time is plotted in Figure\eqref{fig:pop}. It can be seen that there are more and more music listeners, which reflects the unprecedented increase in people's ability to access information through the Internet as a result of the development of science and technology, making music accessible to a wider audience. This will further increase the influence of music on society, politics, and culture. 968 | 969 | \vspace{-0.3cm} 970 | \begin{figure}[htbp] 971 | \centering 972 | \includegraphics[width=.9\textwidth]{pop.pdf} 973 | \caption{Changes of \emph{popularity} Over Time}\label{fig:pop} 974 | \end{figure} 975 | \vspace{-0.9cm} 976 | 977 | \section{Sensitive Analysis} 978 | \vspace{-0.3cm} 979 | \subsection{Sensitive Analysis of Model in \textsc{Task} 2 } 980 | 981 | In Task 2 to build the Multi-dimensional Music Similarity Evaluation Model, we weight the local similarity $S_{part}$ and the global similarity $S_{global}$ to obtain $MS$: 982 | \begin{shrinkeq}{-1.5ex} 983 | \begin{equation} 984 | MS=((1-\delta) S_{global}+ \delta S_{part})\cdot(1+\frac{0.1}{S_{time}}) 985 | \end{equation} 986 | \end{shrinkeq} 987 | 988 | The different weights $\delta$ may affect the evaluation results of similarity. Therefore, we choose 12 pieces of music from 3 genres to study the effect of different $\delta$ on the results, and choose $\delta = 0.2, 0.5, 0.8$ to obtain the results of $MS$ as Figure\eqref{fig:sa1}. 989 | 990 | \begin{figure}[htbp] 991 | \centering 992 | \includegraphics[width=.99\textwidth]{sa1.pdf} 993 | \caption{Sensitive Analysis of the Model in Task 2}\label{fig:sa1} 994 | \end{figure} 995 | 996 | Looking at the above Figure\eqref{fig:sa1} we can see that a change in $\delta$ does not change the broad similarity results respectively. However, the number of the parameter can have some effect on some specific categories of music, resulting in changes in musical similarity between or within genres, respectively. 997 | 998 | $\bullet$ When $\delta$ is small, we can see higher similarity between genres. And $S_{global}$ has a large weight and pays more attention to the differences of songs in all characteristics, which leads to lower similarity within the genre. 999 | 1000 | $\bullet$ When $\delta$ is large, it can be seen that the similarity between genres is lower. $S_{part}$ has a larger weight and pays more attention to the differences in important features of songs, which makes the the similarity within the genre become higher. 1001 | 1002 | Therefore, we choose $\delta=0.5$ in the model of the main text to make our similarity evaluation more balanced between local and global features. 1003 | 1004 | \vspace{-0.3cm} 1005 | \subsection{Sensitive Analysis of Model in \textsc{Task} 4 } 1006 | \vspace{-0.3cm} 1007 | In the sliding window model in Task 4, the size of the window and step size may lead to different results. We use a variance-based sensitivity analysis method (Sobol method)\cite{8} to investigate the effect on the results when multiple hyperparameters are varied simultaneously. The Sobol method simulates Monte Carlo sampling of the parameters in the feasible space and obtains a large number of outputs. The variance of the model output is the sum of all order variances of a single parameter. The equation for the contribution of the computed variance of the Sobol method is as follows: 1008 | 1009 | \begin{shrinkeq}{-1.5ex} 1010 | \begin{equation} 1011 | \begin{split} 1012 | &V(Y)=\sum\limits_{i=1}^{p-1}\sum\limits_{j=i+1}^{p}V_{ij}+\cdots+V_{1,\cdots,p}\\ 1013 | &S_{T_i}=\frac{E_{X_{\sim i}}(Var_{X_i}(Y|X_{\sim i}))}{Var(Y)}=1-\frac{Var_{X_\sim i}(E_{X_i}(Y|X_\sim i)}{Var(Y)} 1014 | \end{split} 1015 | \end{equation} 1016 | \end{shrinkeq} 1017 | 1018 | The above equation measures the proportion of variance change caused by the interaction between one variable and other variables that change simultaneously. We then use the Sobol method on the sliding window model to study the sensitivity of window size and step size, and show the sensitivity ($S_T$) as Figure\eqref{fig:sa2}. 1019 | 1020 | \begin{figure}[htbp] 1021 | \centering 1022 | \includegraphics[width=.7\textwidth]{sa21.pdf} 1023 | \caption{Sensitive Analysis of the Model in Task 4}\label{fig:sa2} 1024 | \end{figure} 1025 | 1026 | It can be seen that the change in the size of the window of followers has the greatest impact on the results, which can indicate that the number of music selected in the calculation of short-term influences has the greatest impact on the final influence results. This represents that for different musicians, when influenced by an influencer, different musicians may reflect the influence of the influencer on several consecutive different songs. Some musicians may be inspired only in the short term with only a small time period of songs reflecting this influence. While others may be inspired in the long term, with multiple songs over a long period of time reflecting the influence of an influencer on them. 1027 | \vspace{-0.7cm} 1028 | \section{Strengths and Weaknesses} 1029 | \vspace{-0.3cm} 1030 | \subsection{Strengths} 1031 | $\bullet$ We used the theory of SNA to construct a network of influences between musicians and to measure the internal parameters of the network with more well-considered metrics. 1032 | 1033 | $\bullet$ In analyzing whether influencers actually have an impact on followers, we used a sliding window time series approach to synthesize the short- and long-term impact of influencers on followers. 1034 | 1035 | $\bullet$ We have done sufficient visualization work on the algorithms and results of the model to facilitate understanding. 1036 | 1037 | $\bullet$ Most of our models are built with innovative ideas or improved based on original theories and specific problems, making our models both theoretical and innovative. 1038 | 1039 | \vspace{-0.5cm} 1040 | \subsection{Weaknesses} 1041 | $\bullet$ We could also go deeper into the analysis of certain issues, but due to space limitations, we can only stop here. 1042 | 1043 | $\bullet$ Due to the lack of actual numerical reference, we can only observe the accuracy of our model from the actual situation and cannot numerically measure the accuracy of our model. 1044 | 1045 | \vspace{-0.7cm} 1046 | \begin{thebibliography}{99} 1047 | \vspace{-0.5cm} 1048 | \bibitem{1} Zhang Cungang, Li Ming, Lu Demei. \emph{Social Network Analysis: An Important Sociological Research Method} [J]. Gansu Social Sciences, 2004. 1049 | \vspace{-0.35cm} 1050 | \bibitem{2} Haveliwala T H . \emph{Topic-sensitive PageRank: a context-sensitive ranking algorithm for Web search}[J]. IEEE Transactions on Knowledge and Data Engineering, 2003, 15(4):p.784-796. 1051 | \vspace{-0.35cm} 1052 | \bibitem{3} \emph{The 20 Most Representative Musicians in the World Jointly} selected by CNN and Songlines from \url{http://edition.cnn.com/2010/SHOWBIZ/Music/08/04/your.music.icon/index.html} 1053 | \vspace{-0.35cm} 1054 | \bibitem{4} Chen Dao-lan. \emph{The Discriminatory Relationship Between the Law of Two and Eight and the Long Tail Theory[J]}. Talent, 2010(15):280. 1055 | \vspace{-0.35cm} 1056 | \bibitem{5} LIU Yan-xia, XIAO Wen-jun, XI Jian-qing, et al. \emph{Properties of Scale-free Networks with Power Index Less than 2 }[J]. Journal of Nanchang University (Science Edition), 2013, 37(004):350-354. 1057 | \vspace{-0.35cm} 1058 | \bibitem{6} \emph{Electronic Music}.Wikipedia\url{https://en.wikipedia.org/wiki/Electronic\_music} 1059 | \vspace{-0.35cm} 1060 | \bibitem{7} \emph{Sound and Music -- 1890-2010}, World Pop Music Echoes (news.cn) from the Xinhua News Agency \url{http://fms.news.cn/swf/2016_sjxw/yqfm_2016/index.html} 1061 | \vspace{-0.35cm} 1062 | \bibitem{8} Zadeh, Farkhondeh Khorashadi,Nossent, Jiri,Sarrazin, Fanny, et al.\emph{Comparison of Variance-based and Moment-independent Global Sensitivity Analysis Approaches by Application to the SWAT Model} [J].Environmental modelling \& software,2017,91(May):210-222. 1063 | \vspace{-0.35cm} 1064 | \bibitem{9} Tan H Q, Niu Q Q.\emph{ A Time Series Symbolization Method Based on Sliding Window and Local Features}[J]. Computer Application Research, 2013, 30(003):796-798. 1065 | \end{thebibliography} 1066 | 1067 | % 以下为信件/备忘录部分,不需要可自行去掉 1068 | % 如有需要可将整个 letter 环境移动到文章开头或中间 1069 | % 请在后一个花括号内填写信件(Letter)或备忘录(Memorandum)标题 1070 | \begin{letter}{MEMO\centering} 1071 | \begin{flushleft} % 左对齐环境,无首行缩进 1072 | \textbf{To:} \textbf{Experts in The ICM Society}\\ 1073 | \textbf{From:} \textbf{Team 2107091}\\ 1074 | \textbf{Date:} \textbf{February 8th, 2021}\\ 1075 | \textbf{Subject:} \textbf{Analysis of Music Influence and Similarity, Suggestions for Futher Study} 1076 | \end{flushleft} 1077 | 1078 | \noindent Dear experts in the ICM Society: 1079 | 1080 | We are honored to inform you our achievement after performing data analysis and establishing the music influence and similarity evaluation model. 1081 | 1082 | Our team conducted a modeling analysis of the interactions between and within musicians across genres from 1921 to 2020. We develop a directed network for analyzing the interactions between musicians to understand the interactions that exist between musicians. An evaluation model to measure the similarity between the music is developed to provide an evaluation of the similarity between and within genres and to give the distinctive features of music in each genre. An evaluation model based on a sliding window is developed to select the leaders of each genre in different time periods. With the model we developed, we obtained the following valuable conclusions: 1083 | 1084 | $\bullet$ The influence of musicians on each other is consistent with Pareto's Principle, which states that a very small number of musicians have influenced the vast majority of musicians. We can consider that a very small number of outstanding musicians led the entire music world, and in-depth exploration of the works of these musicians may deepen our understanding of music. 1085 | 1086 | $\bullet$ Although there are differences between the genres, they are not completely independent but have no clear boundaries. As a carrier of human emotions, music has similarities among genres. The study of the evolutionary process of musical alternation and fusion among genres is conducive to enhancing our perception of the evolution of music as a whole. 1087 | 1088 | $\bullet$ Changes in music can clearly reflect social change. Music is a tool for people to express their feelings, and by monitoring changes in musical emotions, we can probe into the pent-up emotions in society and thus make predictions about social revolution. 1089 | 1090 | The model we developed still has limitations due to incomplete data and space limitations. We also need more data to achieve the following objectives: 1091 | 1092 | $\bullet$ We found that some of the artists are not common to both datasets, and some of the artists' debut dates are unknown, which causes some inaccuracy in our analysis. We hope to obtain a more complete dataset of artists and music. 1093 | 1094 | $\bullet$ If we know the specific year in which the followers were influenced by the influencer, then we can refine the model for determining the contagiousness of music and whether it actually produces change by the change in the music of the follower before and after the year of influence. Also, the dynamic impact indicators of influencers can be refined based on the change in the number of influenced people. 1095 | 1096 | $\bullet$ If we know the album information where the song is located, then we can modify our sliding window model to capture the short-term impact by directly comparing the similarity between albums. 1097 | 1098 | We expect to build a dynamic network in the future in the dimension of time and genre.We also hope to make a more detailed division in genre and to develop a set of visualization system in the future, to more describe the internal development. The above are the results of our team's research, and we sincerely hope they can provide you with useful information and data. 1099 | 1100 | \end{letter} 1101 | 1102 | 1103 | 1104 | %\begin{subappendices} % 附录环境 1105 | % 1106 | % \section{Appendix: Code} 1107 | % 1108 | %\end{subappendices} 1109 | 1110 | % 以下为附录内容 1111 | % 如您的论文中不需要附录,请自行删除 1112 | \end{document} % 结束 -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/PAPER.toc: -------------------------------------------------------------------------------- 1 | \contentsline {section}{\numberline {1}Introduction}{3}{section.0.1}% 2 | \contentsline {subsection}{\numberline {1.1}Background and Problem Statement}{3}{subsection.0.1.1}% 3 | \contentsline {subsection}{\numberline {1.2}Our work}{3}{subsection.0.1.2}% 4 | \contentsline {section}{\numberline {2}Preparation of the Models}{3}{section.0.2}% 5 | \contentsline {subsection}{\numberline {2.1}Assumptions}{3}{subsection.0.2.1}% 6 | \contentsline {subsection}{\numberline {2.2}Notations}{4}{subsection.0.2.2}% 7 | \contentsline {section}{\numberline {3}\textsc {Task 1}: Musical Influence Network Analysis Based on SNA}{4}{section.0.3}% 8 | \contentsline {subsection}{\numberline {3.1}Data Processing}{4}{subsection.0.3.1}% 9 | \contentsline {subsection}{\numberline {3.2}Model Overview}{4}{subsection.0.3.2}% 10 | \contentsline {subsection}{\numberline {3.3}Musical Influence Network Analysis Based on SNA}{5}{subsection.0.3.3}% 11 | \contentsline {subsubsection}{\numberline {3.3.1}Establishment of Musical Influence Network and Analysis Using SNA}{5}{subsubsection.0.3.3.1}% 12 | \contentsline {subsubsection}{\numberline {3.3.2}Model Test on Musical Influence Network}{7}{subsubsection.0.3.3.2}% 13 | \contentsline {subsection}{\numberline {3.4}Analysis of The Result}{7}{subsection.0.3.4}% 14 | \contentsline {subsection}{\numberline {3.5}Analysis of Musical Influence Sub-network}{8}{subsection.0.3.5}% 15 | \contentsline {section}{\numberline {4}\textsc {Task} 2 \& 3: Multi-dimensional Music Similarity Evaluation Model}{9}{section.0.4}% 16 | \contentsline {subsection}{\numberline {4.1}Model Overview}{9}{subsection.0.4.1}% 17 | \contentsline {subsection}{\numberline {4.2}Establishment of Multi-dimensional Music Similarity Evaluation Model}{10}{subsection.0.4.2}% 18 | \contentsline {subsubsection}{\numberline {4.2.1}Global Similarity of Music}{10}{subsubsection.0.4.2.1}% 19 | \contentsline {subsubsection}{\numberline {4.2.2}Partial Similarity of Music}{10}{subsubsection.0.4.2.2}% 20 | \contentsline {subsubsection}{\numberline {4.2.3}Fashion Trends Impact Factor}{11}{subsubsection.0.4.2.3}% 21 | \contentsline {subsection}{\numberline {4.3}Evaluation of Music Similarity}{11}{subsection.0.4.3}% 22 | \contentsline {subsection}{\numberline {4.4}Analysis of the Musical Discrimination and Influences of Genres}{13}{subsection.0.4.4}% 23 | \contentsline {subsubsection}{\numberline {4.4.1}Discrimination Evaluation Model of Feature Combination}{13}{subsubsection.0.4.4.1}% 24 | \contentsline {subsubsection}{\numberline {4.4.2}Analysis of Genre Changes Over Time}{15}{subsubsection.0.4.4.2}% 25 | \contentsline {section}{\numberline {5}Task 4 :Long-Short Term Influence Evaluation Model Based on Sliding Window}{16}{section.0.5}% 26 | \contentsline {subsection}{\numberline {5.1}Establishment of Sliding Window Model}{16}{subsection.0.5.1}% 27 | \contentsline {subsection}{\numberline {5.2}Test of the Established Model}{17}{subsection.0.5.2}% 28 | \contentsline {subsection}{\numberline {5.3}Contagious Evaluation of Musical Characteristics}{18}{subsection.0.5.3}% 29 | \contentsline {section}{\numberline {6}Task 5 \& 6 \& 7: Analysis of Music Revolution Over Time}{18}{section.0.6}% 30 | \contentsline {subsection}{\numberline {6.1}The Identification of the Musical revolution}{18}{subsection.0.6.1}% 31 | \contentsline {subsection}{\numberline {6.2}Major Influencers of Revolution}{20}{subsection.0.6.2}% 32 | \contentsline {subsection}{\numberline {6.3}Dynamic Influencer Evaluation Indicator}{20}{subsection.0.6.3}% 33 | \contentsline {subsection}{\numberline {6.4}Influence from Social, Political and Cultural Aspects}{21}{subsection.0.6.4}% 34 | \contentsline {section}{\numberline {7}Sensitive Analysis}{22}{section.0.7}% 35 | \contentsline {subsection}{\numberline {7.1}Sensitive Analysis of Model in \textsc {Task} 2 }{22}{subsection.0.7.1}% 36 | \contentsline {subsection}{\numberline {7.2}Sensitive Analysis of Model in \textsc {Task} 4 }{22}{subsection.0.7.2}% 37 | \contentsline {section}{\numberline {8}Strengths and Weaknesses}{24}{section.0.8}% 38 | \contentsline {subsection}{\numberline {8.1}Strengths}{24}{subsection.0.8.1}% 39 | \contentsline {subsection}{\numberline {8.2}Weaknesses}{24}{subsection.0.8.2}% 40 | \contentsline {section}{References}{24}{section.0.9}% 41 | \contentsline {section}{MEMO\centering }{25}{section.0.10}% 42 | \contentsfinish 43 | -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/README.md: -------------------------------------------------------------------------------- 1 | # 一个简洁、易用的美赛 LaTeX 模板: easymcm 2 | 3 | `easymcm.sty`是一个为美国大学生数学建模竞赛(MCM)准备的简易 LaTeX 宏包(文件)。它二次开发自 LaTeX 宏包 `mcmthesis` 于 2013 年发布的 `v5.0` 版本,原作者是[王昭礼](http://www.latexstudio.net)。 4 | 5 | > 事实上,`easymcm` 与 `mcmthesis` 的最新版本(`v6.2`)并无关联,后者为一个文档类(documentclass)而非一个宏包(package)。该文档类现由 [Liam0205](https://github.com/Liam0205/mcmthesis/releases/) 维护。 6 | 7 | 关于 `easymcm` 的说明及其来由,详见原作者[黑山雁的博客](https://www.cnblogs.com/xjtu-blacksmith/p/9737960.html)。目前,easymcm 宏包已经由[黑山雁](https://github.com/xjtu-blacksmith)移交给[钱院学辅](https://github.com/qyxf),仍由黑山雁负责当前的开发。 8 | 9 | 开发和分享此宏包,并无功利目的,仅是为了方便初学者的使用;基于此目的,作者不会将该宏包正式发布到 CTAN 之上,仅供国内用户学习使用。 10 | 11 | ## 使用说明 12 | 13 | 本模板中包含的主要文件为两个: 14 | 15 | - `easymcm.sty`:宏包文件,定义了论文的各项样式、配置; 16 | - `PAPER.tex`:论文正文,用于撰写论文的具体内容。 17 | 18 | 后者可根据用户的需要修改为其他名称,例如队伍控制号为 1234567 的队伍可将 `PAPER.tex` 改名为 `1234567.tex` 再编译,这样将直接得到文件名符合官方要求的 `1234567.pdf` 文件。 19 | 20 | 在这两份文件中,均有详细的注释说明。若用户需要局部修改样式(如修改某处的字号、段间距),在 `PAPER.tex` 中对应位置用分组 + 命令的方式就可解决;若用户需要修改全局样式(如修改正文的默认段间距),则可先到 `easymcm.sty` 文件中检查是否有对应的命令进行设置,若有可直接修改其参数,若无可自行添加。 21 | 22 | ## 编译方式 23 | 24 | 本份模板允许使用 `pdftex`、`xetex`、`luatex` 等各个通行引擎编译,兼容老旧的 CTeX 套装。 25 | 26 | 若您使用 CTeX 套装,建议您在[发布](https://github.com/qyxf/easymcm/releases)页面上下载带有 ANSI 字样的文件,否则文件中的中文注释将在 CTeX 套装的 WinEdt 编辑器中显示为乱码;反之,若您使用的是比较新的发行版本,请不要使用带有 ANSI 字样的版本。 27 | 28 | ## 联系作者 29 | 30 | 本模板目前由西安交大钱院学辅([@qyxf](https://github.com/qyxf/))负责,主要负责人仍然是[黑山雁](https://github.com/xjtu-blacksmith)。若在使用过程中出现任何问题,可通过以下方式联系我们: 31 | 32 | - 在本模板的 GitHub [问题页面](https://github.com/qyxf/easymcm/issues)发布帖子(推荐,但需要注册 GitHub 账号); 33 | - 在钱院学辅的[专门页面](https://qyxf.site/easymcm/)评论区发布帖子(推荐,不需要注册任何账号); 34 | - 在作者的[博客页面](https://www.cnblogs.com/xjtu-blacksmith/p/easymcm.html)发布评论(不推荐,需要注册博客园账号); 35 | - 通过作者的邮箱 yjr134@163.com 联系作者(不推荐,且作者可能不会回复你)。 36 | 37 | 另外,作者将在近期录制本模板的视频教程,敬请专注。 -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/easymcm.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% EasyMCM: 一个简洁、易用的美赛模板 3 | %% Oringinal template (MCMthesis v5.0) by latexstudio, 4 | %% Redeveloped by youjiarui189 (xjtu-blacksmith), 5 | %% 目前由西安交大钱院学辅(@qyxf)负责,网址:https://qyxf.site/ 6 | %% 7 | %% v5.00: 注释全部汉化(且添加了大量注释),并将格式改进为符合当前规范的版本 8 | %% v5.01: 正式改为独立宏包 EasyMCM,改为简洁、清晰、符合美赛规范的格式 9 | %% v5.02: 支持了 7 位控制号,改进了若干已知问题,并补充了一些非必需的内容 10 | %% v5.1 : 适配 2020 年 Summary sheet 样式,大幅优化代码,更加简明易用 11 | %% 12 | %% 博客地址:http://www.cnblogs.com/xjtu-blacksmith/ 13 | %% GitHub 发布页面:https://github.com/qyxf/easymcm/releases 14 | %% 15 | 16 | \NeedsTeXFormat{LaTeX2e}[2005/12/01] 17 | \ProvidesPackage{easymcm}[2019/01/21 EasyMCM v5.1] 18 | \typeout{EasyMCM Package, version 5.1} 19 | 20 | % 基本宏包 21 | \RequirePackage[a4paper,margin=2.5cm,bottom=1.5cm]{geometry} % 页边距和纸张大小 22 | \RequirePackage{fancyhdr,fancybox} % 设置页眉页脚 23 | \RequirePackage{ifthen} % 逻辑结构 24 | \RequirePackage{lastpage} % 生成"Page X of XX" 25 | \RequirePackage{paralist} % 修改 itemize 各项间距 26 | \RequirePackage{indentfirst} % 全文首行缩进 27 | \RequirePackage[toc,page,title,titletoc,header]{appendix} % 附录定制 28 | 29 | % 数学公式 30 | \RequirePackage{amsfonts,amsmath,amssymb} % AMS-LaTeX 符号、公式 31 | 32 | % 定理环境声明 33 | % 事实上大部分论文中用不到,但仍保留以供使用 34 | \newtheorem{Theorem}{Theorem}[section] 35 | \newtheorem{Lemma}[Theorem]{Lemma} 36 | \newtheorem{Corollary}[Theorem]{Corollary} 37 | \newtheorem{Proposition}[Theorem]{Proposition} 38 | \newtheorem{Definition}[Theorem]{Definition} 39 | \newtheorem{Example}[Theorem]{Example} 40 | 41 | % 目录 42 | \RequirePackage{titlesec,titletoc} % 自定义目录样式 43 | \setcounter{tocdepth}{3} % 目录显示到 subsubsection(3) 级别 44 | \RequirePackage[font=small]{caption} % 使图表标题字号小一号 45 | \renewcommand\abstractname{Summary} % 摘要标题 46 | 47 | % 表格相关 48 | \RequirePackage{longtable,multirow,array} % 各种基本的表格宏包 49 | \RequirePackage{booktabs} % 三线表宏包 50 | 51 | % 字体相关 52 | \RequirePackage[T1]{fontenc} % 开启拓展区正文字体 53 | \RequirePackage{url} % 网址宏包,以下命令使得网址能自动换行 54 | \def\UrlBreaks{\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J 55 | \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V 56 | \do\W\do\X\do\Y\do\Z\do\[\do\\\do\]\do\^\do\_\do\`\do\a\do\b 57 | \do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m\do\n 58 | \do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z 59 | \do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\;\do\>\do\]\do\)\do\, 60 | \do\?\do\'\do+\do\=\do\#} 61 | 62 | % 基本参数 63 | \setlength{\headheight}{15pt} 64 | \newcommand{\MCM@control}{0000000} % 队伍控制号,默认为 0000000 65 | \DeclareOption*{\edef\MCM@control{\CurrentOption}} % 宏包选项接收控制号 66 | \ProcessOptions 67 | \newcommand{\control}{\MCM@control} 68 | \newcommand{\team}{Team \#\ \MCM@control} 69 | \newcommand{\contest}{MCM/ICM} 70 | 71 | % 书签,插图和交叉引用的设置 72 | \RequirePackage{graphicx} % 插图 73 | \RequirePackage{flafter} % 引用该宏包可避免图片在引用它的正文之前出现 74 | \RequirePackage{ifpdf} % 判断是否在运行 pdftex 75 | \ifpdf% 76 | \RequirePackage{epstopdf} % pdftex 不能使用 eps 图片,用该宏包转成 pdf 后使用 77 | \DeclareGraphicsExtensions{.pdf,.jpg,.jpeg,.png} % 允许的图片类型 78 | \RequirePackage[ 79 | linkcolor=black, % 消除链接色彩 80 | citecolor=black, 81 | colorlinks=true, 82 | linkcolor=black, 83 | citecolor=black, 84 | urlcolor=black]{hyperref} 85 | \else\DeclareGraphicsExtensions{.eps,.ps} % 不需要转换 eps 图片格式 86 | \ifxetex\RequirePackage[ 87 | xetex, % 运行 xetex 88 | pdfstartview=FitH, 89 | bookmarksnumbered=true, 90 | bookmarksopen=true, 91 | colorlinks=true, 92 | linkcolor=black, 93 | citecolor=black, 94 | urlcolor=black]{hyperref} 95 | \else\RequirePackage[ 96 | dvipdfm, % 运行其他编译引擎(如 luatex) 97 | pdfstartview=FitH, 98 | bookmarksnumbered=true, 99 | bookmarksopen=true, 100 | colorlinks=true, 101 | linkcolor=black, 102 | citecolor=black, 103 | urlcolor=black]{hyperref} 104 | \fi\fi 105 | 106 | % 以下设置使得一页上最多有六个浮动对象(图、表) 107 | % 且顶部最多三个,底部最多三个 108 | % 可自行修改参数 109 | \setcounter{totalnumber}{6} 110 | \setcounter{topnumber}{3} 111 | \setcounter{bottomnumber}{3} 112 | 113 | % 很多人发现缺省的浮动参数过于严格了 114 | % 下面的命令 115 | \renewcommand{\textfraction}{0.15} 116 | \renewcommand{\topfraction}{0.85} 117 | \renewcommand{\bottomfraction}{0.65} 118 | \renewcommand{\floatpagefraction}{0.60} 119 | % 将浮动参数重新设置为更宽松的值。 120 | % ---选自《LaTeX2e插图指南》 121 | 122 | % 图表标题名称 123 | \renewcommand{\figurename}{Figure} 124 | \renewcommand{\tablename}{Table} 125 | \setlength{\belowcaptionskip}{4pt} 126 | \setlength{\abovecaptionskip}{4pt} % 设置 caption 与上下文间距 127 | 128 | % 以下定义了自动识别的图表文件夹 129 | % 若使用这些名字命名文件夹 130 | % 则引用图片路径时只需填文件名即可 131 | \graphicspath{{./}{./img/}{./fig/}{./image/}{./figure/}{./picture/}} 132 | 133 | % 页眉页脚设置 134 | \lhead{\small \team} 135 | \chead{} 136 | \rhead{\small Page \thepage\ of \pageref{LastPage}} 137 | \lfoot{} 138 | \cfoot{} 139 | \rfoot{} 140 | 141 | % 信件/备忘录环境 142 | \newcounter{prefix} % 创建隐藏前缀计数器,避免对 letter 环境编号 143 | \renewcommand{\theHsection}{\theprefix.\thesection} % 针对 hyperref 144 | \newenvironment{letter}[1]{\refstepcounter{section}\addtocounter{section}{-1}\section*{#1}\addcontentsline{toc}{section}{#1}}{\stepcounter{prefix}} 145 | 146 | % 快乐 etoolbox 147 | \RequirePackage{etoolbox} % 减轻正文复杂度 148 | \AtBeginEnvironment{abstract}{\setlength\parskip{1ex}} % 摘要中增加段距 149 | \AtBeginEnvironment{thebibliography}{ 150 | \refstepcounter{section} 151 | \addcontentsline{toc}{section}{References}} % 参考文献附加链接 152 | \BeforeBeginEnvironment{subappendices}{ 153 | \clearpage 154 | \setcounter{secnumdepth}{-1}} % 附录附加链接 155 | \BeforeBeginEnvironment{letter}{\clearpage} % 信件环境附加换页 156 | 157 | % COMAP 要求的 Summary Sheet 标题(2020) 158 | % 注意每年比赛时有可能有小调整 159 | % 请以官网发布的样式为准自行做小的修改! 160 | \newcommand{\@problem}[1]{} 161 | \newcommand{\problem}[1]{\gdef\@problem{#1}} 162 | \newcommand{\makesheet}{ %生成sheet头命令的定义 163 | \null% 164 | \vspace*{-5pc}% 165 | \begin{center} 166 | \begingroup 167 | \setlength{\parindent}{0pt} 168 | \begin{minipage}[t]{0.33\linewidth} 169 | \centering 170 | \textbf{Problem Chosen}\\ 171 | \LARGE\@problem 172 | \end{minipage}% 173 | \begin{minipage}[t]{0.34\linewidth} 174 | \centering 175 | \bfseries\the\year\\\contest\\{Summary Sheet} 176 | \end{minipage}% 177 | \begin{minipage}[t]{0.33\linewidth} 178 | \centering 179 | \textbf{Team Control Number}\\ 180 | \LARGE\MCM@control\\[1.8pc] 181 | \end{minipage}\par 182 | \vskip1ex 183 | \rule{\linewidth}{1.5pt}\par 184 | \endgroup 185 | \vskip 10pt% 186 | \end{center}} 187 | 188 | % abstract 环境的设置 189 | \newbox\@abstract % 将摘要创建为盒子 190 | \setbox\@abstract\hbox{} % 盒子置空 191 | \long\def\abstract{\bgroup\global\setbox\@abstract\vbox\bgroup\hsize\textwidth} 192 | \def\endabstract{\egroup\egroup} 193 | \def\make@abstract{ 194 | \vskip -10pt\par 195 | {\centering\Large\bfseries\@title\vskip1ex}\par % 插入论文标题,字号可自己修改 196 | {\centering\bfseries\abstractname\vskip1.5ex}\par %摘要标题 197 | \noindent\usebox\@abstract\par % 摘要正文 198 | \vskip 10pt} % 底部留空,若不需要可删去 199 | 200 | % Summary Sheet 生成 201 | \def\@maketitle{ 202 | \makesheet% 203 | \make@abstract 204 | \pagenumbering{gobble} 205 | \pagestyle{empty} 206 | \newpage 207 | \pagenumbering{arabic} 208 | \setcounter{page}{2}} 209 | 210 | % 目录生成 211 | \renewcommand\tableofcontents{% 212 | \centerline{\normalfont\Large\bfseries\contentsname% 213 | \@mkboth{% 214 | \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% 215 | \vskip 3ex% 216 | \@starttoc{toc}% 217 | \thispagestyle{empty} 218 | \clearpage 219 | \pagestyle{fancy} 220 | \setlength\parskip{1ex}} % 调整段间距 221 | 222 | \endinput -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/all.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/all.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/all.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/dp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/dp.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/emotion.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/emotion.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/jubu.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/jubu.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/jubu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/jubu.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model2.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model2.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model3.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/model3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/model3.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/musician.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/musician.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/musician.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/musician.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/pca.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/pca.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/pca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/pca.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/pca1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/pca1.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/plot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/plot.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/plot.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/pop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/pop.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/pop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/pop.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/quanju.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/quanju.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/quanju.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/quanju.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/sa1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/sa1.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/sa2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/sa2.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/sa21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/sa21.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/sub.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/sub.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/subtime.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/subtime.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/subtime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/subtime.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/time.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/time.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/time.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/work.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/work.pdf -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/img/work.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/tex源程序/2021 D/easymcm/img/work.png -------------------------------------------------------------------------------- /tex源程序/2021 D/easymcm/pythonhighlight.sty: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \ProvidesPackage{pythonhighlight}[2011/09/19 python code highlighting; provided by Olivier Verdier ] 3 | 4 | 5 | \RequirePackage{listings} 6 | \RequirePackage{xcolor} 7 | 8 | \renewcommand*{\lstlistlistingname}{Code Listings} 9 | \renewcommand*{\lstlistingname}{Code Listing} 10 | \definecolor{gray}{gray}{0.5} 11 | \colorlet{commentcolour}{green!50!black} 12 | 13 | \colorlet{stringcolour}{red!60!black} 14 | \colorlet{keywordcolour}{magenta!90!black} 15 | \colorlet{exceptioncolour}{yellow!50!red} 16 | \colorlet{commandcolour}{blue!60!black} 17 | \colorlet{numpycolour}{blue!60!green} 18 | \colorlet{literatecolour}{magenta!90!black} 19 | \colorlet{promptcolour}{green!50!black} 20 | \colorlet{specmethodcolour}{violet} 21 | 22 | \newcommand*{\framemargin}{3ex} 23 | 24 | \newcommand*{\literatecolour}{\textcolor{literatecolour}} 25 | 26 | \newcommand*{\pythonprompt}{\textcolor{promptcolour}{{>}{>}{>}}} 27 | 28 | \lstdefinestyle{mypython}{ 29 | %\lstset{ 30 | %keepspaces=true, 31 | language=python, 32 | showtabs=true, 33 | tab=, 34 | tabsize=2, 35 | basicstyle=\ttfamily\footnotesize,%\setstretch{.5}, 36 | stringstyle=\color{stringcolour}, 37 | showstringspaces=false, 38 | alsoletter={1234567890}, 39 | otherkeywords={\%, \}, \{, \&, \|}, 40 | keywordstyle=\color{keywordcolour}\bfseries, 41 | emph={and,break,class,continue,def,yield,del,elif ,else,% 42 | except,exec,finally,for,from,global,if,import,in,% 43 | lambda,not,or,pass,print,raise,return,try,while,assert,with}, 44 | emphstyle=\color{blue}\bfseries, 45 | emph={[2]True, False, None}, 46 | emphstyle=[2]\color{keywordcolour}, 47 | emph={[3]object,type,isinstance,copy,deepcopy,zip,enumerate,reversed,list,set,len,dict,tuple,xrange,append,execfile,real,imag,reduce,str,repr}, 48 | emphstyle=[3]\color{commandcolour}, 49 | emph={Exception,NameError,IndexError,SyntaxError,TypeError,ValueError,OverflowError,ZeroDivisionError}, 50 | emphstyle=\color{exceptioncolour}\bfseries, 51 | %upquote=true, 52 | morecomment=[s]{"""}{"""}, 53 | commentstyle=\color{commentcolour}\slshape, 54 | %emph={[4]1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, 55 | emph={[4]ode, fsolve, sqrt, exp, sin, cos,arctan, arctan2, arccos, pi, array, norm, solve, dot, arange, isscalar, max, sum, flatten, shape, reshape, find, any, all, abs, plot, linspace, legend, quad, polyval,polyfit, hstack, concatenate,vstack,column_stack,empty,zeros,ones,rand,vander,grid,pcolor,eig,eigs,eigvals,svd,qr,tan,det,logspace,roll,min,mean,cumsum,cumprod,diff,vectorize,lstsq,cla,eye,xlabel,ylabel,squeeze}, 56 | emphstyle=[4]\color{numpycolour}, 57 | emph={[5]__init__,__add__,__mul__,__div__,__sub__,__call__,__getitem__,__setitem__,__eq__,__ne__,__nonzero__,__rmul__,__radd__,__repr__,__str__,__get__,__truediv__,__pow__,__name__,__future__,__all__}, 58 | emphstyle=[5]\color{specmethodcolour}, 59 | emph={[6]assert,yield}, 60 | emphstyle=[6]\color{keywordcolour}\bfseries, 61 | emph={[7]range}, 62 | emphstyle={[7]\color{keywordcolour}\bfseries}, 63 | % emph={[7]self}, 64 | % emphstyle=[7]\bfseries, 65 | literate=*% 66 | {:}{{\literatecolour:}}{1}% 67 | {=}{{\literatecolour=}}{1}% 68 | {-}{{\literatecolour-}}{1}% 69 | {+}{{\literatecolour+}}{1}% 70 | {*}{{\literatecolour*}}{1}% 71 | {**}{{\literatecolour{**}}}2% 72 | {/}{{\literatecolour/}}{1}% 73 | {//}{{\literatecolour{//}}}2% 74 | {!}{{\literatecolour!}}{1}% 75 | %{(}{{\literatecolour(}}{1}% 76 | %{)}{{\literatecolour)}}{1}% 77 | {[}{{\literatecolour[}}{1}% 78 | {]}{{\literatecolour]}}{1}% 79 | {<}{{\literatecolour<}}{1}% 80 | {>}{{\literatecolour>}}{1}% 81 | {>>>}{\pythonprompt}{3}% 82 | ,% 83 | %aboveskip=.5ex, 84 | frame=trbl, 85 | %frameround=tttt, 86 | %framesep=.3ex, 87 | rulecolor=\color{black!40}, 88 | %framexleftmargin=\framemargin, 89 | %framextopmargin=.1ex, 90 | %framexbottommargin=.1ex, 91 | %framexrightmargin=\framemargin, 92 | %framexleftmargin=1mm, framextopmargin=1mm, frame=shadowbox, rulesepcolor=\color{blue},#1 93 | %frame=tb, 94 | backgroundcolor=\color{white}, 95 | breakindent=.5\textwidth,frame=single,breaklines=true% 96 | %} 97 | } 98 | 99 | \newcommand*{\inputpython}[3]{\lstinputlisting[firstline=#2,lastline=#3,firstnumber=#2,frame=single,breakindent=.5\textwidth,frame=single,breaklines=true,style=mypython]{#1}} 100 | 101 | \lstnewenvironment{python}[1][]{\lstset{style=mypython}}{} 102 | 103 | \lstdefinestyle{mypythoninline}{ 104 | style=mypython,% 105 | basicstyle=\ttfamily,% 106 | keywordstyle=\color{keywordcolour},% 107 | emphstyle={[7]\color{keywordcolour}},% 108 | emphstyle=\color{exceptioncolour},% 109 | literate=*% 110 | {:}{{\literatecolour:}}{2}% 111 | {=}{{\literatecolour=}}{2}% 112 | {-}{{\literatecolour-}}{2}% 113 | {+}{{\literatecolour+}}{2}% 114 | {*}{{\literatecolour*}}2% 115 | {**}{{\literatecolour{**}}}3% 116 | {/}{{\literatecolour/}}{2}% 117 | {//}{{\literatecolour{//}}}{2}% 118 | {!}{{\literatecolour!}}{2}% 119 | %{(}{{\literatecolour(}}{2}% 120 | %{)}{{\literatecolour)}}{2}% 121 | {[}{{\literatecolour[}}{2}% 122 | {]}{{\literatecolour]}}{2}% 123 | {<}{{\literatecolour<}}{2}% 124 | {<=}{{\literatecolour{<=}}}3% 125 | {>}{{\literatecolour>}}{2}% 126 | {>=}{{\literatecolour{>=}}}3% 127 | {==}{{\literatecolour{==}}}3% 128 | {!=}{{\literatecolour{!=}}}3% 129 | {+=}{{\literatecolour{+=}}}3% 130 | {-=}{{\literatecolour{-=}}}3% 131 | {*=}{{\literatecolour{*=}}}3% 132 | {/=}{{\literatecolour{/=}}}3% 133 | %% emphstyle=\color{blue},% 134 | } 135 | 136 | \newcommand*{\pyth}{\lstinline[style=mypythoninline]} 137 | 138 | -------------------------------------------------------------------------------- /代码/2.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | music=pd.read_csv('/content/drive/MyDrive/dataset/2021D/full_music_data.csv') 4 | influence=pd.read_csv('/content/drive/MyDrive/dataset/2021D/influence_data.csv') 5 | def make_label(x): 6 | x=x[1:-1] 7 | x=x.split(',') 8 | if len(x)==1: 9 | return 0 10 | else: 11 | return 1 12 | 13 | music['label']=music['artists_id'].apply(make_label) 14 | music=music[music['label']==0] 15 | 16 | def make_artists(x): 17 | x=x[1:-1] 18 | x=x.split(',') 19 | return x[0] 20 | 21 | music['artists_id']=music['artists_id'].apply(make_artists) 22 | music.head(5) 23 | artist=pd.read_csv('/content/drive/MyDrive/dataset/2021D/data_by_artist.csv') 24 | influencer_name = influence['influencer_id'].unique().tolist() 25 | genre_dict = {} 26 | for id in influencer_name: 27 | genres = influence[influence['influencer_id'] == id]['influencer_main_genre'].unique().tolist() 28 | if len(genres) != 1: 29 | print('False') 30 | genre_dict[id] = genres[0] 31 | 32 | follower_name = influence['follower_id'].unique().tolist() 33 | for id in follower_name: 34 | genres = influence[influence['follower_id'] == id]['follower_main_genre'].unique() 35 | if len(genres) != 1: 36 | print('False') 37 | genre_dict[id] = genres[0] 38 | 39 | genre_members=defaultdict(list) 40 | genres=['Avant-Garde','Blues',"Children's",'Classical', 41 | 'Comedy/Spoken','Country','Easy Listening','Electronic', 42 | 'Folk','International','Jazz','Latin','New Age','Pop/Rock', 43 | 'R&B;','Reggae','Religious','Stage & Screen','Vocal'] 44 | 45 | for key,genre in genre_dict.items(): 46 | if genre=='Unknown': 47 | continue 48 | genre_members[genre].append(key) 49 | 50 | name_list1 = np.random.choice(genre_members['Pop/Rock'], 100, replace=False) 51 | name_list2 = np.random.choice(genre_members['R&B;'], 100, replace=False) 52 | name_list3 = np.random.choice(genre_members['Jazz'], 100, replace=False) 53 | label_dict = {} 54 | for name in name_list1: 55 | label_dict[name] = 'Pop/Rock' 56 | for name in name_list2: 57 | label_dict[name] = 'R&B;' 58 | 59 | for name in name_list3: 60 | label_dict[name] = 'Jazz' 61 | feature_columns=['artists_id','danceability','energy','valence','tempo','loudness','mode','key','acousticness','instrumentalness','liveness','speechiness','duration_ms','song_title (censored)'] 62 | music_feature=music[feature_columns] 63 | 64 | nor_columns=['tempo','loudness','key','duration_ms'] 65 | for column in nor_columns: 66 | music_feature[column]=music_feature[column]/music_feature[column].max() 67 | 68 | 69 | def cos_sim(vector_a, vector_b): 70 | """ 71 | 计算两个向量之间的余弦相似度 72 | :param vector_a: 向量 a 73 | :param vector_b: 向量 b 74 | :return: sim 75 | """ 76 | vector_a = np.mat(vector_a) 77 | vector_b = np.mat(vector_b) 78 | num = float(vector_a * vector_b.T) 79 | denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b) 80 | cos = num / denom 81 | sim = 1 + 0.5 * cos 82 | return sim 83 | 84 | def o_sim(x1,x2): 85 | distance=np.linalg.norm(x1-x2) 86 | return 1/(1+distance) 87 | 88 | def make_global_distance(x1,x2,dis_type): 89 | if dis_type=='cos': 90 | return cos_sim(x1,x2) 91 | elif dis_type=='o': 92 | return o_sim(x1,x2) 93 | else: 94 | return cos_sim(x1,x2)/1.5+o_sim(x1,x2) 95 | 96 | 97 | feature_columns=['artist_id','danceability','energy','valence','tempo','loudness','mode','key','acousticness','instrumentalness','liveness','speechiness','duration_ms'] 98 | artist_feature=artist[feature_columns] 99 | nor_columns=['tempo','key','duration_ms'] 100 | for column in nor_columns: 101 | artist_feature.loc[:,column]=artist_feature[column]/artist_feature[column].max() 102 | artist_feature.loc[:,'loudness']=artist_feature['loudness']/25 103 | 104 | train_feature=artist_feature.loc[artist_feature['artist_id'].isin(name_list1)] 105 | 106 | from tqdm import tqdm 107 | 108 | dis_type = 'o' 109 | feature_columns = ['danceability', 'energy', 'valence', 'tempo', 'loudness', 'mode', 'key', 'acousticness', 110 | 'instrumentalness', 'liveness', 'speechiness', 'duration_ms'] 111 | music_global_sim = defaultdict(list) 112 | music_all_sim = defaultdict(list) 113 | with tqdm(total=train_feature.shape[0] - 1) as pbar: 114 | for i in range(train_feature.shape[0] - 1): 115 | pbar.update(1) 116 | for j in range(i + 1, train_feature.shape[0]): 117 | info1 = train_feature.iloc[[i, j], :] 118 | 119 | index = info1.index.tolist() 120 | index1, index2 = index 121 | 122 | x1 = info1.iloc[0] 123 | id1 = int(x1['artist_id']) 124 | x1 = x1[feature_columns] 125 | x2 = info1.iloc[1] 126 | id2 = int(x2['artist_id']) 127 | x2 = x2[feature_columns] 128 | global_distance = make_global_distance(x1, x2, dis_type) 129 | music_global_sim['id0'].append(id1) 130 | music_global_sim['genre0'].append(label_dict[id1]) 131 | music_global_sim['id1'].append(id2) 132 | music_global_sim['genre1'].append(label_dict[id2]) 133 | music_global_sim['sim'].append(global_distance) 134 | local_distance = make_local_distance(x1, x2, feature_sorts, dis_type) 135 | distance = (global_distance + local_distance) / 2 136 | music_all_sim['id0'].append(id1) 137 | music_all_sim['id1'].append(id2) 138 | music_all_sim['genre0'].append(label_dict[id1]) 139 | music_all_sim['genre1'].append(label_dict[id2]) 140 | music_all_sim['sim'].append(distance) 141 | 142 | music_global_sim = pd.DataFrame(music_global_sim) 143 | music_global_sim.to_csv('全局相似度.csv') 144 | music_all_sim = pd.DataFrame(music_all_sim) 145 | music_all_sim.to_csv('全局+局部相似度.csv') 146 | 147 | def make_label(x): 148 | if int(x) in label_dict.keys(): 149 | return label_dict[int(x)] 150 | else: 151 | return 4 152 | 153 | music_feature['label']=music_feature['artists_id'].apply(make_label) 154 | artist=pd.read_csv('/content/drive/MyDrive/dataset/2021D/data_by_artist.csv') 155 | artist_feature1=music_feature[music_feature['label']=='Pop/Rock'] 156 | print(artist_feature1.shape) 157 | artist_feature2=music_feature[music_feature['label']=='R&B;'] 158 | artist_feature3=music_feature[music_feature['label']=='Jazz'] 159 | def make_label1(x): 160 | if len(x)<=5: 161 | return 0 162 | else: 163 | return 1 164 | music_feature['label1']=music_feature['song_title (censored)'] 165 | music_feature1=music_feature[music_feature['label1']==0] 166 | 167 | 168 | artist_feature1=music_feature1[music_feature1['label']=='Pop/Rock'] 169 | artist_feature2=music_feature1[music_feature1['label']=='R&B;'] 170 | artist_feature3=music_feature1[music_feature1['label']=='Jazz'] 171 | 172 | index1=artist_feature1.index.tolist() 173 | index1=list(np.random.choice(index1,4,replace=False)) 174 | 175 | index2=artist_feature2.index.tolist() 176 | index2=list(np.random.choice(index2,4,replace=False)) 177 | 178 | index3=artist_feature3.index.tolist() 179 | index3=list(np.random.choice(index3,4,replace=False)) 180 | 181 | index1.extend(index2) 182 | index1.extend(index3) 183 | 184 | music_artist=music_feature.loc[index1] 185 | 186 | dis_type = 'o' 187 | feature_columns = ['danceability', 'energy', 'valence', 'tempo', 'loudness', 'mode', 'key', 'acousticness', 188 | 'instrumentalness', 'liveness', 'speechiness', 'duration_ms'] 189 | music_global_sim1 = defaultdict(list) 190 | music_all_sim1 = defaultdict(list) 191 | with tqdm(total=music_artist.shape[0] - 1) as pbar: 192 | for i in range(music_artist.shape[0] - 1): 193 | pbar.update(1) 194 | for j in range(i + 1, music_artist.shape[0]): 195 | info1 = music_artist.iloc[[i, j], :] 196 | 197 | # index=info1.index.tolist() 198 | # index1,index2=index 199 | 200 | x1 = info1.iloc[0] 201 | id1 = x1['song_title (censored)'] 202 | x1 = x1[feature_columns] 203 | x2 = info1.iloc[1] 204 | id2 = x2['song_title (censored)'] 205 | x2 = x2[feature_columns] 206 | global_distance = make_global_distance(x1, x2, dis_type) 207 | music_global_sim1['id0'].append(id1) 208 | # music_global_sim1['genre0'].append(id1) 209 | music_global_sim1['id1'].append(id2) 210 | music_global_sim1['sim'].append(global_distance) 211 | music_global_sim1['id0'].append(id2) 212 | # music_global_sim1['genre0'].append(id1) 213 | music_global_sim1['id1'].append(id1) 214 | music_global_sim1['sim'].append(global_distance) 215 | 216 | # music_global_sim1['genre1'].append(label_dict[id2]) 217 | 218 | local_distance = make_local_distance(x1, x2, feature_sorts, dis_type) 219 | distance = (global_distance + local_distance) / 2 220 | music_all_sim1['id0'].append(id1) 221 | music_all_sim1['id1'].append(id2) 222 | # music_all_sim1['genre0'].append(label_dict[id1]) 223 | # music_all_sim1['genre1'].append(label_dict[id2]) 224 | music_all_sim1['sim'].append(distance) 225 | music_all_sim1['id0'].append(id2) 226 | music_all_sim1['id1'].append(id1) 227 | # music_all_sim1['genre0'].append(label_dict[id1]) 228 | # music_all_sim1['genre1'].append(label_dict[id2]) 229 | music_all_sim1['sim'].append(distance) 230 | 231 | A = np.ones((12, 12)) 232 | music_global_sim1 = pd.DataFrame(music_global_sim1) 233 | for i in range(music_artist.shape[0]): 234 | for j in range(music_artist.shape[0]): 235 | if i == j: 236 | continue 237 | else: 238 | info1 = music_artist.iloc[i] 239 | info2 = music_artist.iloc[j] 240 | 241 | id1 = info1['song_title (censored)'] 242 | id2 = info2['song_title (censored)'] 243 | 244 | score = music_global_sim1.loc[(music_global_sim1['id0'] == id1) & (music_global_sim1['id1'] == id2)]['sim'] 245 | A[i, j] = score 246 | columns = music_artist['song_title (censored)'].to_numpy() 247 | A = pd.DataFrame(A) 248 | A.columns = columns 249 | A.index = columns 250 | A.to_csv('歌曲.csv') 251 | 252 | 253 | def make_label(x): 254 | if x['genre0']==x['genre1']: 255 | return 0 256 | else: 257 | return 1 258 | 259 | 260 | id2=music_all_sim['id1'].to_numpy() 261 | id1=music_all_sim['id0'].to_numpy() 262 | sim=music_all_sim['sim'].to_numpy() 263 | gener1=music_all_sim['genre0'].to_numpy() 264 | gener2=music_all_sim['genre1'].to_numpy() 265 | 266 | extra={} 267 | extra['id0']=id2 268 | extra['id1']=id1 269 | extra['genre0']=gener2 270 | extra['genre1']=gener1 271 | extra['sim']=sim 272 | 273 | extra=pd.DataFrame(extra) 274 | music_all_sim=pd.concat([music_all_sim,extra]) 275 | music_all_sim['label']=music_all_sim.apply(make_label,axis=1) 276 | 277 | 278 | same=music_all_sim[music_all_sim['label']==0] 279 | diff=music_all_sim[music_all_sim['label']==1] 280 | print(same.shape,diff.shape) 281 | 282 | pop_same_mean=same[same['genre0']=='Pop/Rock']['sim'].mean() 283 | rb_same_mean=same[same['genre1']=='R&B;']['sim'].mean() 284 | jz_same_mean=same[same['genre1']=='Jazz']['sim'].mean() 285 | 286 | pop_rb_mean=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='R&B;')]['sim'].mean() 287 | pop_jz_mean=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='Jazz')]['sim'].mean() 288 | rb_jz_mean=diff.loc[(diff['genre0']=='R&B;')&(diff['genre1']=='Jazz')]['sim'].mean() 289 | 290 | pop_same_min=same[same['genre0']=='Pop/Rock']['sim'].min() 291 | rb_same_min=same[same['genre1']=='R&B;']['sim'].min() 292 | jz_same_min=same[same['genre1']=='Jazz']['sim'].min() 293 | 294 | pop_rb_min=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='R&B;')]['sim'].min() 295 | pop_jz_min=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='Jazz')]['sim'].min() 296 | rb_jz_min=diff.loc[(diff['genre0']=='R&B;')&(diff['genre1']=='Jazz')]['sim'].min() 297 | 298 | pop_same_max=same[same['genre0']=='Pop/Rock']['sim'].max() 299 | rb_same_max=same[same['genre1']=='R&B;']['sim'].max() 300 | jz_same_max=same[same['genre1']=='Jazz']['sim'].max() 301 | 302 | pop_rb_max=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='R&B;')]['sim'].max() 303 | pop_jz_max=diff.loc[(diff['genre0']=='Pop/Rock')&(diff['genre1']=='Jazz')]['sim'].max() 304 | rb_jz_max=diff.loc[(diff['genre0']=='R&B;')&(diff['genre1']=='Jazz')]['sim'].max() 305 | 306 | score=defaultdict(list) 307 | score['pop_same']=[pop_same_mean,pop_same_min,pop_same_max] 308 | score['rb_same']=[rb_same_mean,rb_same_min,rb_same_max] 309 | score['jz_same']=[jz_same_mean,jz_same_min,jz_same_max] 310 | score['pop_rb']=[pop_rb_mean,pop_rb_min,pop_rb_max] 311 | score['pop_jz']=[pop_jz_mean,pop_jz_min,pop_jz_max] 312 | score['rb_jz']=[rb_jz_mean,rb_jz_min,rb_jz_max] 313 | score=pd.DataFrame(score) 314 | score.to_csv('流派差异.csv') -------------------------------------------------------------------------------- /代码/2021d_1.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | 4 | '''第一问''' 5 | influence=pd.read_csv('/content/drive/MyDrive/dataset/2021D/influence_data.csv') 6 | influence['year']=influence['follower_active_start']-influence['influencer_active_start'] 7 | from collections import defaultdict 8 | import math 9 | 10 | groups = influence.groupby('influencer_id') 11 | influence_dict = {} 12 | influencer_name=influence['influencer_id'].unique().tolist() 13 | name_dict={} 14 | for id in influencer_name: 15 | name=influence[influence['influencer_id']==id]['influencer_name'].unique()[0] 16 | name_dict[id]=name 17 | 18 | follower_name=influence['follower_id'].unique().tolist() 19 | for id in follower_name: 20 | name=influence[influence['follower_id']==id]['follower_name'].unique()[0] 21 | name_dict[id]=name 22 | all_name=list(set(influencer_name).union(set(follower_name))) 23 | data = defaultdict(list) 24 | for name, group in groups: 25 | follower_id = [] 26 | follower_scores = [] 27 | main = group['influencer_main_genre'].unique()[0] 28 | origin_year = group['influencer_active_start'].unique()[0] 29 | for i in range(group.shape[0]): 30 | info = group.iloc[i] 31 | follower_id.append(info['follower_id']) 32 | if info['follower_main_genre'] != main: 33 | score = 2 34 | else: 35 | score = 1 36 | if info['year'] < 0: 37 | year = 1.4 * abs(info['year']) 38 | else: 39 | year = info['year'] 40 | score = score * math.exp(year / 80) 41 | follower_scores.append(score) 42 | 43 | data['fluencer'].append(info['follower_id']) 44 | data['follower'].append(name) 45 | data['score'].append(score) 46 | follower_id = np.array(follower_id) 47 | follower_scores = np.array(follower_scores) 48 | influence_dict[name] = (follower_id, follower_scores) 49 | data=pd.DataFrame(data) 50 | data.to_csv('边权重.csv') 51 | 52 | influence_score_dict={} 53 | influence_follow_dict={} 54 | n=len(all_name) 55 | for i in range(n): 56 | name=all_name[i] 57 | if name in influence_dict.keys(): 58 | follower_id,follower_scores=influence_dict[name] 59 | influence_follow_dict[name]=follower_id 60 | influence_score_dict[name]=follower_scores.sum() 61 | else: 62 | influence_score_dict[name]=0 63 | influence_follow_dict[name]=[] 64 | 65 | n = len(all_name) 66 | scores = np.zeros(n) 67 | for i in range(n): 68 | name = all_name[i] 69 | 70 | follows = influence_follow_dict[name] 71 | score = 0 72 | if len(follows) == 0: 73 | continue 74 | else: 75 | for follow in follows: 76 | score += influence_score_dict[follow] 77 | score += influence_score_dict[name] 78 | scores[i] = score 79 | 80 | n=len(all_name) 81 | all_scores=defaultdict(list) 82 | for i in range(n): 83 | name=all_name[i] 84 | name=name_dict[name] 85 | all_scores['name'].append(name) 86 | score=scores[i] 87 | all_scores['score'].append(score) 88 | all_scores=pd.DataFrame(all_scores) 89 | all_scores.to_csv('综合分数.csv') -------------------------------------------------------------------------------- /代码/3.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | influencer_name=influence['influencer_id'].unique().tolist() 4 | year_dict={} 5 | genre_dict={} 6 | for id in influencer_name: 7 | genres=influence[influence['influencer_id']==id]['influencer_main_genre'].unique().tolist() 8 | year=influence[influence['influencer_id']==id]['influencer_active_start'].unique().tolist() 9 | if len(genres)!=1: 10 | print('False') 11 | genre_dict[id]=genres[0] 12 | year_dict[id]=year[0] 13 | 14 | follower_name=influence['follower_id'].unique().tolist() 15 | for id in follower_name: 16 | genres=influence[influence['follower_id']==id]['follower_main_genre'].unique().tolist() 17 | year=influence[influence['follower_id']==id]['follower_active_start'].unique().tolist() 18 | if len(genres)!=1: 19 | print('False') 20 | genre_dict[id]=genres[0] 21 | year_dict[id]=year[0] 22 | genre_members=defaultdict(list) 23 | genres=['Avant-Garde','Blues',"Children's",'Classical', 24 | 'Comedy/Spoken','Country','Easy Listening','Electronic', 25 | 'Folk','International','Jazz','Latin','New Age','Pop/Rock', 26 | 'R&B;','Reggae','Religious','Stage & Screen','Vocal'] 27 | 28 | for key,genre in genre_dict.items(): 29 | if genre=='Unknown': 30 | continue 31 | genre_members[genre].append(key) 32 | 33 | name_list1 = np.random.choice(genre_members['Pop/Rock'], 100, replace=False) 34 | name_list2 = np.random.choice(genre_members['R&B;'], 100, replace=False) 35 | name_list3 = np.random.choice(genre_members['Jazz'], 100, replace=False) 36 | label_dict = {} 37 | for name in name_list1: 38 | label_dict[name] = 'Pop/Rock' 39 | for name in name_list2: 40 | label_dict[name] = 'R&B;' 41 | 42 | for name in name_list3: 43 | label_dict[name] = 'Jazz' 44 | name_list1 = list(name_list1) 45 | name_list2 = list(name_list2) 46 | name_list3 = list(name_list3) 47 | name_list1.extend(name_list2) 48 | name_list1.extend(name_list3) 49 | 50 | feature_columns=['danceability','energy','valence','tempo','loudness','mode','key','acousticness','instrumentalness','liveness','speechiness','duration_ms'] 51 | train_columns=[] 52 | for i in range(len(feature_columns)-1): 53 | for j in range(i+1,len(feature)): 54 | feature1=feature_columns[i] 55 | feature2=feature_columns[j] 56 | train_columns.append([feature1,feature2]) 57 | 58 | for i in range(len(feature_columns)-2): 59 | for j in range(i+1,len(feature_columns)-1): 60 | for k in range(j+1,len(feature_columns)): 61 | feature1=feature_columns[i] 62 | feature2=feature_columns[j] 63 | feature3=feature_columns[k] 64 | train_columns.append([feature1,feature2,feature3]) 65 | 66 | for i in range(len(feature_columns)-3): 67 | for j in range(i+1,len(feature_columns)-2): 68 | for k in range(j+1,len(feature_columns)-1): 69 | for f in range(k+1,len(feature_columns)): 70 | feature1=feature_columns[i] 71 | feature2=feature_columns[j] 72 | feature3=feature_columns[k] 73 | feature4=feature_columns[f] 74 | train_columns.append([feature1,feature2,feature3,feature4]) 75 | 76 | 77 | for i in range(len(feature_columns)-4): 78 | for j in range(i+1,len(feature_columns)-3): 79 | for k in range(j+1,len(feature_columns)-2): 80 | for f in range(k+1,len(feature_columns)-1): 81 | for g in range(f+1,len(feature_columns)): 82 | feature1=feature_columns[i] 83 | feature2=feature_columns[j] 84 | feature3=feature_columns[k] 85 | feature4=feature_columns[f] 86 | feature5=feature_columns[g] 87 | train_columns.append([feature1,feature2,feature3,feature4,feature5]) 88 | def make_label(x): 89 | if x['genre0']==x['genre1']: 90 | return 0 91 | else: 92 | return 1 93 | 94 | def make_gener(x): 95 | if x not in genre_dict.keys(): 96 | return 0 97 | return genre_dict[x] 98 | 99 | artist=pd.read_csv('/content/drive/MyDrive/dataset/2021D/data_by_artist.csv') 100 | feature_columns=['artist_id','danceability','energy','valence','tempo','loudness','mode','key','acousticness','instrumentalness','liveness','speechiness','duration_ms'] 101 | artist_feature=artist[feature_columns] 102 | artist_feature['genre']=artist_feature['artist_id'].apply(make_gener) 103 | artist_feature=artist_feature[artist_feature['genre']!=0] 104 | nor_columns=['tempo','key','duration_ms'] 105 | for column in nor_columns: 106 | artist_feature.loc[:,column]=artist_feature[column]/artist_feature[column].max() 107 | artist_feature.loc[:,'loudness']=artist_feature['loudness']/25 108 | genres=['Avant-Garde','Blues',"Children's",'Classical', 109 | 'Comedy/Spoken','Country','Easy Listening','Electronic', 110 | 'Folk','International','Jazz','Latin','New Age','Pop/Rock', 111 | 'R&B;','Reggae','Religious','Stage & Screen','Vocal'] 112 | feature_columns=['danceability','energy','valence','tempo','loudness','mode','key','acousticness','instrumentalness','liveness','speechiness','duration_ms'] 113 | train_data=np.zeros((len(genres),12)) 114 | for i,genre in enumerate(genres): 115 | data=artist_feature[artist_feature['genre']==genre][feature_columns].mean() 116 | train_data[i]=data 117 | 118 | train_data=pd.DataFrame(train_data) 119 | train_data.columns=feature_columns 120 | train_data['genre']=genres 121 | 122 | 123 | def make_local_distance_sort(x1, x2, column, dis_type): 124 | x1 = x1[column] 125 | x2 = x2[column] 126 | sim = make_global_distance(x1, x2, dis_type) 127 | return sim 128 | 129 | 130 | from tqdm import tqdm 131 | 132 | dis_type = 'both' 133 | feature_columns = ['danceability', 'energy', 'valence', 'tempo', 'loudness', 'mode', 'key', 'acousticness', 134 | 'instrumentalness', 'liveness', 'speechiness', 'duration_ms'] 135 | music_global_sim = defaultdict(list) 136 | music_all_sim = defaultdict(list) 137 | target = [0.5 / 1.5] * (len(genres) - 1) 138 | target = np.array(target) 139 | print(target.shape) 140 | score_dict = defaultdict(list) 141 | 142 | for i in range(train_data.shape[0]): 143 | info1 = train_data.iloc[i] 144 | genre1 = info1['genre'] 145 | x1 = info1[feature_columns] 146 | genre1 = genre1.replace('/', ' ') 147 | genre1 = genre1.replace('&', ' ') 148 | genre1 = genre1.replace(';', ' ') 149 | 150 | for j in range(train_data.shape[0]): 151 | if j == i: 152 | continue 153 | info2 = train_data.iloc[j] 154 | genre2 = info2['genre'] 155 | x2 = info2[feature_columns] 156 | score_dict['genre'].append(genre2) 157 | 158 | for column in train_columns: 159 | name = ' '.join(column) 160 | sim = make_local_distance_sort(x1, x2, column, dis_type) 161 | score_dict[name].append(sim) 162 | 163 | score_dict = pd.DataFrame(score_dict) 164 | score_dict = score_dict.to_csv('{}.csv'.format(genre1)) 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /代码/4.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | def cos_sim(vector_a, vector_b): 4 | """ 5 | 计算两个向量之间的余弦相似度 6 | :param vector_a: 向量 a 7 | :param vector_b: 向量 b 8 | :return: sim 9 | """ 10 | vector_a = np.mat(vector_a) 11 | vector_b = np.mat(vector_b) 12 | num = float(vector_a * vector_b.T) 13 | denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b) 14 | cos = num / denom 15 | sim = 1 + 0.5 * cos 16 | return sim 17 | 18 | def o_sim(x1,x2): 19 | distance=np.linalg.norm(x1-x2) 20 | return 1/(1+distance) 21 | 22 | def make_global_distance(x1,x2,dis_type): 23 | if dis_type=='cos': 24 | return cos_sim(x1,x2) 25 | elif dis_type=='o': 26 | return o_sim(x1,x2) 27 | else: 28 | return cos_sim(x1,x2)+o_sim(x1,x2) 29 | 30 | def count_songs_sim(songs1,songs2): 31 | all_sim=0 32 | for i in range(songs2.shape[0]): 33 | song2=songs2.iloc[i] 34 | sims=0 35 | for j in range(songs1.shape[0]): 36 | song1=songs1.iloc[j] 37 | sim=make_global_distance(song1,song2,'both') 38 | sims+=sim 39 | sims=sims/songs1.shape[0] 40 | all_sim+=sims 41 | return all_sim/songs2.shape[0] 42 | 43 | 44 | genres=['Avant-Garde','Blues',"Children's",'Classical', 45 | 'Comedy/Spoken','Country','Easy Listening','Electronic', 46 | 'Folk','International','Jazz','Latin','New Age','Pop/Rock', 47 | 'R&B;','Reggae','Religious','Stage & Screen','Vocal'] 48 | music=pd.read_csv('/content/drive/MyDrive/dataset/2021D/full_music_data.csv') 49 | def make_label(x): 50 | x=x[1:-1] 51 | x=x.split(',') 52 | if len(x)==1: 53 | return 0 54 | else: 55 | return 1 56 | 57 | music['label']=music['artists_id'].apply(make_label) 58 | music=music[music['label']==0] 59 | 60 | def make_artists(x): 61 | x=x[1:-1] 62 | x=x.split(',') 63 | return x[0] 64 | 65 | music['artists_id']=music['artists_id'].apply(make_artists) 66 | max_trend=-3 67 | trend_sum=-3 68 | 69 | 70 | follower_name=influence['follower_id'].unique().tolist() 71 | names=[] 72 | for name in follower_name: 73 | info=music[music['artists_id']==str(name)] 74 | if info.shape[0]>30: 75 | names.append(name) 76 | 77 | for name in names: 78 | inf_names=influence[influence['follower_id']==name]['influencer_id'].unique().tolist() 79 | for inf_name in inf_names: 80 | inf_music=music[music['artists_id']==str(inf_name)] 81 | follow_music=music[music['artists_id']==str(name)] 82 | if inf_music.shape[0]<=2 : 83 | continue 84 | trend,t_sum=count_trend(follow_music,inf_music) 85 | if trend>max_trend: 86 | max_name=name 87 | max_trend=trend 88 | max_sum=t_sum 89 | max_inf_name=inf_name 90 | if t_sum>trend_sum: 91 | sum_name=name 92 | trend_sum=t_sum 93 | sum_trend=trend 94 | sum_inf_name=inf_name 95 | effect_df=pd.DataFrame({'influencer':[90124,90124],'follower':[753507,961234],'sum':[0.00033410413828238207,0.0055388490872166265],'max':[0.01251946863297489,0.005492869927425945]}) 96 | effect_df['sub']=effect_df['sum']-effect_df['max'] 97 | effect_df.to_csv('影响.csv') 98 | 99 | 100 | def count_trend(follow_music, inf_music): 101 | window = 4 102 | stridde = 2 103 | slidding_sims = [] 104 | feature_columns = ['danceability', 'energy', 'valence', 'tempo', 'loudness', 'mode', 'key', 'acousticness', 105 | 'instrumentalness', 'liveness', 'speechiness', 'duration_ms'] 106 | 107 | for i in range(0, follow_music.shape[0] - 4, 2): 108 | slidding_window = follow_music.iloc[i:i + 4] 109 | 110 | slidding_window = slidding_window 111 | max_sim = 0 112 | for j in range(0, inf_music.shape[0] - 2, 1): 113 | inf_window = inf_music.iloc[j:j + 2] 114 | sims = count_songs_sim(inf_window[feature_columns], slidding_window[feature_columns]) 115 | if sims > max_sim: 116 | max_sim = sims 117 | slidding_sims.append(max_sim) 118 | slidding_sims_trends = [] 119 | for i in range(len(slidding_sims) - 1): 120 | trends = (slidding_sims[i + 1] - slidding_sims[i]) / slidding_sims[i] 121 | slidding_sims_trends.append(trends) 122 | trend_sum = np.array(slidding_sims_trends).sum() 123 | max_trend = np.array(slidding_sims_trends).max() 124 | return max_trend, trend_sum 125 | 126 | -------------------------------------------------------------------------------- /代码/5.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | from collections import defaultdict 4 | 5 | genres = ['Avant-Garde', 'Blues', "Children's", 'Classical', 6 | 'Comedy/Spoken', 'Country', 'Easy Listening', 'Electronic', 7 | 'Folk', 'International', 'Jazz', 'Latin', 'New Age', 'Pop/Rock', 8 | 'R&B;', 'Reggae', 'Religious', 'Stage & Screen', 'Vocal'] 9 | music = pd.read_csv('/content/drive/MyDrive/dataset/2021D/full_music_data.csv') 10 | influence = pd.read_csv('/content/drive/MyDrive/dataset/2021D/influence_data.csv') 11 | 12 | 13 | def make_label(x): 14 | x = x[1:-1] 15 | x = x.split(',') 16 | if len(x) == 1: 17 | return 0 18 | else: 19 | return 1 20 | 21 | 22 | music['label'] = music['artists_id'].apply(make_label) 23 | music = music[music['label'] == 0] 24 | 25 | 26 | def make_artists(x): 27 | x = x[1:-1] 28 | x = x.split(',') 29 | return x[0] 30 | 31 | 32 | music['artists_id'] = music['artists_id'].apply(make_artists) 33 | 34 | 35 | def count_trend(follow_music, inf_music): 36 | window = 4 37 | stridde = 2 38 | slidding_sims = [] 39 | feature_columns = ['danceability', 'energy', 'valence', 'tempo', 'loudness', 'mode', 'key', 'acousticness', 40 | 'instrumentalness', 'liveness', 'speechiness', 'duration_ms'] 41 | 42 | for i in range(0, follow_music.shape[0] - 4, 2): 43 | slidding_window = follow_music.iloc[i:i + 4] 44 | 45 | slidding_window = slidding_window 46 | max_sim = 0 47 | for j in range(0, inf_music.shape[0] - 2, 1): 48 | inf_window = inf_music.iloc[j:j + 2] 49 | sims = count_songs_sim(inf_window[feature_columns], slidding_window[feature_columns]) 50 | if sims > max_sim: 51 | max_sim = sims 52 | slidding_sims.append(max_sim) 53 | slidding_sims_trends = [] 54 | for i in range(len(slidding_sims) - 1): 55 | trends = (slidding_sims[i + 1] - slidding_sims[i]) / slidding_sims[i] 56 | slidding_sims_trends.append(trends) 57 | trend_sum = np.array(slidding_sims_trends).sum() 58 | max_trend = np.array(slidding_sims_trends).max() 59 | return max_trend, trend_sum 60 | 61 | 62 | follower_name = \ 63 | influence.loc[(influence['influencer_main_genre'] == 'Pop/Rock') & (influence['follower_main_genre'] == 'Pop/Rock')][ 64 | 'follower_id'].unique().tolist() 65 | names = [] 66 | for name in follower_name: 67 | info = music[music['artists_id'] == str(name)] 68 | if info.shape[0] > 10: 69 | names.append(name) 70 | 71 | year_dict = {} 72 | for year in range(1960, 2021, 10): 73 | for name in names: 74 | inf_names = \ 75 | influence.loc[(influence['follower_id'] == name) & (influence['influencer_main_genre'] == 'Pop/Rock')][ 76 | 'influencer_id'].unique().tolist() 77 | for inf_name in inf_names: 78 | inf_music = music[music['artists_id'] == str(inf_name)] 79 | inf_music = inf_music[inf_music['year'].isin(list(range(year, year + 11)))] 80 | 81 | if inf_music.shape[0] <= 10: 82 | continue 83 | if inf_music.shape[0] > 100: 84 | index = list(range(0, inf_music.shape[0])) 85 | index = np.random.choice(index, 100, replace=False) 86 | inf_music = inf_music.iloc[index] 87 | 88 | follow_music = music[music['artists_id'] == str(name)] 89 | follow_music = follow_music[follow_music['year'].isin(list(range(year, year + 11)))] 90 | if follow_music.shape[0] <= 10: 91 | continue 92 | if follow_music.shape[0] > 100: 93 | index = list(range(0, follow_music.shape[0])) 94 | index = np.random.choice(index, 100, replace=False) 95 | inf_music = follow_music.iloc[index] 96 | 97 | trend, t_sum = count_trend(follow_music, inf_music) 98 | L = max(0, t_sum) + max(0, trend - 0.003) 99 | L_dict[inf_name] += L -------------------------------------------------------------------------------- /图片/三维散点图.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/三维散点图.pdf -------------------------------------------------------------------------------- /图片/加入局部后的相似度.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/加入局部后的相似度.pdf -------------------------------------------------------------------------------- /图片/变化.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/变化.pdf -------------------------------------------------------------------------------- /图片/子网络.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/子网络.pdf -------------------------------------------------------------------------------- /图片/差异性.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/差异性.pdf -------------------------------------------------------------------------------- /图片/幂律分布.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/幂律分布.pdf -------------------------------------------------------------------------------- /图片/我们的工作.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/我们的工作.pdf -------------------------------------------------------------------------------- /图片/数据处理.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/数据处理.pdf -------------------------------------------------------------------------------- /图片/未加入局部的相似度.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/未加入局部的相似度.pdf -------------------------------------------------------------------------------- /图片/流派-人数-时间.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/流派-人数-时间.pdf -------------------------------------------------------------------------------- /图片/流派之间时间相关变化.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/流派之间时间相关变化.pdf -------------------------------------------------------------------------------- /图片/流行度-时间.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/流行度-时间.pdf -------------------------------------------------------------------------------- /图片/滑动窗口.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/滑动窗口.pdf -------------------------------------------------------------------------------- /图片/滑动窗口修改.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/滑动窗口修改.pdf -------------------------------------------------------------------------------- /图片/灵敏度分析1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/灵敏度分析1.pdf -------------------------------------------------------------------------------- /图片/电子音乐特征变化.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/电子音乐特征变化.pdf -------------------------------------------------------------------------------- /图片/相似度修改.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/相似度修改.pdf -------------------------------------------------------------------------------- /图片/相似性.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/相似性.pdf -------------------------------------------------------------------------------- /图片/零名都分析2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/零名都分析2.pdf -------------------------------------------------------------------------------- /图片/音乐风格情绪变化.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/音乐风格情绪变化.pdf -------------------------------------------------------------------------------- /图片/饼图.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liujiyaoFDU/2021-ICM-D-Outstanding/ec839acb825e21a52c46492e8c079c6cb3b291b5/图片/饼图.pdf --------------------------------------------------------------------------------