Ejemplo n.º 1
0
        public async Task <IActionResult> Create()
        {
            var       enumexcel = EnumerateExcel();
            LocalList ll        = new LocalList();

            foreach (var e in enumexcel)
            {
                ll.LocalWagonList.Add(new ParserModel()
                {
                    TCNumber = e.TCNumber, WaybillNumber = e.WaybillNumber
                });
            }

            for (int i = 0; i < ll.LocalWagonList.Count; i++)
            {
                var wagon = new ParserModel()
                {
                    TCNumber      = ll.LocalWagonList[i].TCNumber,
                    WaybillNumber = ll.LocalWagonList[i].WaybillNumber
                };
                db.Wagons.Add(wagon);
            }

            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        public void TestChunkingParserTraining()
        {
            var parseSamples = ParserTestUtil.CreateParseTestStream();
            //var testSamples = ParserTestUtil.CreateParseTestStream();
            var headRules = ParserTestUtil.CreateTestHeadRules();

            var model = SharpNL.Parser.Chunking.Parser.Train("en", parseSamples, headRules, 100, 0);

            Assert.NotNull(model);

            var parser = ParserFactory.Create(model);

            Assert.NotNull(parser);

            ParserModel deserialized;

            using (var stream = new MemoryStream()) {
                model.Serialize(new UnclosableStream(stream));

                stream.Seek(0, SeekOrigin.Begin);

                deserialized = new ParserModel(stream);
            }

            Assert.NotNull(deserialized);

            // TODO: compare both models
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Export datas in a CSV file.
        /// </summary>
        /// <param name="Filename">Path of the CSV file.</param>
        public void Export(string Filename)
        {
            List <ParserModel> ListToWrite = new List <ParserModel>();

            /* Creating data objects */
            Console.WriteLine("[Debug: Bacchus.view.CSVManagerViewModel.readCSV] Getting data objects.");
            List <ArticlesModel> Articles = ArticlesDao.SelectAll();

            foreach (ArticlesModel Article in Articles)
            {
                ParserModel ElementToAdd = new ParserModel();
                ElementToAdd.Description = Article.Description;
                ElementToAdd.Ref         = Article.RefArticle;
                ElementToAdd.Marque      = Article.Marque.Nom;
                ElementToAdd.Famille     = Article.SousFamille.Famille.Nom;
                ElementToAdd.SousFamille = Article.SousFamille.Nom;
                ElementToAdd.Prix        = Article.PrixHT;
                ListToWrite.Add(ElementToAdd);
            }
            if (WriteCSV(ListToWrite, Filename))
            {
                AdvertBox("Le transfert a été effectué avec succès.", "information");
                ExportWindow.Close();
            }
        }
Ejemplo n.º 4
0
        public void TestTreeInsertParserTraining()
        {
            var parseSamples = ParserTestUtil.CreateParseTrainStream();
            var headRules    = ParserTestUtil.CreateTestHeadRules();

            var model = SharpNL.Parser.TreeInsert.Parser.Train("en", parseSamples, headRules, 100, 0);

            var parser = ParserFactory.Create(model);

            // Tests parsing to make sure the code does not has
            // a bug which fails always with a runtime exception
            var p = parser.Parse(Parse.ParseParse("She was just another freighter from the " +
                                                  "States and she seemed as commonplace as her name ."));

            ParserModel deserialized;

            using (var data = new MemoryStream()) {
                model.Serialize(new UnclosableStream(data));

                data.Seek(0, SeekOrigin.Begin);

                deserialized = new ParserModel(data);
            }

            Assert.NotNull(deserialized);


            // TODO: compare both models
        }
Ejemplo n.º 5
0
        public MainWindow()
        {
            InitializeComponent();

            var model = new ParserModel(Browser);

            DataContext = model;
        }
Ejemplo n.º 6
0
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            ParserNodeReporter.Current.NodeAdded   += Current_NodeAdded;
            ParserNodeReporter.Current.NodeRemoved += Current_NodeRemoved;
            ParserModel parserModel = new ParserModel(new Parser());

            DataContext = parserModel;
        }
Ejemplo n.º 7
0
 public Parser(ParserModel model, int beamSize, double advancePercentage) :
     this(model.BuildModel, model.AttachModel, model.CheckModel,
          new POSTaggerME(model.ParserTaggerModel),
          new ChunkerME(model.ParserChunkerModel, ChunkerME.DefaultBeamSize, new ParserChunkerSequenceValidator(model.ParserChunkerModel), new ChunkContextGenerator()),
          model.HeadRules,
          beamSize,
          advancePercentage)
 {
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Parser"/> class using the specified model with the specified beam size and advance percentage.
 /// </summary>
 /// <param name="model">The parser model.</param>
 /// <param name="beamSize">The number of different parses kept during parsing.</param>
 /// <param name="advancePercentage">The minimal amount of probability mass which advanced outcomes must represent.</param>
 public Parser(ParserModel model, int beamSize, double advancePercentage) :
     this(model.BuildModel, model.AttachModel, model.CheckModel,
          new POSTaggerME(model.ParserTaggerModel),
          new ChunkerME(model.ParserChunkerModel),
          model.HeadRules,
          beamSize,
          advancePercentage)
 {
 }
        public ActionResult Parse(ParserModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("Index", model));
            }
            var resultModel = _service.GetParsedResults(model.Url);

            return(View("Result", resultModel));
        }
