自然語言處理簡介

2021-09-02 02:14:04 字數 2056 閱讀 7914

什麼是自然語言處理(natural language processing, nlp)

nlp是一項極具挑戰性的研究,因為詞語和語義具有高度複雜的非線性關係,而將這些資訊轉換為魯棒的數值表示非常困難。並且,每種語言都有自己的語法和詞彙。 因此,處理文字資料涉及各種複雜的任務,例如文字解析(例如,標記化tokenization和詞幹化stemming)、形態分析、詞義消歧,以及理解語言的基礎語法結構。

自然語言處理相關任務

如下圖所示,可以把nlp不同任務按多層級分類。在第一級,分類為分析(分析現有文字)和生成(生產新文字)任務。然後分析類可以進一步分為語法(syntactic,語言結構為基礎的任務)、語義(semantic,語義為基礎的任務)、以及其他(pragmatic,很難解決的開放問題)。

傳統的自然語言處理方法

在deep learning深度學習出現之前,傳統的自然語言處理方法如下圖所示。

解決nlp任務的傳統方法涉及一組不同的子任務。 首先,需要對文字語料進行預處理,重點是減少詞彙量和干擾,例如,去掉標點符號和停止詞,以獲取所需的重要語言資訊。

接下來,就是一系列特徵工程步驟。 特徵工程的主要目標是使演算法的學習更容易。 這些特徵通常是手工設計的,並且偏向於人類對語言的理解。 特徵工程對於經典nlp演算法非常重要,因此,效能最佳的系統通常具有最佳的特徵工程。 此外,特徵工程階段可以使用外部資源(如wordnet(詞彙資料庫))來開發更好的特性。

接下來,學習演算法使用所獲得的特徵和可選的外部資源進行訓練,以期在給定任務中表現良好。 例如,對於文字摘要任務,同義詞庫就是很好的外部資源。最後,訓練好的模型就能對新輸入文字進行**,輸出**標籤。

傳統nlp方法的缺點:

自然語言處理的深度學習方法

我認為可以安全地說深度學習徹底改變了機器學習,特別是在計算機視覺,語音識別,當然還有nlp等方面。 深度模型在機器學習的許多領域創造了一系列正規化轉換,因為深層模型從原始資料中學習了豐富的特徵,而不是使用有限的人工設計特徵。這使得令人討厭且昂貴的特徵工程被淘汰。 有了這個,深層模型使傳統工作流程更有效,因為深層模型同時執行特徵學習和任務學習。 此外,由於深層模型中的大量引數(即權重),它可以包含比人類設計的更多的特徵。 然而,由於模型的可解釋性差,深度模型被認為是黑盒子。 例如,理解深度模型對於給定問題所學習的「如何」和「什麼」特徵仍然是乙個懸而未決的問題。

深度學習和nlp的當前發展

自2023年初開始以來,出現了許多不同的深度模型。即使它們有相似之處,例如所有這些模型都使用輸入和引數的非線性變換,細節也會有很大差異。 例如,卷積神經網路(cnn)可以原樣從二維資料(例如,rgb影象)中學習,而多層感知器模型需要將輸入解包為一維向量,從而導致重要的空間資訊丟失。

處理文字時,作為對文字最直觀的解釋之一是將其視為一系列字元,學習模型應該能夠進行時間序列建模,因此需要記憶過去。要理解這一點,請考慮語言建模任務; 單詞cat的下乙個單詞應該與單詞climb的下乙個單詞不同。包含該能力的一種流行的模型被稱為遞迴神經網路(rnn)。

應該注意,記憶不是學習模型固有的微不足道的操作。相反,應該仔細設計持久記憶的方法。此外,術語「記憶體」不應與僅檢視當前輸入的非順序深度網路的學習權重相混淆,其中順序模型(例如,rnn)將同時檢視學習權重和前乙個元素,**下乙個輸出的序列。

rnn的乙個突出缺點是它們不能記住超過幾個(大約7個)時間步長,因此缺乏長期記憶。 長短期記憶(lstm)網路是封裝長期記憶的rnn的擴充套件。 因此,如今lstm通常優於標準rnn。

總之,如下圖所示,我們可以將深度網路主要分為兩類:非連續模型,一次只處理單個輸入用於訓練和**(例如,影象分類)和處理輸入序列的任意長度的順序模型(例如,單個單詞是單個輸入的文字生成)。然後我們可以將非順序(也稱為前饋)模型分類為深(大約少於20層)和非常深的網路(可以大於數百層)。 順序模型分為短期記憶模型(例如,rnn)和長期記憶模型。

自然語言處理

自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...

自然語言處理

前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...

自然語言處理

一 字串操作 去空格及特殊符號 s hello,world 預設把左右空格去掉 print s.strip print s.lstrip hello,print s.rstrip 查詢字元 0 為未找到 sstr1 strchr sstr2 tr 找到返回目標子串開始下標 npos sstr1.in...