public string GetSynonym(string concept)
        {
            string sinonimos      = "";
            string conceptSynonym = "";

            //Cargar la base de datos de WordNet
            WordNetEngine wordNetEngine = new WordNetEngine();
            PartOfSpeech  pos           = new PartOfSpeech();

            //var directory = Directory.GetCurrentDirectory();
            var directory = HttpContext.Current.Server.MapPath("./") + "bin\\WordNet";

            wordNetEngine.LoadFromDirectory(directory);


            //Utilizar la librería para traer los sinonimos
            var synSetList = wordNetEngine.GetSynSets(concept);

            if (synSetList.Count == 0)
            {
                return("(" + concept + " + )");
            }

            foreach (var synSet in synSetList)
            {
                var words = string.Join(" + ", synSet.Words);

                sinonimos = sinonimos + words;
            }

            conceptSynonym = "(" + sinonimos + ")";


            return(conceptSynonym);
        }
Beispiel #2
0
 public static List <SynSet> FindDefinition(string word)
 {
     if (!WordNet.IsLoaded)
     {
         WordNet.LoadFromDirectory(HostingEnvironment.MapPath("~/App_Data/EBook/Wordnet"));
     }
     return(WordNet.GetSynSets(word));
 }
Beispiel #3
0
        //Init wordnet
        public void WordNetInit()
        {
            var directory = System.IO.Directory.GetCurrentDirectory();

            wordNet = new WordNetEngine();
            Console.WriteLine("Loading database...");
            wordNet.LoadFromDirectory(directory);
            Console.WriteLine("Load completed.");
        }
        // Load wordnet data
        private void LoadDatabaseButton_Click(object sender, EventArgs e)
        {
            string directoryPath = Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName, "Resources");

            MessageBox.Show("Loading database");
            wordNet.LoadFromDirectory(directoryPath);
            MessageBox.Show("Load completed");
            LoadDatabaseButton.Text    = "Database is loaded.";
            LoadDatabaseButton.Enabled = false;
        }
Beispiel #5
0
        private void button4_Click(object sender, EventArgs e)
        {
            //var directory = System.IO.Directory.GetCurrentDirectory();
            string directory = @"H:\semester 4\IFN 647\project\LuceneAdvancedSearchApplicationSolutions\LuceneAdvancedSearchApplication\bin\Debug\Wordnet";

            wordNet = new WordNetEngine();

            //MessageBox.Show("Loading database...");
            wordNet.LoadFromDirectory(directory);
            MessageBox.Show("Load completed.");
        }
Beispiel #6
0
        public static void LoadWordnet()
        {
            string wordNetPath = HttpContext.Current.Server.MapPath("/FileStore/wordnet/");

            if (!Directory.Exists(wordNetPath))
            {
                LoggingUtility.LogError(new FileNotFoundException("WordNet data not found."));
                return;
            }

            var engine = new WordNetEngine();

            engine.LoadFromDirectory(wordNetPath);
            WordNetHarness = engine;
        }
Beispiel #7
0
        public List <SynSet> GettingSynSets(string word)
        {
            var directory = System.IO.Directory.GetCurrentDirectory();

            wordNet = new WordNetEngine();
            //Console.WriteLine(directory);
            //Console.WriteLine("Loading database...");
            wordNet.LoadFromDirectory(directory);
            //Console.WriteLine("Load completed.");

            if (true)
            {
                var synSetList = wordNet.GetSynSets(word);
                return(synSetList);
            }
        }
Beispiel #8
0
        public TargetIdentificator(string word2VecModelPath)
        {
            lexParser = LexicalizedParser.loadModel(@"Resources\englishPCFG.ser.gz");
            grammaticalStructureFactory = new PennTreebankLanguagePack().grammaticalStructureFactory();

            lemmatizer = IStemmer.GetLemmatizer();

            wordNetEngine = new WordNetEngine();
            wordNetEngine.LoadFromDirectory(@"Resources\WordNet");

            word2VecVocabulary = new Word2VecBinaryReader().Read(word2VecModelPath);

            MLContext    mlContext = new MLContext();
            ITransformer mlModel   = mlContext.Model.Load("MLModel.zip", out _);

            predictionEngine = mlContext.Model.CreatePredictionEngine <ModelInput, ModelOutput>(mlModel);

            wiki = new Wiki("NLP/1.0", "https://en.wikipedia.org", "https://en.wikipedia.org/w/api.php");

            caching = new CachingFile();
        }
