2

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

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

这样的事情存在吗?

4

1 回答 1

8

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

代词是所谓的“封闭类”词,即它们的数量是有限的(和少量的)。没有办法(在英语中)生成新的代词。另一方面,名词是“公开课”,即您可以生成新名词(复合名词,例如“beaver dogs”或what have you。)

所以你只需使用类似f(x) = if x == "I" || x == "me" || x == "my" then return "1st. person singular"...或类似的东西。显然,您不想返回字符串,而是返回信息更丰富的内容,例如带有字段的对象numberperson,可能possessive甚至是case

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

于 2014-02-12T10:37:21.330 回答