2017-07-24 30 views
2

我想過濾文本文件中的單詞。如果文件中有任何「比較」和「最高級」單詞,我想將它們轉換爲「正面」。如何從文本文件中選擇和分組比較和最高級的單詞?

例如 - '最偉大' - >'偉大'等等。

我爲此使用'模式'模塊。例如它說,

from pattern.en import comparative, superlative 
print comparative('bad') 

給 - >worse工作正常。 但是,如果我做的:

from pattern.en import comparative, superlative, positive 
print positive('worse') 

它給,'False'

上午我做錯了?有什麼方法可以找出「比較」和「最高級」的單詞並打印它們的正面詞語?

回答

1

這是一個誤解:positive()函數不會做你的想法。

據我所知,pattern.en模塊只提供了從形容詞的肯定形式生成比較詞和最高級的功能,但不能用於反面(將形式分析爲正面形式的比較/最高級)。 有一個lemma()函數,你可以期望這樣做,但不幸的是它只適用於動詞。

您發現的positive()函數屬於情感檢測;它試圖告訴給定的句子是否具有正極性。

那麼,你現在做什麼? 我看到兩種可能性:你可以切換到支持形容詞變體的不同庫(例如SpaCy),或者你嘗試根據pattern.en模塊的代碼構建一個簡單的形容詞變形器。

如果您選擇第二個選項,請查看inflect module中的最後80行代碼。我建議你首先嚐試捕捉不規則的情況(使用那裏給定的表格的反轉),然後剝去-er/-est後綴。可能有一些特殊情況(如iyheavierheavy)。
親自嘗試一下,如果遇到問題,請帶着一個新問題回來!

+0

很好解釋,謝謝。 – kandal

相關問題