Ejemplo n.º 10
0
        private void LoadParser()
        {
            if (!alreadyLoadParser)
            {
                java.io.FileInputStream modelInpStream = new java.io.FileInputStream("Resources\\en-parser-chunking.bin");
                ParserModel             parserModel    = new ParserModel(modelInpStream);
                parser = ParserFactory.create(parserModel);

                alreadyLoadParser = true;
            }
        }
Ejemplo n.º 11
0
 public Parser(ParserModel model, int beamSize, double advancePercentage)
     : this(
         model.BuildModel,
         model.CheckModel, 
         new POSTaggerME(model.ParserTaggerModel), 
         new ChunkerME(model.ParserChunkerModel), 
         model.HeadRules, 
         beamSize, 
         advancePercentage) {
     
 }
Ejemplo n.º 12
0
        protected internal override ParserModel trainAndUpdate(ParserModel originalModel, ObjectStream <Parse> parseSamples, ModelUpdaterParams parameters)
        {
            Dictionary mdict = ParserTrainerTool.buildDictionary(parseSamples, originalModel.HeadRules, parameters.Cutoff.Value);

            parseSamples.reset();

            // TODO: training individual models should be in the chunking parser, not here
            // Training build
            Console.WriteLine("Training builder");
            opennlp.model.EventStream bes        = new ParserEventStream(parseSamples, originalModel.HeadRules, ParserEventTypeEnum.BUILD, mdict);
            AbstractModel             buildModel = Parser.train(bes, parameters.Iterations.Value, parameters.Cutoff.Value);

            parseSamples.close();

            return(originalModel.updateBuildModel(buildModel));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Method used to read a CSV defined by his filename.
        /// </summary>
        /// <param name="Filename">The path to the CSV file.</param>
        /// <returns></returns>
        private List <ParserModel> ReadCSV(string Filename)
        {
            var Records = new List <ParserModel>();

            try
            {
                using (var Reader = new StreamReader(Filename, Encoding.Default))
                    using (var Csv = new CsvReader(Reader, CultureInfo.InvariantCulture))
                    {
                        /* Reading CSV File */
                        Console.WriteLine("[Debug: Bacchus.view.CSVManagerViewModel.readCSV] Reading CSV file.");

                        Csv.Configuration.Delimiter = ";";
                        Csv.Read();
                        Csv.ReadHeader();
                        while (Csv.Read())
                        {
                            try
                            {
                                var record = new ParserModel
                                {
                                    Description = Csv.GetField <string>("Description"),
                                    Ref         = Csv.GetField <string>("Ref"),
                                    Marque      = Csv.GetField <string>("Marque"),
                                    Famille     = Csv.GetField <string>("Famille"),
                                    SousFamille = Csv.GetField <string>("Sous-Famille"),
                                    Prix        = Csv.GetField <double>("Prix H.T.")
                                };
                                Records.Add(record);
                            }
                            catch (Exception)
                            {
                                AdvertBox("L'importation a échouée : un champ ou une colonne est manquant dans le fichier CSV.", "erreur");
                                return(null);
                            }
                        }
                    }
            }
            catch
            {
                AdvertBox("L'importation a échouée : le fichier CSV est ouvert par un autre programme.", "erreur");
                return(null);
            }

            return(Records);
        }
Ejemplo n.º 14
0
        public override void run(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine(Help);
            }
            else
            {
                File        parserModelInFile = new File(args[0]);
                ParserModel parserModel       = (new ParserModelLoader()).load(parserModelInFile);

                File     taggerModelInFile = new File(args[1]);
                POSModel taggerModel       = (new POSModelLoader()).load(taggerModelInFile);

                ParserModel updatedParserModel = parserModel.updateTaggerModel(taggerModel);

                CmdLineUtil.writeModel("parser", parserModelInFile, updatedParserModel);
            }
        }
