public void isATest() { //good word = new WordObject("O", "text", "feminine", "dual", "any", "polarity", "verb", "unknown", new string[] { "ה" }, "none", "", "", "", "", true, "lemma"); Assert.IsTrue(word.isA(WordObject.WordType.verbWord)); //bad word = new WordObject("O", "text", "feminine", "dual", "any", "polarity", "sddsdsds", "unknown", new string[] { "ה" }, "none", "", "", "", "", true, "lemma"); Assert.IsTrue(word.isA(WordObject.WordType.unknownWord)); //evil word = new WordObject("O", "text", "feminine", "dual", "any", "polarity", null, "unknown", new string[] { "ה" }, "none", "", "", "", "", true, "lemma"); Assert.IsTrue(word.isA(WordObject.WordType.unknownWord)); }
public List <WordObject> getWordsObjectFromParserServer(String str) { List <WordObject> sentenceFromServer = new List <WordObject>(); var res = new List <WordObject>(); try { string JsonRes = HttpCtrl.sendToHebrewMorphAnalizer(str); if (JsonRes != null && JsonRes != "") { sentenceFromServer = JsonConvert.DeserializeObject <List <WordObject> >(JsonRes); } //may be mispelling for the first time var firstWord = true; // print tagged sentence by using AnalysisInterface, as follows: foreach (WordObject w in sentenceFromServer) { WordObject word = w; //two NRI in a row //join word if ist part of a name if (res.Count > 0) { var last = res.LastOrDefault(); if (((last.Ner == word.Ner && last.Ner != "O") || (last.isA(properNameWord) && word.isA(properNameWord))) && !word.Prefixes.Contains("ו") && !firstWord) { res.LastOrDefault().Text = res.LastOrDefault().Text.Remove(0, res.LastOrDefault().Prefixes.Count()); res.LastOrDefault().Text += " " + word.Text; res.LastOrDefault().Lemma = res.LastOrDefault().Text; continue; } } firstWord = false; res.Add(w); } } catch (Exception ex) //if parser server is down { var words = str.Split(' '); foreach (var w in words) { var word = new WordObject(w, nounWord); sentenceFromServer.Add(word); } } return(res); }
//public WorldObject Tag(ref WorldObject prevObj, ref Sentence sentence, ref ContentTurn context) //{ // // var word = sentence.Words.FirstOrDefault(); // var word = sentence.Words.FirstOrDefault(); // if (word != null) // { // sentence.Words.RemoveAt(0); // if (word.isA(helloWord)) // { // return (HelloObject)word.WorldObject; // } // else if (word.isA(questionWord)) // { // return (QuestionObject)word.WorldObject; // } // else if (word.isA(hyphenWord)) // { // var objective = Tag(ref prevObj, ref sentence, ref context); // if (objective != null) // { // prevObj.addRelation(new expansionRelObject(objective)); // prevObj = objective; // } // else // { // throw new SemanticException("prep without objective"); // } // return null; // } // else if (word.isA(copulaWord)) // { // var objective = Tag(ref prevObj, ref sentence, ref context); // if (objective != null) // { // var guf = (gufObject)word.WorldObject; // prevObj.addRelation(new copulaRelObject(objective, guf)); // prevObj = objective; // return null; // } // else // { // return prevObj; // // throw new SemanticException("prep without objective"); // } // return null; // } // else if (word.isA(gufWord)) // { // return word.WorldObject; // } // else if (word.isA(nounWord)) // { // if (word.prefix == null) // { // if (word.WorldObject != null) return word.WorldObject; // else // { // return new NounObject(word.Word); // } // } // else // { // WorldObject obj = new NounObject(word.Word); // if (word.ha) // { // obj.DefiniteArticle = true; // } // if (word.le) // { // prevObj.addRelation(new PrepRelObject(new NounObject(word.Word), PrepType.toPrep)); // return null; // } // else if (word.me) // { // return obj; // } // return obj; // // throw new SemanticException("unknown prefix"); // } // } // else if (word.isA(personWord)) // { // if (word.WorldObject != null) return word.WorldObject; // else // { // return new PersonObject(word.Word); // } // } // else if (word.isA(negationWord)) // { // var objective = Tag(ref prevObj, ref sentence, ref context); // objective.Negat = true; // return objective; // } // else if (word.isA(verbWord)) // { // if(prevObj != null) // { // var objective = new VerbObject(word.Word); // prevObj.addRelation(new VerbRelObject(objective)); // prevObj = objective; // } // else // { // var prev = Tag(ref prevObj, ref sentence, ref context); // var objective = new VerbObject(word.Word); // prev.addRelation(new VerbRelObject(objective)); // return prevObj; // } // return null; // } // else if (word.isA(timeWord)) // { // if (word.WorldObject != null) return word.WorldObject; // else // { // return new TimeObject(word.Word); // } // } // else if (word.isA(adjectiveWord | adverbWord)) // { // if (prevObj != null) // { // prevObj.addRelation(new adjectiveRelObject(new AdjObject(word.Word))); // return null; // }else // { // var objective = Tag(ref prevObj, ref sentence, ref context); // objective.addRelation(new adjectiveRelObject(new AdjObject(word.Word))); // return objective; // } // } // else if (word.isA(prepWord)) // { // var objective = Tag(ref prevObj, ref sentence, ref context); // if (objective != null & prevObj != null) // { // prevObj.addRelation(new PrepRelObject(objective, ((PrepRelObject)word.WorldObject).Type)); // return prevObj; // } // else // { // var objective2 = Tag(ref prevObj, ref sentence, ref context); // objective2.addRelation(new PrepRelObject(objective, ((PrepRelObject)word.WorldObject).Type)); // return objective2; // } // } // else if (word.isA(locationWord)) // { // return word.WorldObject; // } // else if (word.isA(conjunctionWord)) // { // var objective = Tag(ref prevObj, ref sentence, ref context); // if (objective != null) // { // prevObj.addRelation(new PrepRelObject(objective, ((PrepRelObject)word.WorldObject).Type)); // prevObj = objective; // } // else // { // // throw new SemanticException("prep without objective"); // } // return null; // } // else // { // return null; // // throw new NotImplementedException(); // } // } // else // { // return null; // } //} internal bool isAName(WordObject w) { return(w.isA(personWord) || w.isA(properNameWord)); }