C# 用SharpNLP识别英语句子中的时态

C# 用SharpNLP识别英语句子中的时态,c#,algorithm,nlp,sharpnlp,C#,Algorithm,Nlp,Sharpnlp,在我的作业中,我用SharpNLP来定义词性,如名词、形容词、动词等。然后,我想根据时态的种类对句子进行分类,首先在本例中,以过去时态为例 让我看看我的代码 listSentence = ParseInput(allInput); foreach (string word in listSentence[0].Split(separator)) if (word.Trim() != "") listWord

在我的作业中,我用SharpNLP来定义词性,如名词、形容词、动词等。然后,我想根据时态的种类对句子进行分类,首先在本例中,以过去时态为例

让我看看我的代码

        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=“我昨天很忙。”

简单来说,在列表中,句子[0]包含“我昨天很忙”。
然后在字符串[]lWord中拆分为“我”、“曾经”、“忙碌”、“昨天”
然后我使用了SharpNLP,它运行良好,因此字符串[]lpo包含{“NN”、“VBD”、“JJ”、“NN”}
这应该被认为是正确的
基于这一结果,我很困惑如何识别过去时态-对还是错。

说明:

NN:名词,单数或质量
动词,过去式
VBP:动词,非第三人称单数present
动词,第三人称单数现在
动词、动名词或现在分词
动词,过去分词
JJ:形容词
人称代词

如果allInput=“我昨天很忙”
字符串[]lPOS={“PRP”、“VBP”、“JJ”、“NN”}
这应该被认为是错误的

如果allInput=“他们昨天很忙”
字符串[]lPOS={“PRP”、“VBP”、“JJ”、“NN”}
这应该被认为是错误的

如果allInput=“我明天很忙”
字符串[]lPOS={“PRP”、“VBD”、“JJ”、“NN”}
这应该被认为是错误的

先生,请帮帮我。根据以上所有输出,给我一些想法和规则来识别过去式。
让我从你的例子中学习。非常感谢大家。:)

目标中有一个基本矛盾。 解析器在语法(结构)级别进行操作。但您也希望根据语义(含义)进行分类。
我明天很忙
根据语法分析器是过去式,因为从语法上讲,过去式中有一个动词。但是,最后一个词的语义使它成为一个语义错误的句子


在我看来,就你的目标而言,
我昨天很忙
是现在时态,
我明天很忙
是过去时态。

第三种情况如何错误?根据什么你将一个句子归类为过去或现在。先生@Sonic。。我将根据动词和时间副词把一个句子分为过去句和现在句。。有什么建议吗,索尼克先生?我明天很忙。既然was是VBD,它是过去时,它不应该返回TRUE吗?“was”表示过去时,但副词“明天”表示将来。那个是动词“是”和副词“明天”之间的反义词,应该被判为假。。我认为,副词可以用来定义假或真我帮不了你,因为“明天”虽然在这个例子中是副词-3被认为是NN,它代表名词。其他方面,你可以创建一个类型的地图,比如VBD到他们的时态过去的未来等,并通过它进行迭代。