Ejemplo n.º 15
0
        static IEnumerable <ParserModel> EnumerateExcel()
        {
            string xlsxpath = "WAGON_LIST 150520.xlsx";

            using (var workbook = new XLWorkbook(xlsxpath))
            {
                var worksheet = workbook.Worksheets.Worksheet(1);
                int rows      = worksheet.RowsUsed().Count();
                for (int row = 2; row <= rows; ++row)
                {
                    var metric = new ParserModel
                    {
                        TCNumber      = worksheet.Cell(row, 2).GetValue <int>(),
                        WaybillNumber = worksheet.Cell(row, 3).GetValue <string>()
                    };
                    yield return(metric);
                }
            }
        }
Ejemplo n.º 16
0
        public NLP()
        {
            //loading sentence detector model
            java.io.FileInputStream modelInpStream = new java.io.FileInputStream("Resources\\en-sent.bin");
            SentenceModel           sentenceModel  = new SentenceModel(modelInpStream);

            sentenceDetector = new SentenceDetectorME(sentenceModel);

            //loading tokenizer model
            modelInpStream = new java.io.FileInputStream("Resources\\en-token.bin");
            TokenizerModel tokenizerModel = new TokenizerModel(modelInpStream);

            tokenizer = new TokenizerME(tokenizerModel);

            modelInpStream = new java.io.FileInputStream("Resources\\en-pos-maxent.bin");
            POSModel posModel = new POSModel(modelInpStream);

            tagger = new POSTaggerME(posModel);

            modelInpStream = new java.io.FileInputStream("Resources\\en-chunker.bin");
            ChunkerModel chunkerModel = new ChunkerModel(modelInpStream);

            chunker = new ChunkerME(chunkerModel);

            modelInpStream = new java.io.FileInputStream("Resources\\en-parser-chunking.bin");
            ParserModel parserModel = new ParserModel(modelInpStream);

            parser = ParserFactory.create(parserModel);

            //loading stop words list
            StreamReader sr = new StreamReader("Resources\\english.stop.txt");
            string       line;

            while ((line = sr.ReadLine()) != null)
            {
                stopwords.Add(Stemming(line));
                stopwords.Add(line);
            }
        }
Ejemplo n.º 17
0
        public sealed override void run(string format, string[] args)
        {
            ModelUpdaterParams @params = validateAndParseParams <ModelUpdaterParams>(ArgumentParser.filter(args, typeof(ModelUpdaterParams)), typeof(ModelUpdaterParams));

            // Load model to be updated
            Jfile       modelFile           = @params.Model;
            ParserModel originalParserModel = (new ParserModelLoader()).load(modelFile);

            ObjectStreamFactory factory = getStreamFactory(format);

            string[] fargs = ArgumentParser.filter(args, factory.Parameters);
            validateFactoryArgs(factory, fargs);
            ObjectStream <Parse> sampleStream = factory.create <Parse>(fargs);

            ParserModel updatedParserModel;

            try
            {
                updatedParserModel = trainAndUpdate(originalParserModel, sampleStream, @params);
            }
            catch (IOException e)
            {
                throw new TerminateToolException(-1, "IO error while reading training data or indexing data: " + e.Message, e);
            }
            finally
            {
                try
                {
                    sampleStream.close();
                }
                catch (IOException)
                {
                    // sorry that this can fail
                }
            }

            CmdLineUtil.writeModel("parser", modelFile, updatedParserModel);
        }
