2014-02-12 45 views
1

我正在尋找一種方法來檢測人稱代詞是第一人稱(I),第二人稱(您)還是第三人稱(他們)。代碼正在查看是否有人在談論自己,但也有其他一些應用程序。檢測第一/第二/第三人稱代詞

一個python庫會很棒,但不是必需的。 nltk.pos_tag會告訴我什麼是人稱代詞,但我似乎無法獲得更多的信息。

是否有這樣的事情存在?

回答

6

編寫自己將是微不足道的。正如你所說,NLTK可以給你所有的代詞,並且你可以很容易地編寫一個函數來通過簡單的字符串匹配返回一個詳細的形態分析。只需將標記爲代詞的東西傳遞給所述函數即可。

代名詞是所謂的「封閉類」的詞,即有一個有限(和小)的數量。沒有辦法(用英語)生成新的代名詞。另一方面,名詞是「公開課」,即您可以生成新名詞(複合名詞,如「海狸牙齒」或您有什麼)。

因此,您只需使用類似f(x) = if x == "I" || x == "me" || x == "my" then return "1st. person singular" ...或一些這樣的。很明顯,你不想返回一個字符串,但是可以提供更多信息,比如一個對象的字段爲numberperson,可能還有possessive,甚至case

還有一件事:因爲NLTK是一個統計標記器,它有時會標記爲代詞單詞,而根本不是。在這種情況下,您應該準備好返回錯誤狀態。

相關問題