我正在寻找一种方法来检测人称代词是第一人称(I),第二人称(您)还是第三人称(他们)。代码正在查看是否有人在谈论自己,但也有其他一些应用程序。检测第一/第二/第三人称代词
一个python库会很棒,但不是必需的。 nltk.pos_tag会告诉我什么是人称代词,但我似乎无法获得更多的信息。
是否有这样的事情存在?
我正在寻找一种方法来检测人称代词是第一人称(I),第二人称(您)还是第三人称(他们)。代码正在查看是否有人在谈论自己,但也有其他一些应用程序。检测第一/第二/第三人称代词
一个python库会很棒,但不是必需的。 nltk.pos_tag会告诉我什么是人称代词,但我似乎无法获得更多的信息。
是否有这样的事情存在?
编写自己将是微不足道的。正如你所说,NLTK可以给你所有的代词,并且你可以很容易地编写一个函数来通过简单的字符串匹配返回一个详细的形态分析。只需将标记为代词的东西传递给所述函数即可。
代名词是所谓的“封闭类”的词,即有一个有限(和小)的数量。没有办法(用英语)生成新的代名词。另一方面,名词是“公开课”,即您可以生成新名词(复合名词,如“海狸牙齿”或您有什么)。
因此,您只需使用类似f(x) = if x == "I" || x == "me" || x == "my" then return "1st. person singular"
...或一些这样的。很明显,你不想返回一个字符串,但是可以提供更多信息,比如一个对象的字段为number
和person
,可能还有possessive
,甚至case
。
还有一件事:因为NLTK是一个统计标记器,它有时会标记为代词单词,而根本不是。在这种情况下,您应该准备好返回错误状态。