Beispiel #9
0
        private void LoadWordNet()
        {
            string directory = WORDNETDB_PATH;//Directory.GetCurrentDirectory();

            wordNet = new WordNetEngine();
            Console.WriteLine("Loading database...");
            wordNet.LoadFromDirectory(directory);
            Console.WriteLine("Load completed.");

            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);

            Console.WriteLine("Loading database...");
            wordNet.Load();
            Console.WriteLine("Load completed.");
        }
Beispiel #10
0
        private void WordNetForm_Load(object sender, EventArgs e)
        {
            this.Visible = false;
            PWF2         = new PleaseWaitForm2();
            PWF2.Show();

            //--------------------------------Word Net Loading
            wordNet = new WordNetEngine();

            wordNet.LoadFromDirectory(directory);

            PWF2.Close();
            this.Visible = true;
            //--------------------------------------------------------------
            textBox1.Text = "";
            //------------------------------------------
            dgv.AutoGenerateColumns       = false;
            dgv.RowHeadersVisible         = false;
            dgv.MultiSelect               = false;
            dgv.SelectionMode             = DataGridViewSelectionMode.FullRowSelect;
            dgv.AutoSizeRowsMode          = DataGridViewAutoSizeRowsMode.AllCells;
            dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            //----------------------------------------------------------------------------
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Synonyms",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 100
            });
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Parts of Speech",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 50,

                //FillWeight = 25
            });

            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Gloss",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               // Width = 100,
            });
            //---------------------------------------------------1
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Also See",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 2000
                               //FillWeight = 25
            });
            //---------------------------------------------------2
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Antonym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 60

                               //FillWeight = 25
            });
            //---------------------------------------------------3
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Attribute",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------4
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Cause",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------5
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Derivationally Related",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------6
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Derived from Adjective",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------7
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Entailment",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 100
                               //FillWeight = 25
            });
            //---------------------------------------------------8
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Hypernym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 700
                               //FillWeight = 25
            });
            //---------------------------------------------------9
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Hyponym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 1600
                               //FillWeight = 25
            });
            //---------------------------------------------------10
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Instance Hypernym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------11
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Instance Hyponym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 3000
                               //FillWeight = 25
            });
            //---------------------------------------------------12
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Member Holonym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------13
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Member Meronym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------14
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Part Holonym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------15
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Participle of Verb",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------16
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Part Meronym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 1000
                               //FillWeight = 25
            });
            //---------------------------------------------------17
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Part Ainym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 100
                               //FillWeight = 25
            });
            //---------------------------------------------------18
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Region Domain",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 500
                               //FillWeight = 25
            });
            //---------------------------------------------------19
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Region Domain Member",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 700
                               //FillWeight = 25
            });
            //---------------------------------------------------20
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Similar To",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 600
                               //FillWeight = 25
            });
            //---------------------------------------------------21
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Substance Holonym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------22
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "substance Meronym",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------23
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Topic Domain",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------24
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Topic Domain Member",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------25
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Usage Domain",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 300
                               //FillWeight = 25
            });
            //---------------------------------------------------26
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Usage Domain Member",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 200
                               //FillWeight = 25
            });
            //---------------------------------------------------27
            dgv.Columns.Add(new DataGridViewTextBoxColumn()
            {
                HeaderText   = "Verb Group",
                ReadOnly     = true,
                AutoSizeMode = DataGridViewAutoSizeColumnMode.None,
                Width        = 1000
                               //FillWeight = 25
            });
            //----------------------------------------------------------------------
        }
Beispiel #11
0
 /// <summary>
 /// create a wordnet engine
 /// </summary>
 public void CreateWordnetEngine()
 {
     directory = GlobalData.wordnetDBPath;
     wordnet.LoadFromDirectory(directory);
 }