Ejemplo n.º 18
0
        public override ObjectStream <CorefSample> create(string[] args)
        {
            Parameters @params = ArgumentParser.parse(args, typeof(Parameters));

            ParserModel parserModel = (new ParserModelLoader()).load(@params.ParserModel);
            Parser      parser      = ParserFactory.create(parserModel);

            TokenizerModel tokenizerModel = (new TokenizerModelLoader()).load(@params.TokenizerModel);
            Tokenizer      tokenizer      = new TokenizerME(tokenizerModel);

            ObjectStream <string> mucDocStream = new FileToStringSampleStream(new DirectorySampleStream(@params.Data, new FileFilterAnonymousInnerClassHelper(this), false), Charset.forName("UTF-8"));

            ObjectStream <RawCorefSample> rawSamples = new MucCorefSampleStream(tokenizer, mucDocStream);

            ObjectStream <RawCorefSample> parsedSamples = new FullParseCorefEnhancerStream(parser, rawSamples);


            // How to load all these nameFinder models ?!
            // Lets make a param per model, not that nice, but ok!

            IDictionary <string, Jfile> modelFileTagMap = new Dictionary <string, Jfile>();

            modelFileTagMap["person"]       = @params.PersonModel;
            modelFileTagMap["organization"] = @params.OrganizationModel;

            IList <TokenNameFinder> nameFinders = new List <TokenNameFinder>();
            IList <string>          tags        = new List <string>();

            foreach (KeyValuePair <string, Jfile> entry in modelFileTagMap)
            {
                nameFinders.Add(new NameFinderME((new TokenNameFinderModelLoader()).load(entry.Value)));
                tags.Add(entry.Key);
            }

            return(new MucMentionInserterStream(new NameFinderCorefEnhancerStream(nameFinders.ToArray(), tags.ToArray(), parsedSamples)));
        }
Ejemplo n.º 19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Parser"/> class using the specified model with the default beam size and the default advance percentage.
 /// </summary>
 /// <param name="model">The parser model.</param>
 public Parser(ParserModel model) : this(model, DefaultBeamSize, DefaultAdvancePercentage) {}
Ejemplo n.º 20
0
 public void setUpParser()
 {
     string modelPath = "C:\\Users\\jcoleman\\Documents\\Capstone\\jcoleman_Capstone\\Code\\NEWCHATBOT\\ConsoleBot\\ConsoleBot\\en-parser-chunking.bin";
     java.io.FileInputStream modelInpstream = new java.io.FileInputStream(modelPath);
     parserModel = new ParserModel(modelInpstream);
     parser = ParserFactory.create(parserModel);
     parse = ParserTool.parseLine(sentence, parser, 1);
 }
Ejemplo n.º 21
0
        public override void run(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine(Help);
            }
            else
            {
                ParserModel model = (new ParserModelLoader()).load(new File(args[args.Length - 1]));

                int?beamSize = CmdLineUtil.getIntParameter("-bs", args);
                if (beamSize == null)
                {
                    beamSize = AbstractBottomUpParser.defaultBeamSize;
                }

                int? numParses = CmdLineUtil.getIntParameter("-k", args);
                bool showTopK;
                if (numParses == null)
                {
                    numParses = 1;
                    showTopK  = false;
                }
                else
                {
                    showTopK = true;
                }

                double?advancePercentage = CmdLineUtil.getDoubleParameter("-ap", args);

                if (advancePercentage == null)
                {
                    advancePercentage = AbstractBottomUpParser.defaultAdvancePercentage;
                }

                opennlp.tools.parser.Parser parser = ParserFactory.create(model, beamSize.Value, advancePercentage.Value);

                ObjectStream <string> lineStream = new PlainTextByLineStream(new InputStreamReader(Console.OpenStandardInput));

                PerformanceMonitor perfMon = new PerformanceMonitor(System.err, "sent");
                perfMon.start();

                try
                {
                    string line;
                    while ((line = lineStream.read()) != null)
                    {
                        if (line.Length == 0)
                        {
                            Console.WriteLine();
                        }
                        else
                        {
                            Parse[] parses = parseLine(line, parser, numParses.Value);

                            for (int pi = 0, pn = parses.Length; pi < pn; pi++)
                            {
                                if (showTopK)
                                {
                                    Console.Write(pi + " " + parses[pi].Prob + " ");
                                }

                                parses[pi].show();

                                perfMon.incrementCounter();
                            }
                        }
                    }
                }
                catch (IOException e)
                {
                    CmdLineUtil.handleStdinIoError(e);
                }

                perfMon.stopAndPrintFinalResult();
            }
        }
