Python 中的詞乾和詞形還原:使用哪一個?

已發表: 2021-02-09

自然語言處理 (NLP) 是一種通信處理技術,涉及從語言中提取重要特徵。 這是人工智能的進步,涉及構建具有先前經驗的智能代理。 這里之前的​​經驗是指在龐大的數據集上執行的訓練,這些數據集涉及來自社交媒體、網絡抓取、調查表格和許多其他數據收集技術等來源的文本數據。

數據收集後的第一步是清理這些數據並將其轉換為機器可讀的形式,即機器可以解釋的數字形式。 雖然轉換過程完全是另一回事,但清潔過程是要執行的第一步。 在這個清理任務中,變形是一個重要的概念,在繼續進行詞乾化和詞形還原之前需要清楚地理解。

目錄

拐點

我們知道文本數據包括帶有單詞和其他字符的句子,這些字符可能會或可能不會影響我們的預測。 句子包括單詞和常用的單詞,例如is,there,並且被稱為停用詞。 這些可以通過為它們形成語料庫來輕鬆刪除,但是同一個詞的不同形式呢?

您不希望您的機器將“學習”和“學習”視為不同的詞,因為這些詞背後的意圖保持相同並且都傳達相同的含義。 處理這種情況是 NLP 中的常見做法,這被稱為拐點。 這是使用不同方法進行詞幹提取和詞形還原的基本思想。 讓我們發現它們之間的區別,看看哪個更好用。

詞幹

它是文本規範化技術之一,專注於減少單詞的歧義。 詞幹提取側重於將詞舍入到詞幹。 它通過刪除前綴或後綴來做到這一點,具體取決於所考慮的單詞。 該技術根據定義的規則集減少單詞。

結果詞可能有也可能沒有任何實際有意義的詞根。 其主要目的是將相似詞組組合在一起,以便進一步優化預處理。 例如,play、play、play 等詞都屬於詞幹“play”。 這也有助於減少搜索引擎的搜索時間,因為現在更多地關注關鍵元素。

關於詞乾化需要討論兩種情況,即過蒸詞幹不足 雖然從單詞中刪除前綴和後綴可以解決某些情況,但有些單詞被剝離的程度超過了要求。

這可能會導致更多沒有意義的垃圾詞。 雖然這是整個詞幹的缺點,如果它發生得更劇烈,它被稱為過度詞幹。 詞幹不足是相反的情況,詞幹處理過程導致單詞很少或有差異。

詞形還原

另一種規範化文本並將其轉換為詞根含義的方法是詞形還原。 這具有將相似的意圖詞分組為一組的相同動機,但不同之處在於,結果詞在這裡是有意義的。

它們不是用預定義的規則剝離的,而是使用字典形成的,或者我們稱之為引理。 在這裡,轉換過程需要更多時間,因為首先,單詞與其詞性匹配,這本身就是一個耗時的過程。

這確保了詞根具有字面意義,有助於在分析中獲得良好的結果。 當我們不想花太多時間在數據清理上,並且需要更乾淨的數據進行進一步分析時,這很有用。 這種技術的一個缺點是,由於它更多地關注單詞的語法,不同的語言將需要單獨的語料庫,從而導致越來越多的數據處理。

結帳:初學者的深度學習項目創意

使用哪一個?

現在到了在他們兩個之間選擇一個的關鍵。 選擇任何人都是非常主觀的,因為您所針對的用例在這裡起著重要作用。

如果您想分析一段文本但時間是一個限制,那麼您可以選擇詞幹提取,因為它執行此操作的時間較短但成功率較低,並且詞幹是通過可能沒有任何算法的方式提供的意義。

採用 Lemmatization 提供了一個額外的優勢,即從不同的形式中獲得有意義和準確的詞根詞。 如果你能用更多的時間買得起好的計算資源,那麼這可能是一個更好的選擇。 這應該在我們需要精確分析的地方採用。 搜索引擎上的某些搜索技術也可能是這種情況,其中根詞足以獲取用戶想要的結果。

Python 實現

NLTK(自然語言工具包)包是圍繞 NLP 的任務的 Python 實現。 該庫具有所有必需的工具,例如 Stemmers。 Lemmatizers、停用詞刪除、創建自定義解析器樹等等。 它還包含來自包本身包含的主要來源的語料庫數據。

詞幹提取技術有許多實現,但最流行和最古老的一種是 Porter Stemmer 算法。 雪球詞幹分析器也用於一些項目。 為了更清楚地理解詞幹提取和詞形還原之間的區別,請查看下面的代碼及其輸出:

導入 nltk

從 nltk.stem 導入 PorterStemmer

從 nltk.stem 導入 WordNetLemmatizer

word_stemmer = PorterStemmer()

lemmatizer = WordNetLemmatizer()

打印(lemmatizer.lemmatize('蒼蠅'))

打印(word_stemmer.stem('蒼蠅'))

輸出:

第一個輸出來自詞形還原器,第二個來自詞幹分析器。 您可以看到不同之處在於,詞形還原器將根詞作為輸出,而詞幹分析器只是從末尾修剪了單詞。

學習世界頂尖大學的數據科學課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

另請閱讀:機器學習項目理念

結論

NLP 每天都在增長,新的方法隨著時間的推移而發展。 他們中的大多數人專注於如何以最小的損失有效地從文本數據中提取正確的信息並消除所有噪聲。 這兩種技術都被廣泛使用。 重要的是分析是在乾淨的數據上進行的。

用於聚類文檔的兩種 AI 算法是什麼?

分層聚類和非分層聚類是用於聚類文本​​的兩種人工智能算法。 層次聚類算法根據一組規則對文檔進行劃分和聚合。 然後將層次結構的成對的數據項集群連接在一起。 雖然這種技術易於閱讀和理解,但它可能不如非分層聚類有效。 當數據中有很多缺陷時,聚類可能會很困難。 非分層集群需要合併和打破現有集群以創建新集群。 這是一種相對更快、更可靠、更穩定的聚類方法。

詞形還原是情感分析的首選嗎?

詞形還原和詞乾化都是非常有效的程序。 然而,當轉換成詞根形式時,詞形還原總是產生字典含義術語。 當術語的含義對研究不重要時,建議使用詞幹提取。 當單詞的含義對分析至關重要時,建議進行詞形還原。 因此,如果您必須選擇一種方法進行情感分析,則可以採用詞形還原法。

詞幹提取和詞形還原如何用於文檔聚類?

文檔聚類,也稱為文本聚類,是一種通過將文本組合在一起來分析文本的方法。 它的應用範圍從自動文檔排列到主題提取,甚至是快速信息檢索。 詞幹提取和詞形還原用於減少傳達相同信息所需的標記數量,從而改進整體技術。 在這個預處理步驟之後,通過測量每個標記的頻率來計算特徵,然後是最有效的聚類方法。