private void addSongButton_Click(object i_Sender, EventArgs i_EventArgs) { Song curSong = null; string curPlayer = null; if (!string.IsNullOrEmpty(NewSongNameTextBox.Text)) { if (YoutubeRadioButton.Checked) { curPlayer = "youtube"; } else { curPlayer = "vimeo"; } curSong = SongsFactory.CreateSong(curPlayer, NewSongNameTextBox.Text); string videoUrl = curSong.GetVideoUrl(NewSongNameTextBox.Text); TreeNode songNode = PlaylistTreeView.Nodes[1].Nodes.Add(curSong.SongName); // Nodes[1]=User Playlist songNode.Tag = curSong; MessageBox.Show(string.Format("The song: \"{0}\" added to your playlist!", NewSongNameTextBox.Text)); NewSongNameTextBox.Text = string.Empty; } else { MessageBox.Show("You didn't insert song name!"); } }
static void Main(string[] args) { var songs = SongsFactory.GetSongsForLearning(); //PopulateDbWithSongsFromLastFm(); //LoadLyricsForSongs(); //TestWork(); //LoadAdditionInfoAboutSongs(); //UpdateWordsCount(); Console.ReadKey(); }
protected override void OnShown(EventArgs i_EventArgs) { foreach (Link curLink in m_UserLinks) { try { Song song = SongsFactory.CreateSong(curLink.URL, curLink.Name); TreeNode songNode = PlaylistTreeView.Nodes[0].Nodes.Add(song.SongName); // Nodes[0]=Facebook Posts songNode.Tag = song; // save the song under song's name } catch (Exception ex) { } } }
public static void Classification() { var songs = SongsFactory.GetSongsForLearning(); double[][] observations = new double[songs.Count][]; for (int i = 0; i < songs.Count; i++) { var song = songs[i]; var items = new double[] { song.ArtistBeginYear, song.ArtistType, song.Duration, song.GenreType, song.LyricCharsCount, song.LyricWordsCount, song.Negative, song.Positive, song.SongDateYear }; observations[i] = items; } var kmeans = new KMeans(2); var labels = kmeans.Compute(observations); for (int i = 0; i < 2; i++) { var i1 = i; Console.Out.Write($"{labels.Count(x => x == i1)} "); } Console.Out.WriteLine(); var correctCount = 0; for (int i = 0; i < songs.Count; i++) { if ((int)songs[i].Popularity == labels[i]) { correctCount++; } } Console.Out.WriteLine(correctCount); }
private void fetchUserLinkes() { foreach (Link curLink in m_UserLinks) { try { Song song = SongsFactory.CreateSong(curLink.URL, curLink.Name); if (!PlaylistTreeView.InvokeRequired) { addSongToTreeView(song); } else { PlaylistTreeView.Invoke(new Action(() => addSongToTreeView(song))); // save the song under song's name)); } } catch (Exception) { } } }
private static void DoYourWork() { var songs = SongsFactory.GetSongsForLearning(); // этот метод вернёт песни, у которых есть ВСЕ данные var data = new DataTable("Songs Example"); var columnNames = typeof(LearnModel).GetProperties() .Select(p => p.Name) .OrderBy(x => x) .ToList(); data.Columns.AddRange(columnNames.Select(name => new DataColumn(name)).ToArray()); foreach (var song in songs) { data.Rows.Add(song.ArtistBeginYear, song.ArtistType, song.Duration, song.GenreType, song.LyricCharsCount, song.LyricWordsCount, song.Negative, song.Popularity.ToString(), song.Positive, song.SongDateYear); } var codebook = new Codification(data, columnNames.ToArray()); var symbols = codebook.Apply(data); var input = symbols.ToArray <double>(columnNames.Where(x => x != "Popularity").ToArray()); var output = symbols.ToArray <int>("Popularity"); var mins = new int[9]; var maxs = new int[9]; for (int i = 0; i < 9; i++) { var curMinForColumn = int.MaxValue; var curMaxForColumn = int.MinValue; for (int j = 0; j < input.GetLength(0); j++) { var curValue = (int)input[j][i]; if (curValue < curMinForColumn) { curMinForColumn = curValue; } if (curValue > curMaxForColumn) { curMaxForColumn = curValue; } } mins[i] = curMinForColumn; maxs[i] = curMaxForColumn; } DecisionVariable[] attributes = { new DecisionVariable("ArtistBeginYear", new IntRange(mins[0], maxs[0])), new DecisionVariable("ArtistType", songs.Select(x => x.ArtistType).Distinct().Count()), new DecisionVariable("Duration", new IntRange(mins[2], maxs[2])), new DecisionVariable("GenreType", songs.Select(x => x.GenreType).Distinct().Count()), new DecisionVariable("LyricCharsCount", new IntRange(mins[4], maxs[4])), new DecisionVariable("LyricWordsCount", new IntRange(mins[5], maxs[5])), new DecisionVariable("Negative", new DoubleRange(songs.Min(x => x.Negative), songs.Max(x => x.Negative))), new DecisionVariable("Positive", new DoubleRange(songs.Min(x => x.Positive), songs.Max(x => x.Positive))), new DecisionVariable("SongDateYear", new DoubleRange(songs.Min(x => x.SongDateYear), songs.Max(x => x.SongDateYear))), }; var classCount = 2; // popular, unpopular var tree = new DecisionTree(attributes, classCount); var algo = new C45Learning(tree); algo.Run(input, output); // проверяем своими данными data.Rows.Add(1966, 1, 302, 1, 1354, 255, 92.944470512297059, 0 /*vashe pofig*/, 7.05552948770294, 2009); var lastItem = data.Rows[data.Rows.Count - 1]; var input0 = codebook.Translate(lastItem, columnNames.Where(x => x != "Popularity").ToArray()); var answer = tree.Compute(input0); var readableAnswer = codebook.Translate("Popularity", answer); }