Ejemplo n.º 22
0
        public Dictionary <string, List <string> > Main(string line)
        {
            //debug sentence
            // line = "Show me the sales of Kean Cola .25ltr Bottle in Nicosia from January 2017 to October 2017 as a line chart.";
            matchedWords?.Clear();
            nounPhrases?.Clear();
            nouns?.Clear();
            adjectivePhrases?.Clear();
            verbPhrases?.Clear();
            InputStream modelIn = new FileInputStream(HttpRuntime.AppDomainAppPath + "\\Models\\en-parser-chunking.bin");

            InputStream modelIn1  = new FileInputStream(HttpRuntime.AppDomainAppPath + "\\Models\\en-ner-date.bin");
            InputStream modelIn2  = new FileInputStream(HttpRuntime.AppDomainAppPath + "\\Models\\en-token.bin");
            ParserModel model     = new ParserModel(modelIn);
            var         myParser  = ParserFactory.create(model);
            var         topParses = ParserTool.parseLine(line, myParser, 1);

            foreach (var p in topParses)
            {
                GetSentenceParts(p);
            }


            try
            {
                TokenizerModel       model1 = new TokenizerModel(modelIn2);
                TokenNameFinderModel model2 = new TokenNameFinderModel(modelIn1);

                Tokenizer tokenizer  = new TokenizerME(model1);
                var       nameFinder = new NameFinderME(model2);

                var tokens    = tokenizer.tokenize(line);
                var nameSpans = nameFinder.find(tokens);

                var array = Span.spansToStrings(nameSpans, tokens);

                //
                //                foreach (var v in array)
                //                {
                //                    System.Diagnostics.Debug.WriteLine(v);
                //                }

                dates = new HashSet <string>(array);



                PrintSets();
//                System.Diagnostics.Debug.WriteLine("\nProcessing Presentation type");
//
//                if (nouns.Contains("table"))
//                {
//                    matchedWords.Add(new Tuple<string, string>("PRESENTATION_TYPE", "table"));
//                }
//                if (nounPhrases.Contains("bar chart"))
//                {
//                    matchedWords.Add(new Tuple<string, string>("PRESENTATION_TYPE", "bar chart"));
//                }
//                if (nounPhrases.Contains("line chart"))
//                {
//                    matchedWords.Add(new Tuple<string, string>("PRESENTATION_TYPE", "line chart"));
//                }
                //TODO IF NO OPTION IS FOUND ASK THE USER TO GIVE YOU ONE. IMPLEMENT IT IN THE WEB VERSION SOON

                System.Diagnostics.Debug.WriteLine("\nProcessing Dates");

                if (dates.Count == 2)
                {
                    if (dates.ElementAt(0).contains("from"))
                    {
                        var           a       = dates.ElementAt(0).replace("from", "");
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(a, newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(1), newList);
                    }
                    else
                    {
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(dates.ElementAt(0), newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(1), newList);
                    }
                }

                if (dates.Count == 1)
                {
                    if (dates.ElementAt(0).contains("from"))
                    {
                        var a   = dates.ElementAt(0).replace("from", "");
                        var dts = a.Split(new[] { " to " }, StringSplitOptions.None);

                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(dts[0], newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dts[1], newList);
                    }
                    else
                    {
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");

                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(0), newList);
                    }
                }

                System.Diagnostics.Debug.WriteLine("\nProcessing noun phrases");

                //                var manager = new Manager();
                //                var serializer = new XmlSerializer(typeof(Manager.language));
                //                var loadStream = new FileStream("file2.xml", FileMode.Open, FileAccess.Read);
                //                var loadedObject = (Manager.language) serializer.Deserialize(loadStream);


                var doc = new XmlDocument();
//                System.Diagnostics.Debug.WriteLine(HttpRuntime.AppDomainAppPath);
//                System.Diagnostics.Debug.WriteLine(HttpRuntime.AppDomainAppPath);
//                System.Diagnostics.Debug.WriteLine(HttpRuntime.AppDomainAppPath);
//                System.Diagnostics.Debug.WriteLine(HttpRuntime.AppDomainAppPath);
                doc.Load(HttpRuntime.AppDomainAppPath + "\\file2.xml");


                var root = doc.SelectSingleNode("*");
                FindMatchingNodesFromXml(root, nounPhrases);


                foreach (var item in nouns.ToList())
                {
                    foreach (var VARIABLE in matchedWords)
                    {
                        if (VARIABLE.Key.Contains(item))
                        {
                            nouns.Remove(item);    //Will work!
                        }
                    }
                }

                FindMatchingNodesFromXml(root, verbPhrases);
                // FindMatchingNodesFromXml(root, nouns);



                System.Diagnostics.Debug.WriteLine("\nProcessing verb phrases ");


                System.Diagnostics.Debug.WriteLine("\nProcessing nouns ");



                // construct the dictionary object and open it
                var directory = Directory.GetCurrentDirectory() + "\\wordnet\\";
                foreach (var variable in matchedWords)
                {
                    System.Diagnostics.Debug.WriteLine(variable.Value + "\t\t" + variable.Key);
                }

                foreach (var variable in matchedWords)
                {
                    string a = variable.Key;
                    if (line.Contains(a))
                    {
                        line = line.replace(a, "");
                    }
                }

                foreach (var variable in stopWordsofwordnet)
                {
                    string a = " " + variable.toLowerCase() + " ";
                    if (line.Contains(a))
                    {
                        line = line.replace(a, " ");
                    }
                }
                if (line.contains("."))
                {
                    line = line.replace(".", "");
                }
                if (line.contains("-"))
                {
                    line = line.replace("-", " ");
                }
                System.Diagnostics.Debug.WriteLine("/////////////");
                System.Diagnostics.Debug.WriteLine("SECOND PARSE STRING " + line);
                System.Diagnostics.Debug.WriteLine("/////////////");
                line      = line.Trim();
                topParses = ParserTool.parseLine(line, myParser, 1);
                nounPhrases?.Clear();
                dates?.Clear();
                verbPhrases?.Clear();
                nouns?.Clear();
                foreach (var p in topParses)
                {
                    //p.show();
                    GetSentenceParts(p);
                }

                FindMatchingNodesFromXml(root, nounPhrases);



                foreach (var item in nouns.ToList())
                {
                    foreach (var VARIABLE in matchedWords)
                    {
                        if (VARIABLE.Key.Contains(item))
                        {
                            nouns.Remove(item);    //Will work!
                        }
                    }
                }
                FindMatchingNodesFromXml(root, verbPhrases);
                FindMatchingNodesFromXml(root, nouns);


                tokens    = tokenizer.tokenize(line);
                nameSpans = nameFinder.find(tokens);

                array = Span.spansToStrings(nameSpans, tokens);
                dates = new HashSet <string>(array);



                PrintSets();

                System.Diagnostics.Debug.WriteLine("\nProcessing Dates");


                if (dates.Count == 2)
                {
                    if (dates.ElementAt(0).contains("from"))
                    {
                        var           a       = dates.ElementAt(0).replace("from", "");
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(a, newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(1), newList);
                    }
                    else
                    {
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(dates.ElementAt(0), newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(1), newList);
                    }
                }

                if (dates.Count == 1)
                {
                    if (dates.ElementAt(0).contains("from"))
                    {
                        var a   = dates.ElementAt(0).replace("from", "");
                        var dts = a.Split(new[] { " to " }, StringSplitOptions.None);

                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");
                        matchedWords.Add(dts[0], newList);
                        newList = new List <string>();
                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dts[1], newList);
                    }
                    else
                    {
                        List <string> newList = new List <string>();
                        newList.Add("START_PERIOD");

                        newList.Add("END_PERIOD");
                        //todo fix when the date is the same here
                        matchedWords.Add(dates.ElementAt(0), newList);
                    }
                }

                System.Diagnostics.Debug.WriteLine("\nProcessing noun phrases");

                //                var manager = new Manager();
                //                var serializer = new XmlSerializer(typeof(Manager.language));
                //                var loadStream = new FileStream("file2.xml", FileMode.Open, FileAccess.Read);
                //                var loadedObject = (Manager.language) serializer.Deserialize(loadStream);



                FindMatchingNodesFromXml(root, nounPhrases);
                FindMatchingNodesFromXml(root, verbPhrases);
                FindMatchingNodesFromXml(root, nouns);

                foreach (var variable in matchedWords)
                {
                    System.Diagnostics.Debug.WriteLine(variable.Value + "\t\t" + variable.Key);
                }

                doc = null;
                GC.Collect();
                GC.WaitForPendingFinalizers();
                //MATCHING WITH WORD NET
                System.Diagnostics.Debug.WriteLine(directory);
                //                var wordNet = new WordNetEngine();
                //
                //                wordNet.AddDataSource(new StreamReader(Path.Combine(directory, "data.adj")), PartOfSpeech.Adjective);
                //                wordNet.AddDataSource(new StreamReader(Path.Combine(directory, "data.adv")), PartOfSpeech.Adverb);
                //                wordNet.AddDataSource(new StreamReader(Path.Combine(directory, "data.noun")), PartOfSpeech.Noun);
                //                wordNet.AddDataSource(new StreamReader(Path.Combine(directory, "data.verb")), PartOfSpeech.Verb);
                //
                //                wordNet.AddIndexSource(new StreamReader(Path.Combine(directory, "index.adj")), PartOfSpeech.Adjective);
                //                wordNet.AddIndexSource(new StreamReader(Path.Combine(directory, "index.adv")), PartOfSpeech.Adverb);
                //                wordNet.AddIndexSource(new StreamReader(Path.Combine(directory, "index.noun")), PartOfSpeech.Noun);
                //                wordNet.AddIndexSource(new StreamReader(Path.Combine(directory, "index.verb")), PartOfSpeech.Verb);
                //
                //                System.Diagnostics.Debug.WriteLine("Loading database...");
                //                wordNet.Load();
                //                System.Diagnostics.Debug.WriteLine("Load completed.");
                //                while (true)
                //                {
                //                    System.Diagnostics.Debug.WriteLine("\nType first word");
                //
                //                    var word = System.Diagnostics.Debug.ReadLine();
                //                    var synSetList = wordNet.GetSynSets(word);
                //
                //                    if (synSetList.Count == 0) System.Diagnostics.Debug.WriteLine($"No SynSet found for '{word}'");
                //
                //                    foreach (var synSet in synSetList)
                //                    {
                //                        var words = string.Join(", ", synSet.Words);
                //
                //                        System.Diagnostics.Debug.WriteLine($"\nWords: {words}");
                //                    }
                //                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            finally
            {
                if (modelIn1 != null)
                {
                    try
                    {
                        modelIn1.close();
                    }
                    catch (IOException e)
                    {
                    }
                }

                if (modelIn2 != null)
                {
                    try
                    {
                        modelIn2.close();
                    }
                    catch (IOException e)
                    {
                    }
                }



                //            truncateLists(ref nounPhrases);
                //            truncateLists(ref nouns);
                //            truncateLists(ref dates);
                //            truncateLists(ref verbPhrases);
            }



            return(matchedWords);
        }
