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