private void ClassifyFilms(IList <Film> films, ClassificationDefine classificationDefines)
        {
            var keywords = classificationDefines.Actors.Union(classificationDefines.Genres).ToArray();

            var result = new List <MoviePhrase>();

            foreach (var film in films.Where(x => x.Distributor.Length != 0 && x.Identification.Length != 0))
            {
                var model = new MoviePhrase {
                    FilePath = film.FilePath, FileName = film.FileName
                };
                var wording = model.FileName.Replace(film.Distributor, string.Empty).Replace(film.Identification, string.Empty);

                var recogPhrases   = new List <string>();
                var unrecogPhrases = new List <string> {
                    wording
                };
                SplitRecognizedPhrase(keywords, recogPhrases, unrecogPhrases);
                model.RecogPhrase.AddRange(recogPhrases);
                model.UnrecogPhrase.AddRange(unrecogPhrases);
                result.Add(model);
            }

            var handler = new JsonListFileHandler <MoviePhrase>(BaseConstants.MoviePhrasePath);

            handler.Items.Clear();
            handler.Items.AddRange(result);
            handler.SaveItemsToJson();
        }
Esempio n. 2
0
        public ClassificationDefineControl(ClassificationDefine filmDefine, Action saveClassificationDefine) : base()
        {
            InitializeComponent();
            ClassificationDefine = filmDefine;

            SaveClassificationDefineAction = saveClassificationDefine;
        }
Esempio n. 3
0
        public void ClassifyAndExportDefines(IList <Film> filmInfos, ClassificationDefine classificationDefine)
        {
            var list = new List <Phrases>();

            foreach (var item in filmInfos)
            {
                var name = item.FileName;
                if (!string.IsNullOrEmpty(item.Distributor))
                {
                    name = name.Replace(item.Distributor, string.Empty);
                }
                if (!string.IsNullOrEmpty(item.Identification))
                {
                    name = name.Replace(item.Identification, string.Empty);
                }
                var allPhrases = name.Split(' ');
                foreach (var phrase in allPhrases)
                {
                    if (list.Any(x => x.Phrase.Equals(phrase, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        continue;
                    }

                    var type = PhraseType.Undefined;
                    if (classificationDefine.Actors.Contains(phrase))
                    {
                        type = PhraseType.Actress;
                    }
                    else if (classificationDefine.Genres.Contains(phrase))
                    {
                        type = PhraseType.Subject;
                    }

                    list.Add(new Phrases {
                        Phrase = phrase, PhraseType = type
                    });
                }
            }

            var result = list.OrderBy(x => x.PhraseType).ThenBy(x => x.Phrase);

            BusinessFunc.ExportListToFile(result, BaseConstants.PhrasePath, false);
        }