Beispiel #12
0
        public void button1_Click(object sender, EventArgs e)
        {
            querydiaplay.Clear();
            if (searchBox1.Text == "")
            {
                MessageBox.Show("Please Enter Your Query");
            }

            else
            {
                if (PhrasecheckBox1.Checked)
                {
                    input = ("\"" + searchBox1.Text + "\"");
                    querydiaplay.AppendText("Searching for\n");
                    querydiaplay.AppendText(input);
                }
                if (preprocessing.Checked)//if user choose preprocessing, application will tokenization, remove stop word and extract stemming
                {
                    input = lucene.preprocessing(searchBox1.Text);
                    querydiaplay.AppendText("Searching for\n");
                    querydiaplay.AppendText(input);
                }

                if (synonym.Checked)
                {
                    var directory = System.IO.Directory.GetCurrentDirectory(); // Set WordNet directory
                    wordNet = new WordNetEngine();                             // Initiate WordNet object
                    wordNet.LoadFromDirectory(directory);
                    MessageBox.Show("loading wornet successful");
                    string input_text = searchBox1.Text;
                    int    letterindex;

                    /*
                     * string temp_s = "";
                     * bool quotesOpened = false;
                     * for (letterindex = 0; letterindex < input_text.Length; letterindex++)
                     * {
                     *  if (input_text[letterindex] == '"')
                     *  {
                     *      quotesOpened = !quotesOpened;
                     *  }
                     *  else
                     *  {
                     *      if (!quotesOpened && input_text[letterindex] == '"')
                     *          temp_s = temp_s + input_text[letterindex];
                     *  }
                     *
                     * }
                     */
                    string[] separators  = { ",", ".", "!", "?", ";", ":", "-", " ", "\n", "\"", "'" };
                    string[] input_array = input_text.Split(separators, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < input_array.Length; i++)
                    {
                        weighted_text += input_array[i] + "^5";
                    }


                    input = weighted_text + Expansion_query(input_array);
                    querydiaplay.AppendText("Searching for\n");
                    querydiaplay.AppendText(input);
                }
                if (!preprocessing.Checked && !synonym.Checked && !PhrasecheckBox1.Checked)
                {
                    input = searchBox1.Text;
                    querydiaplay.AppendText("Searching for\n");
                    querydiaplay.AppendText(input);
                }



                stopwatch.Restart();
                lucene.CreatParser();
                results = lucene.Searching(input);

                if (results.TotalHits % 10 == 0)
                {
                    totalpage = results.TotalHits / 10;
                }
                else
                {
                    totalpage = results.TotalHits / 10 + 1;
                }
                searchBypage(results, currentpage, pagesize);
                stopwatch.Stop();
                label3.Text   = (currentpage + " / " + totalpage);
                textBox1.Text = results.TotalHits.ToString();
                textBox2.Text = stopwatch.Elapsed.ToString();
            }
        }
Beispiel #13
0
        public string ExpandWeightedQuery(string level, string query)
        {
            string        expandedquery           = "";
            WordNetEngine wordnet                 = new WordNetEngine();
            var           directory               = System.IO.Directory.GetCurrentDirectory();
            Dictionary <string, string> thesaurus = new Dictionary <string, string>();
            string path = directory + "\\wordnet\\";

            wordnet.LoadFromDirectory(path);
            if (wordnet.IsLoaded)
            {
                char[]   delimiter = { ' ', ';' };
                string[] querylist = query.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
                //separate the text inputed into several parts;
                foreach (string item in querylist)
                {
                    var synSetList = wordnet.GetSynSets(item); //create a set of synonyms for the item

                    if (synSetList.Count != 0)                 //if there is synonym, it continues to do the next things
                    {
                        Dictionary <string, int> uniqueword = new Dictionary <string, int>();

                        foreach (SynSet syns in synSetList)
                        {
                            //syns.Words is a list not a string
                            foreach (string w in syns.Words)
                            {
                                if (uniqueword.ContainsKey(w))
                                {
                                    uniqueword[w] = uniqueword[w] + 1;
                                }
                                else
                                {
                                    uniqueword.Add(w, 1);
                                }
                            }

                            //if a user want to expand the query to a certian lexical level, such as hypernym...
                            //if the level is not synonym,it means the uniqueword will be larger
                            if (level != "Synonym")
                            {
                                SynSetRelation relation       = (SynSetRelation)Enum.Parse(typeof(SynSetRelation), level);
                                var            relationsynset = syns.GetRelatedSynSets(relation, true);

                                foreach (SynSet element in relationsynset)
                                {
                                    foreach (string ite in element.Words)
                                    {
                                        if (uniqueword.ContainsKey(ite))
                                        {
                                            uniqueword[ite] = uniqueword[ite] + 1;
                                        }
                                        else
                                        {
                                            uniqueword.Add(ite, 1);
                                        }
                                    }
                                }
                            }
                        }//finish exploring all synonyms for a specific item, so can add them into the dictionary
                        string lexical = "";
                        foreach (string w in uniqueword.Keys)
                        {
                            if (w != item)
                            {
                                lexical = lexical + " " + w;
                            }
                        }

                        thesaurus.Add(item, lexical);
                    } //this condition is there are synonyms
                }     //end the loop for each item( item is actualy a query)

                foreach (string term in thesaurus.Keys)
                {
                    expandedquery = expandedquery + " " + term + "^5" + thesaurus[term];
                }
            }//this condition is that wordnet engine is loaded, if you change the database directory, it can't work.
            return(expandedquery);
        }
