
一、說明
????????歡迎閱讀此文,NLP 愛好者!當(dāng)我們繼續(xù)探索自然語言處理 (NLP) 的廣闊前景時,我們已經(jīng)在最初的博客中探討了它的歷史、應(yīng)用和挑戰(zhàn)。今天,我們更深入地探討 NLP 的核心——數(shù)據(jù)預(yù)處理的復(fù)雜世界。
????????這篇文章是我們的“完整 NLP 指南:文本到上下文”博客系列的第二部分。我們的重點(diǎn)非常明確:我們深入研究為 NLP 任務(wù)奠定基礎(chǔ)所必需的關(guān)鍵數(shù)據(jù)預(yù)處理步驟。雖然 NLP 的進(jìn)步使得能夠開發(fā)能夠感知和理解人類語言的應(yīng)用程序,但仍然存在一個關(guān)鍵的先決條件——以機(jī)器可以理解的格式準(zhǔn)備并向機(jī)器提供數(shù)據(jù)。這個過程涉及一系列多樣化且重要的預(yù)處理步驟。
????????以下是本次深入研究中的預(yù)期內(nèi)容:
- 標(biāo)記化和文本清理:探索將文本分解為有意義的單元并確保原始且易于理解的語言的藝術(shù)。這包括處理標(biāo)點(diǎn)符號和細(xì)化文本以進(jìn)行進(jìn)一步處理。
- 停用詞刪除:了解為什么刪除某些單詞對于關(guān)注數(shù)據(jù)集中更有意義的內(nèi)容至關(guān)重要。
- 詞干提取和詞形還原:深入研究文本規(guī)范化技術(shù),了解何時以及如何使用詞干提取或詞形還原將單詞簡化為詞根形式。
- 詞性標(biāo)注 (POS):探索為每個單詞分配語法類別如何有助于更深入地理解句子結(jié)構(gòu)和上下文。
- 命名實(shí)體識別 (NER):通過識別和分類文本中的實(shí)體,揭示 NER 在增強(qiáng)語言理解方面的作用。
????????其中每個步驟都是將原始文本翻譯成機(jī)器可以理解的語言的關(guān)鍵構(gòu)建塊,為更高級的 NLP 任務(wù)奠定了基礎(chǔ)。
????????在本次探索結(jié)束時,您不僅會牢牢掌握這些基本的預(yù)處理步驟,而且還會為我們旅程的下一階段——探索高級文本表示技術(shù)做好準(zhǔn)備。讓我們深入了解 NLP 數(shù)據(jù)預(yù)處理的要點(diǎn)并增強(qiáng)自己的能力。快樂編碼!
二. 分詞和文本清理
????????NLP 的核心是將文本分解為有意義的單元的藝術(shù)。標(biāo)記化是將文本分割成單詞、短語甚至句子(標(biāo)記)的過程。這是為進(jìn)一步分析奠定基礎(chǔ)的第一步。與文本清理(我們刪除不必要的字符、數(shù)字和符號)相結(jié)合,標(biāo)記化可確保我們使用原始的、可理解的語言單元。
#!pip install nltk
# Example Tokenization and Text Cleaning
text = "NLP is amazing! Let's explore its wonders."
tokens = nltk.word_tokenize(text)
cleaned_tokens = [word.lower() for word in tokens if word.isalpha()]
print(cleaned_tokens)
['nlp', 'is', 'amazing', 'let', 'explore', 'its', 'wonders']
三、?停用詞刪除:
????????并非所有單詞對句子的含義都有同等的貢獻(xiàn)。像“the”或“and”這樣的停用詞通常會被過濾掉,以專注于更有意義的內(nèi)容。
# Example Stop Words
from nltk.corpus import stopwords
stop_words = set(stopwords.words("english"))
filtered_sentence = [word for word in cleaned_tokens if word not in stop_words]
print(filtered_sentence)
['nlp', 'amazing', 'let', 'explore', 'wonders']
四、詞干提取和詞形還原
????????詞干提取和詞形還原都是自然語言處理 (NLP) 中使用的文本規(guī)范化技術(shù),用于將單詞還原為其基本形式或詞根形式。雖然他們的共同目標(biāo)是簡化單詞,但他們在應(yīng)用語言知識方面的運(yùn)作方式有所不同。
????????詞干提?。哼€原為根形式
????????詞干提取涉及切斷單詞的前綴或后綴以獲得其詞根或基本形式,稱為詞干。目的是將具有相似含義的單詞視為相同的單詞。詞干提取是一種基于規(guī)則的方法,并不總是產(chǎn)生有效的單詞,但計算量較小。
????????詞形還原:轉(zhuǎn)換為字典形式
????????另一方面,詞形還原涉及將單詞減少為其基本形式或字典形式,稱為詞條。它考慮了句子中單詞的上下文并應(yīng)用形態(tài)分析。詞形還原會產(chǎn)生有效的單詞,并且與詞干提取相比在語言學(xué)上更具信息性。
????????何時使用詞干提取與詞形還原:
????????詞干提?。?/span>
- 優(yōu)點(diǎn):簡單且計算成本較低。
- 缺點(diǎn):可能并不總是產(chǎn)生有效的單詞。
????????詞形還原:
- 優(yōu)點(diǎn):產(chǎn)生有效的單詞;考慮語言背景。
- 缺點(diǎn):比詞干提取的計算強(qiáng)度更大。
????????在詞干提取和詞形還原之間進(jìn)行選擇:
Day 4: Stemming and Lemmatization - Nomidl
????????詞干提取和詞形還原之間的選擇取決于 NLP 任務(wù)的具體要求。如果您需要一種快速而直接的文本分析方法,詞干提取可能就足夠了。然而,如果語言準(zhǔn)確性至關(guān)重要,特別是在信息檢索或問答等任務(wù)中,則通常首選詞形還原。
????????在實(shí)踐中,選擇通常取決于基于 NLP 應(yīng)用程序的具體特征的計算效率和語言準(zhǔn)確性之間的權(quán)衡。
# Example Stemming, and Lemmatization
from nltk.stem import PorterStemmer, WordNetLemmatizer
stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()
stemmed_words = [stemmer.stem(word) for word in filtered_sentence]
lemmatized_words = [lemmatizer.lemmatize(word) for word in filtered_sentence]
print(stemmed_words)
print(lemmatized_words)
['nlp', 'amaz', 'let', 'explor', 'wonder']
['nlp', 'amazing', 'let', 'explore', 'wonder']
五、詞性標(biāo)注:
????????詞性標(biāo)注(詞性標(biāo)注)是一種自然語言處理任務(wù),其目標(biāo)是為給定文本中的每個單詞分配語法類別(例如名詞、動詞、形容詞等)。這可以更深入地理解句子中每個單詞的結(jié)構(gòu)和功能。
Penn Treebank POS 標(biāo)簽集是一種廣泛使用的標(biāo)準(zhǔn),用于在英語文本中表示這些詞性標(biāo)簽。
# Example Part-of-Speech Tagging
from nltk import pos_tag
pos_tags = nltk.pos_tag(filtered_sentence)
print(pos_tags)
[('nlp', 'RB'), ('amazing', 'JJ'), ('let', 'NN'), ('explore', 'NN'), ('wonders', 'NNS')]
六、命名實(shí)體識別(NER):
????????NER 通過對給定文本中的名稱、位置、組織等實(shí)體進(jìn)行識別和分類,將語言理解提升到一個新的水平。這對于從非結(jié)構(gòu)化數(shù)據(jù)中提取有意義的信息至關(guān)重要。
# Example Named Entity Recognition (NER)
from nltk import ne_chunk
ner_tags = ne_chunk(pos_tags)
print(ner_tags)
(S nlp/RB amazing/JJ let/NN explore/NN wonders/NNS)
七、NLP 預(yù)處理步驟的實(shí)際應(yīng)用
????????雖然我們深入研究了 NLP 預(yù)處理的技術(shù)方面,但了解如何在現(xiàn)實(shí)場景中應(yīng)用這些步驟也同樣重要。讓我們探討一些值得注意的例子:
????????社交媒體情感分析中的標(biāo)記化和文本清理
????????在社交媒體情感分析中,標(biāo)記化和文本清理至關(guān)重要。例如,在分析推文以評估公眾對新產(chǎn)品的看法時,標(biāo)記化有助于將推文分解為單個單詞或短語。文本清理用于消除社交媒體文本中常見的話題標(biāo)簽、提及和 URL 等噪音。
import re
def clean_tweet(tweet):
tweet = re.sub(r'@\w+', '', tweet) # Remove mentions
tweet = re.sub(r'#\w+', '', tweet) # Remove hashtags
tweet = re.sub(r'http\S+', '', tweet) # Remove URLs
return tweet
tweet = "Loving the new #iPhone! Best phone ever! @Apple"
clean_tweet(tweet)
'Loving the new ! Best phone ever! '
????????搜索引擎中的停用詞刪除
????????搜索引擎廣泛使用停用詞刪除。在處理搜索查詢時,通常會刪除“the”、“is”和“in”等常用詞,以重點(diǎn)關(guān)注更有可能與搜索結(jié)果相關(guān)的關(guān)鍵字。
????????文本分類中的詞干提取和詞形還原
????????新聞機(jī)構(gòu)和內(nèi)容聚合商經(jīng)常使用詞干提取和詞形還原進(jìn)行文本分類。通過將單詞簡化為基本形式或詞根形式,算法可以更輕松地將新聞文章分類為“體育”、“政治”或“娛樂”等主題。
????????語音助手中的詞性標(biāo)記
????????亞馬遜的 Alexa 或蘋果的 Siri 等語音助手使用詞性標(biāo)記來提高語音識別和自然語言理解。通過確定單詞的語法上下文,這些助手可以更準(zhǔn)確地解釋用戶請求。
????????客戶支持自動化中的命名實(shí)體識別 (NER)
????????NER 廣泛用于客戶支持聊天機(jī)器人。通過識別和分類產(chǎn)品名稱、位置或用戶問題等實(shí)體,聊天機(jī)器人可以對客戶的詢問提供更有效和量身定制的響應(yīng)。
????????這些例子凸顯了 NLP 預(yù)處理步驟在各個行業(yè)中的實(shí)際意義,使抽象概念更加具體、更容易掌握。了解這些應(yīng)用程序不僅可以提供背景信息,還可以激發(fā)未來項目的想法。
八、結(jié)論
????????在本文中,我們仔細(xì)瀏覽了增強(qiáng) NLP 任務(wù)文本所必需的各種數(shù)據(jù)預(yù)處理步驟。從最初通過標(biāo)記化和清理對文本進(jìn)行分解,到更高級的詞干提取、詞形還原、詞性標(biāo)記和命名實(shí)體識別過程,我們?yōu)橛行Ю斫夂吞幚碚Z言數(shù)據(jù)奠定了堅實(shí)的基礎(chǔ)。
????????然而,我們的旅程并沒有就此結(jié)束。處理后的文本雖然現(xiàn)在更加結(jié)構(gòu)化和信息豐富,但仍需要進(jìn)一步轉(zhuǎn)換才能完全被機(jī)器理解。在下一部分中,我們將深入研究文本表示技術(shù)。這些技術(shù),包括詞袋模型、TF-IDF(詞頻-逆文檔頻率)以及詞嵌入的介紹,對于將文本轉(zhuǎn)換為機(jī)器不僅可以理解而且可以用于各種用途的格式至關(guān)重要。復(fù)雜的 NLP 任務(wù)。文章來源:http://www.zghlxwxcb.cn/news/detail-800697.html
????????因此,請繼續(xù)關(guān)注我們,我們將繼續(xù)揭開 NLP 的復(fù)雜性。我們的探索將為您提供將原始文本轉(zhuǎn)換為有意義的數(shù)據(jù)的知識,為高級分析和應(yīng)用做好準(zhǔn)備。祝您編碼愉快,我們下一篇文章再見!文章來源地址http://www.zghlxwxcb.cn/news/detail-800697.html
到了這里,關(guān)于【文本到上下文 #2】:NLP 的數(shù)據(jù)預(yù)處理步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!