在我的作业中,我使用SharpNLP来定义词性,如名词,形容词,动词等。然后,我想根据时态的类型对句子进行分类,首先在这种情况下,以PAST TENSE为例。
让我看看我的代码..
listSentence = ParseInput(allInput);
foreach (string word in listSentence[0].Split(separator))
if (word.Trim() != "")
listWord.Add(word);
string[] lWord = listWord.ToArray();
string[] lPOS = this.NLP.PosTagTokens(lWord);
allInput =“我昨天很忙。”
说实话, listSentence [0] 包含“我昨天很忙”。
然后在 string [] lWord中分成“I”,“was”,“busy”,“yesterday”
然后我使用SharpNLP,运行良好,以便 string [] lPOS 包含{“NN”,“VBD”,“JJ”,“NN”}
这应该被认为是真的
基于该输出,我很困惑如何识别为PAST TENSE - TRUE或FALSE。
说明:
如果allInput =“我昨天很忙”
string [] lPOS = {“PRP”,“VBP”,“JJ”,“NN”}
那应该被认为是假的
如果allInput =“他们昨天很忙”
string [] lPOS = {“PRP”,“VBP”,“JJ”,“NN”}
那应该被认为是假的
如果allInput =“明天我很忙”
string [] lPOS = {“PRP”,“VBD”,“JJ”,“NN”}
那应该被认为是假的
答案 0 :(得分:0)
目标存在一个基本矛盾。
解析器在语法(结构)级别运行。但是你想要根据语义(含义)进行分类。
根据解析器,BUCKETS
过去时态,因为从句法上讲,过去时有一个动词。但是,最后一个单词的语义使它成为一个语义错误的句子。
在我看来,为了您的目标,I was busy tomorrow
是现在时,I am busy yesterday
已过去。