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