Ejemplo n.º 23
0
 public Parser(ParserModel model) : this(model, DefaultBeamSize, DefaultAdvancePercentage)
 {
 }
Ejemplo n.º 24
0
        // Constructors and finalizers:
        private Repository()
        {
            _assemblyName = Regex.Match(_assemblyFullName, "^(.*?),.*$").Result("$1");

            _rootDrive = ("/usr/project/xtmp/dp195/Poetix18/").Replace(@"\", Dsc);
            _nlpFolder = ("rhetorica/nlp/").Replace(@"\", Dsc);

            _openNlpModelsFolder = ("OpenNLP/models/").Replace(@"\", Dsc);
            _openNlpModelsPath   = RootDrive + _nlpFolder + _openNlpModelsFolder;

            _wordNetFolder = ("WordNet_3/").Replace(@"\", Dsc);
            _wordNetPath   = RootDrive + _nlpFolder + _wordNetFolder;

            _grammarFolder = ("StanfordParser/grammar/").Replace(@"\", Dsc);
            _grammarPath   = RootDrive + _nlpFolder + _grammarFolder;

            _dataFolder   = ("data/").Replace(@"\", Dsc);
            _nlpTextsPath = RootDrive + _dataFolder;

            string[] localTextDirectoryParts =
            {
                CurrentAssemblyDirectoryPath,
                "..",                        "..","..", "data"
                //"..", "..", "text"
            };
            _localTextPath = Path.Combine(localTextDirectoryParts) + "/"; // For development use

            // WordNet engine:
            Console.Write("Loading WordNet engine.... ");
            _wordNetEngine = new WordNetEngine(WordNetPath, true);
            Console.WriteLine("Done.");

            // OpenNLP sentence detector:
            Console.Write("Loading OpenNLP sentence detector.... ");
            java.io.FileInputStream modelInputStream = new java.io.FileInputStream(OpenNlpModelsPath + "en-sent.bin");
            _sentenceModel = new SentenceModel(modelInputStream);
            modelInputStream.close();
            _sentenceDetector = new SentenceDetectorME(_sentenceModel);
            Console.WriteLine("Done.");

            // OpenNLP tokenizer:
            Console.Write("Loading OpenNLP tokenizer.... ");
            modelInputStream = new java.io.FileInputStream(OpenNlpModelsPath + "en-token.bin");
            _tokenizerModel  = new opennlp.tools.tokenize.TokenizerModel(modelInputStream);
            modelInputStream.close();
            _tokenizer = new opennlp.tools.tokenize.TokenizerME(_tokenizerModel);
            Console.WriteLine("Done.");

            // OpenNLP name finder:
            Console.Write("Loading OpenNLP name finder.... ");
            modelInputStream      = new java.io.FileInputStream(OpenNlpModelsPath + "en-ner-person.bin");
            _tokenNameFinderModel = new TokenNameFinderModel(modelInputStream);
            modelInputStream.close();
            _nameFinder = new NameFinderME(_tokenNameFinderModel);
            Console.WriteLine("Done.");

            // OpenNLP POS tagger:
            Console.Write("Loading OpenNLP POS tagger.... ");
            modelInputStream = new java.io.FileInputStream(OpenNlpModelsPath + "en-pos-maxent.bin");
            _posModel        = new POSModel(modelInputStream);
            modelInputStream.close();
            _tagger = new POSTaggerME(_posModel);
            Console.WriteLine("Done.");

            // OpenNLP chunker:
            Console.Write("Loading OpenNLP chunker.... ");
            modelInputStream = new java.io.FileInputStream(OpenNlpModelsPath + "en-chunker.bin");
            _chunkerModel    = new ChunkerModel(modelInputStream);
            modelInputStream.close();
            _chunker = new ChunkerME(_chunkerModel);
            Console.WriteLine("Done.");

            // OpenNLP parser:
            if (_loadParser)
            {
                Console.Write("Loading OpenNLP parser.... ");
                modelInputStream = new java.io.FileInputStream(OpenNlpModelsPath + "en-parser-chunking.bin");
                _parserModel     = new ParserModel(modelInputStream);
                modelInputStream.close();
                _parser = ParserFactory.create(_parserModel);
                Console.WriteLine("Done.");
            }

            // Stanford parser:
            //_stanfordParser = new LexicalizedParser(GrammarPath + "englishPCFG.ser.gz"); // Obsolete method
            _stanfordParser = LexicalizedParser.loadModel(GrammarPath + "englishPCFG.ser.gz");

            // Porter stemmer:
            _porterStemmer = new PorterStemmer();
        }
Ejemplo n.º 25
0
 protected internal abstract ParserModel trainAndUpdate(ParserModel originalModel, ObjectStream <Parse> parseSamples, ModelUpdaterParams parameters);