检测第一/第二/第三人称代词

时间:2014-02-12 04:25:44

标签: nlp pos-tagger

我正在寻找一种方法来检测人称代词是第一人(I),第二人(您)还是第三人(他们)。代码正在寻找是否有人在谈论自己,但也有其他一些应用程序。

一个python库会很棒,但不是必需的。 nltk.pos_tag会告诉我什么是人称代词,但我似乎无法获得更多信息。

这样的事情是否存在?

1 个答案:

答案 0 :(得分:7)

写自己是微不足道的。如你所说,NLTK可以为你提供所有代词,你可以轻松编写一个函数,通过简单的字符串匹配返回详细的形态分析。只需将标记为代词的内容传递给所述函数即可。

代词是所谓的“封闭类”词,即它们的数量有限(和小)。没有办法(用英语)生成 new 代词。另一方面,名词是“公开课”,即你可以产生新的名词(复合名词,如“海狸牙”或者你有什么。)

所以你只需使用像f(x) = if x == "I" || x == "me" || x == "my" then return "1st. person singular"这样的东西......或者其他类似东西。显然,您不希望返回字符串,而是更具信息性的内容,例如包含字段numberperson,可能还有possessive甚至case的对象。

还有一件事:因为NLTK是一个统计标记器,它有时会标记为代词而不是。在这种情况下,您应该准备好返回错误条件。