コード例 #1
0
ファイル: Program.cs プロジェクト: yappy/DollsKit
 static void Main(string[] args)
 {
     try
     {
         Usage();
         if (args.Length == 0)
         {
             Console.Write("> ");
             args = Console.ReadLine().Split(' ');
         }
         var learning = new DollsLib.Learning.Learning();
         switch (args[0])
         {
             case "fetch":
                 DollsLib.Learning.TweetFetch.FetchFromTwitter(args[1]);
                 break;
             case "update":
                 learning.UpdateWorkAndEditData();
                 break;
             case "bag":
                 learning.BagOfWords();
                 break;
             case "dl":
                 learning.DeepLearning();
                 break;
             case "eval":
                 learning.Eval(int.Parse(args[1]));
                 break;
             default:
                 Console.WriteLine("Invalid command");
                 break;
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
コード例 #2
0
ファイル: TwitterCheck.cs プロジェクト: yappy/DollsKit
        private void CheckMasterTimeline(string taskName)
        {
            const int SearchCount = 200;
            long masterId = TwitterManager.MasterTokens.Account.VerifyCredentials().Id ?? 0;

            var timeline = TwitterManager.MasterTokens.Statuses.HomeTimeline(count: SearchCount);

            // 判定器を使う
            if (dlNetwork != null)
            {
                var ln = new DollsLib.Learning.Learning();
                var workDataList = ln.CreateWorkDataList(timeline);
                var result = ln.Execute(dlNetwork, workDataList);
                for (int i = 0; i < result.Count; i++)
                {
                    var status = timeline[i];
                    // Black List filter
                    if (Array.IndexOf(BlackList, status.User.ScreenName) < 0)
                    {
                        continue;
                    }
                    if (result[i] > DollsLib.Learning.LearningCommon.Threshold)
                    {
                        Log.Trace.TraceEvent(TraceEventType.Information, 0,
                            "[{0}] Find by dl net {1:F3}: @{2} - {3}",
                            taskName, result[i], status.User.ScreenName, status.Text);
                        try
                        {
                            TwitterManager.Favorite(workDataList[i].Id);
                            TwitterManager.Update(
                                string.Format("@{0} ブラック #DollsLearning #試験中", status.User.ScreenName),
                                status.Id);
                        }
                        catch (TwitterException e)
                        {
                            Log.Trace.TraceEvent(TraceEventType.Error, 0, e.Message);
                        }
                    }
                }
            }
            // ヒューリスティクスを使う
            foreach (var status in timeline)
            {
                if (IsBlack(status, masterId))
                {
                    Log.Trace.TraceEvent(TraceEventType.Information, 0,
                        "[{0}] Find black: @{1} - {2}", taskName, status.User.ScreenName, status.Text);
                    try
                    {
                        TwitterManager.Favorite(status.Id);
                        TwitterManager.Update(
                            string.Format("@{0} ブラック", status.User.ScreenName),
                            status.Id);
                    }
                    catch (TwitterException e)
                    {
                        Log.Trace.TraceEvent(TraceEventType.Error, 0, e.Message);
                    }
                }
                else if (IsWhite(status, masterId))
                {
                    Log.Trace.TraceEvent(TraceEventType.Information, 0,
                        "[{0}] Find white: @{1} - {2}", taskName, status.User.ScreenName, status.Text);
                    try
                    {
                        TwitterManager.Favorite(status.Id);
                        TwitterManager.Update(
                            string.Format("@{0} ホワイト!", status.User.ScreenName),
                            status.Id);
                    }
                    catch (TwitterException e)
                    {
                        Log.Trace.TraceEvent(TraceEventType.Error, 0, e.Message);
                    }
                }
            }
        }