Beispiel #14
0
        private static void LoadWordnet(WordNetEngine wordNet)
        {
            var directory = Path.Combine(Directory.GetCurrentDirectory(), "wordnet");

            wordNet.LoadFromDirectory(directory);
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            string         filepath = null;
            string         curPath  = Directory.GetCurrentDirectory();
            OpenFileDialog ofd      = new OpenFileDialog();

            ofd.Filter = "JSON|*.json";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                filepath = ofd.SafeFileName;
            }
            string         json         = File.ReadAllText(filepath);
            List <records> storeRecords = DeserializeJSON(json);

            WriteLine("Hello Lucene.Net");

            LuceneApplication LuceneApp = new LuceneApplication();

            //wrdnet wordne = new wrdnet();


            LuceneApp.CreateIndex(curPath);
            WriteLine(curPath);
            WriteLine("Adding Documents to Index");

            DateTime start = System.DateTime.Now;

            for (int x = 0; x < storeRecords.Count; x++)
            {
                WriteLine("Adding record no #{0}", x + 1);
                for (int y = 0; y < storeRecords[x].passages.Count; y++)
                {
                    string single_text = (storeRecords[x].passages[y].url + storeRecords[x].passages[y].passage_text);
                    //WriteLine("URL: {0}", storeRecords[x].passages[y].url.ToString());
                    //WriteLine("Passage Text: {0}", storeRecords[x].passages[y].passage_text.ToString());
                    // LuceneApp.IndexText(storeRecords[x].passages[y].url + storeRecords[x].passages[y].passage_text);

                    LuceneApp.IndexText(single_text);

                    //LuceneApp.IndexText(storeRecords[x].passages[y].passage_text);
                }
            }
            DateTime end = System.DateTime.Now;

            WriteLine("Total time for indexing >> {0}", end - start);

            WriteLine("All documents added.");

            // clean up
            LuceneApp.CleanUpIndexer();

            LuceneApp.CreateSearcher();
            // var directory = Directory.GetCurrentDirectory();
            var directory = @"C:\Users\Suprith Kangokar\Desktop\LuceneTest\LuceneTest\LuceneTest\bin\Debug\Wordnet";
            var wordNet   = new WordNetEngine();
            //  wordne.wordnet();
            string QUIT = "q";

            Write("Enter your query >>");
            string queryText = ReadLine();

            wordNet.LoadFromDirectory(directory);
            var synSetList = wordNet.GetSynSets(queryText);

            if (synSetList.Count == 0)
            {
                Console.WriteLine("No SynSet found");
            }
            string ex = "\t";


            foreach (var synSet in synSetList)
            {
                ex         = string.Join(", ", synSet.Words);
                queryText += ("\t" + ex);
            }
            //  LuceneApp.CreateParser();

            //string QUIT = "q";

            //Write("Enter your query >>");
            //string queryText = ReadLine();



            while (queryText != QUIT)
            {
                LuceneApp.DisplayResults(LuceneApp.SearchIndex(queryText));
                Write("Enter your query or press 'q' to exit >>");
                queryText = ReadLine();
            }



            //WriteLine("Press Enter to exit.");
            //ReadLine();
        }