Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2012
571
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Text.RegularExpressions;
  5. using System.Xml;
  6. using System.Xml.Serialization;
  7.  
  8. namespace FeedAnalyzer
  9. {
  10.     [System.Serializable()]
  11.     public class FeedItem
  12.     {
  13.         public string Title { get; set; }
  14.         public string Sumary { get; set; }
  15.         public DateTime Date { get; set; }
  16.         public string Link { get; set; }
  17.         public string Categories { get; set; }
  18.     }
  19.  
  20.     class Program
  21.     {
  22.         static void Main(string[] args)
  23.         {
  24.             TwoWordAnalysis();
  25.             Console.WriteLine("ok");
  26.             Console.ReadKey();
  27.         }
  28.  
  29.         static void TwoWordAnalysis()
  30.         {
  31.             List<FeedItem> list = LoadFeeds("data.xml");
  32.             Console.WriteLine(list.Count + " loaded");
  33.             StreamReader keywordsFile = new StreamReader("keywords.txt");
  34.             StreamWriter output = new StreamWriter("output.txt");
  35.  
  36.             List<string> keywords = new List<string>();
  37.             while (keywordsFile.EndOfStream == false)
  38.                 keywords.Add(keywordsFile.ReadLine());
  39.  
  40.             string[] keywordArray = keywords.ToArray();
  41.  
  42.             for (int x = 0; x < keywordArray.Length - 1; x++)
  43.             {
  44.                 for (int y = x + 1; y < keywordArray.Length; y++)
  45.                 {
  46.                     int num = 0;
  47.  
  48.                     Regex regex1 = new Regex(String.Join(String.Empty, "\\b", keywordArray[x], " ", keywordArray[y], "\\b"), RegexOptions.IgnoreCase);
  49.                     Regex regex2 = new Regex(String.Join(String.Empty, "\\b", keywordArray[y], " ", keywordArray[x], "\\b"), RegexOptions.IgnoreCase);
  50.  
  51.                     foreach (FeedItem f in list)
  52.                         num += regex1.Matches(String.Join(" ", f.Title, f.Sumary)).Count + regex2.Matches(String.Join(" ", f.Title, f.Sumary)).Count;
  53.  
  54.                     if (num > 0)
  55.                     {
  56.                         output.WriteLine(String.Join(" ", num, keywordArray[x], keywordArray[y]));
  57.                     }
  58.                 }
  59.             }
  60.             output.Close();
  61.         }
  62.  
  63.         public static List<FeedItem> LoadFeeds(string fileName)
  64.         {
  65.             List<FeedItem> list = new List<FeedItem>();
  66.             try
  67.             {
  68.                 XmlReaderSettings settings = new XmlReaderSettings();
  69.                 settings.CheckCharacters = false;
  70.                 XmlSerializer s = new XmlSerializer(typeof(FeedItem[]));
  71.                 XmlReader reader = XmlReader.Create(new StreamReader(fileName), settings);
  72.                 FeedItem[] array = (FeedItem[])s.Deserialize(reader);
  73.                 list.AddRange(array);
  74.                 reader.Close();
  75.             }
  76.             catch (Exception exc)
  77.             {
  78.                 Console.WriteLine(exc.Message);
  79.                 Console.WriteLine(exc.StackTrace);
  80.                 return null;
  81.             }
  82.             return list;
  83.         }
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement