最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用spaCy的NLP – 如何開始自然語言處理

2023-07-02 07:17 作者:曉楓Motivation  | 我要投稿

在當今數(shù)據(jù)驅(qū)動的世界中,每天都會生成大量非結(jié)構(gòu)化文本數(shù)據(jù)。為了幫助處理所有這些數(shù)據(jù),自然語言處理 (NLP) 作為一項變革性技術應運而生。

NLP 是人工智能的一個子領域。它專注于使機器能夠理解、解釋和生成人類語言。

在本教程中,我們將探討 NLP 的基本概念,并研究 spaCy 的特定實現(xiàn)。這將展示其徹底改變各個行業(yè)的巨大潛力。

在開始 spaCy 之前,讓我們快速了解一下自然語言處理。

(更|多優(yōu)質(zhì)內(nèi)|容:java567 點 c0m)


什么是自然語言處理?

NLP 涉及語言學、計算機科學和機器學習的交叉領域。其主要目標是彌合人類語言和機器理解之間的差距。

NLP 涵蓋廣泛的任務,包括文本分類、命名實體識別 (NER)、情感分析等。

文本分類

這涉及根據(jù)文本內(nèi)容將文本分類為預定義的類或類別。

這在情感分析、垃圾郵件檢測、主題分類等方面都有應用。

命名實體識別 (NER)

這涉及從文本中識別和提取命名實體,例如名稱、組織、位置和日期。

NER 對于信息提取、問答系統(tǒng)和推薦引擎至關重要。

情感分析

這涉及確定一段文本中表達的情緒或情緒,無論是積極的、消極的還是中性的。

情感分析廣泛用于品牌監(jiān)控、客戶反饋分析和社交媒體監(jiān)控。

自然語言處理的挑戰(zhàn)

盡管 NLP 取得了重大進步,但仍然存在一些挑戰(zhàn):

  1. 人類語言本質(zhì)上是模棱兩可的,這使得機器有時很難準確理解和解釋含義。

  2. 不同的語言、方言、俚語和文化差異增加了 NLP 任務的復雜性,要求模型針對特定語言且具有適應性。

  3. 捕獲上下文信息并理解文本的底層語義仍然是 NLP 算法的重大挑戰(zhàn)。

  4. NLP 模型嚴重依賴訓練數(shù)據(jù),有偏見或低質(zhì)量的數(shù)據(jù)可能會導致有偏見或不準確的預測,從而引發(fā)潛在的道德問題。

什么是spaCy?

在自然語言處理 (NLP) 領域,spaCy 已成為一個強大而高效的庫,徹底改變了開發(fā)人員和研究人員處理文本數(shù)據(jù)的方式。

spaCy 是一個開源 Python 庫,專為詞性標記、命名實體識別、依存解析等 NLP 任務而設計。

它的開發(fā)目標是提供工業(yè)強度的性能,同時仍然易于使用并集成到現(xiàn)有工作流程中。

spaCy 基于最新研究并采用最先進的技術,使其成為初學者和經(jīng)驗豐富的 NLP 從業(yè)者的理想選擇。

spaCy 的主要特點

語言注釋

spaCy 提供了廣泛的預訓練模型,可以快速分析文本并提取各種語言特征。這些功能包括詞性標簽、命名實體、句法依賴、句子邊界等等。

預訓練模型在大型語料庫上進行訓練,具有很高的準確性,使開發(fā)人員能夠?qū)W⒂谄涮囟ǖ?NLP 任務,而不必擔心從頭開始訓練模型。

標記化和句子分割

標記化是 NLP 中的關鍵步驟,它將文本分解為單個單詞或子詞。spaCy 的標記化算法非常高效且特定于語言,可實現(xiàn)準確且可定制的標記化。

spaCy 還可以自動將文本分割成句子,從而可以輕松地在粒度級別上處理文本數(shù)據(jù)。

實體識別

命名實體識別 (NER) 是識別和分類命名實體(例如人員、組織、位置、日期等)的任務。

spaCy 的 NER 功能非常出色,為多種語言提供開箱即用的支持。它允許開發(fā)人員使用自己的標記數(shù)據(jù)訓練自定義 NER 模型,從而實現(xiàn)特定領域的實體識別。

依存分析

依存句法分析涉及通過確定單詞之間的關系來分析句子的語法結(jié)構(gòu)。

spaCy的依存解析基于高效的算法并實現(xiàn)了高精度。它提供了豐富的語法注釋,包括每個詞的詞頭、依存標簽和子樹結(jié)構(gòu)。

這些信息對于信息提取、問答和情感分析等任務非常寶貴。

定制和可擴展性

spaCy 的主要優(yōu)勢之一是其靈活性和可擴展性。開發(fā)人員可以輕松定制和微調(diào) spaCy 的模型,以適應特定領域或提高特定任務的性能。

該庫還提供了一個簡單的 API,用于添加自定義組件,例如新的分詞器、實體識別器或句法解析器,使其成為研究和開發(fā)的多功能工具。

性能和可擴展性

spaCy 以其卓越的性能和可擴展性而聞名。該庫是用 Cython 實現(xiàn)的,Cython 是一種編程語言,可將類似 Python 的代碼編譯為高效的 C/C++ 模塊。這使得 spaCy 能夠極快地處理文本數(shù)據(jù),使其適合大規(guī)模 NLP 應用程序和實時系統(tǒng)。

spaCy 中的命名實體識別示例

讓我們嘗試使用 spaCy 來實現(xiàn) NER。

我將使用 Google Colab。Google Colab 是一項托管的 Jupyter Notebook 服務,無需設置即可使用,并提供對計算資源(包括 GPU 和 TPU)的免費訪問。

如果您愿意,您可以使用 Kaggle 或在您自己的計算機上運行它。由于 spaCy 是一個預先訓練的模型,因此開始時不需要太多的計算能力。

但如果您正在處理機器學習問題,我建議您在計算機上安裝 Anaconda。

導航至colab.research.google點 com并單擊“新建筆記本”按鈕。

Google 協(xié)作控制臺

在標題上,輸入文件的名稱。確保您的文件名以.pynb擴展名結(jié)尾。

更改文件名并創(chuàng)建代碼塊

單擊“+代碼”按鈕創(chuàng)建代碼塊。

默認情況下,Google Colab 預裝了一些機器工具和 Python 庫。因此,我們不必擔心安裝和準備好我們的開發(fā)環(huán)境。

但它不隨spacy庫一起提供。

在代碼塊中運行以下命令來安裝spacy庫。

?!pip install -U spacy

安裝spacy庫的命令

安裝spacy庫

選擇您想要的選項并繼續(xù)。它們之間的主要區(qū)別在于訓練的數(shù)據(jù)量。

  • 小 – en_core_web_sm

  • 中 – en_core_web_md

  • 寬 – en_core_web_lg

  • 變壓器 – en_core_web_trf

我們的下一步是下載其中一個模型。添加代碼塊并從上面的列表中選擇任何代碼塊并運行以下命令。我將下載大模型。

?!python -m spacy download en_core_web_lg

下載預訓練spacy模型的命令

下載預訓練模型

添加代碼塊并運行以下命令來加載模型。

?import spacy
?nlp = spacy.load("en_core_web_lg")

加載spacy模型

好吧。我們都準備好了。

讓我們嘗試從句子中分割實體。添加代碼塊并運行以下代碼塊:

?doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
?
?for ent in doc.ents:
? ? ?print(ent.text, ent.start_char, ent.end_char, ent.label_)

查找并打印給定文本中的實體

在上面的代碼中,我們要求 spaCy 模型從“Apple is考慮以 10 億美元收購英國初創(chuàng)公司”這句話中查找實體。

然后,我們迭代每個實體,并顯示實體、句子中的開始和結(jié)束字符索引以及實體標簽。

您應該看到以下輸出:

命名實體識別示例 1 來自spaCy

上面的輸出描述了“Apple”是一個實體,它出現(xiàn)在給定句子中的索引 0 到索引 5 之間,并且它是一個組織 (ORG)。

如果您對索引感到困惑,請記住它從 0 開始。我們給定輸入文本中的前 5 個字符是“Apple”。所以,它是從0到5。

同樣,它將“英國”視為一個實體,并將其描述為地緣政治實體(GPE)。它將“10 億美元”標記為貨幣 (MONEY) 實體。

這次我們嘗試一個不同的句子。

“印度總理納倫德拉·莫迪在華盛頓特區(qū)會見了美國總統(tǒng)喬·拜登”。

讓我們看看它找到了什么實體。添加代碼塊并運行以下代碼:

?doc = nlp("Prime Minister of India Narendra Modi met US President Joe Biden at Washington DC")
?
?for ent in doc.ents:
? ? ?print(ent.text, ent.start_char, ent.end_char, ent.label_)

從不同的句子中查找實體

命名實體識別示例2來自spaCy

太棒了,不是嗎?

它將“印度”、“美國”和“華盛頓特區(qū)”確定為地緣政治實體 (GPE)。它還將“納倫德拉·莫迪”和“喬·拜登”識別為個人實體 (PERSON)。

嘗試輸入不同的句子并進行嘗試。我相信您會對它識別實體的能力感到驚訝。

結(jié)論

在本教程中,我們通過使用 spaCy 庫的簡單實現(xiàn)了解了 NLP。

自然語言處理在改變我們與機器交互和分析大量文本數(shù)據(jù)的方式方面擁有巨大的潛力。spaCy 因其強大的功能、易用性和卓越的性能而成為許多 NLP 從業(yè)者的首選庫。

(更|多優(yōu)質(zhì)內(nèi)|容:java567 點 c0m)


使用spaCy的NLP – 如何開始自然語言處理的評論 (共 條)

分享到微博請遵守國家法律
新邵县| 昌宁县| 新竹市| 江口县| 分宜县| 南江县| 金山区| 祁东县| 义马市| 武山县| 沛县| 白水县| 长兴县| 石河子市| 宜兰县| 东乌珠穆沁旗| 钟祥市| 凌海市| 玉树县| 通城县| 龙江县| 逊克县| 讷河市| 甘泉县| 永顺县| 灵山县| 额尔古纳市| 镇巴县| 余姚市| 滨海县| 金坛市| 长宁区| 深泽县| 十堰市| 云林县| 新疆| 八宿县| 东乡县| 贞丰县| 涟源市| 政和县|