天津营销网站建设公司哪家好,wordpress 微信 主题制作,黑龙江学校网站建设,网页制作制作公司一、说明 自然语言处理 #xff08;NLP#xff09; 是人工智能 #xff08;AI#xff09; 和计算语言学的一个子领域#xff0c;专注于使计算机能够理解、解释和生成人类语言。它涉及计算机和自然语言之间的交互#xff0c;允许机器以对人类有意义和有用的方式处理、分析… 一、说明 自然语言处理 NLP 是人工智能 AI 和计算语言学的一个子领域专注于使计算机能够理解、解释和生成人类语言。它涉及计算机和自然语言之间的交互允许机器以对人类有意义和有用的方式处理、分析和响应文本或口头数据。 二、重要术语 NLP中使用的一些重要术语如下 公文在NLP中文档是指单个文本单元通常表示为段落句子甚至单个单词。它是 NLP 任务中文本数据的基本构建块。例如在包含客户评论的数据集中每个单独的评论都被视为一个文档。语料库 语料库是为语言模型训练或分析而组装的文档集合。它是所研究语言或领域的代表性样本。例如用于情绪分析的语料库可能包含从各种来源收集的数千条客户评论。词汇语料库的词汇是指整个文档集合中存在的独特单词集。它基本上表示在特定上下文中使用的单词。例如医学文章语料库的词汇可能包括“疾病”、“治疗”和“症状”等词。分割分割是将文本块例如段落分解为单个句子的过程。正确的分割对于各种NLP任务至关重要例如机器翻译或情感分析。例如考虑文本“我喜欢NLP。这太令人着迷了。分割会把它分成两句话“我喜欢NLP”和“它很迷人”。标记化标记化是将句子或文本分解为单个单词或子单词的过程称为标记。每个令牌代表一个有意义的单元它是 NLP 预处理的基本步骤。例如句子“自然语言处理是惊人的”将被标记化为以下标记[“自然”“语言”“处理”“是”“惊人”“”]。停用词停用词是语言中经常出现的常见词对于 NLP 任务没有重要意义或信息。它们通常在预处理过程中被移除以减少噪声并提高计算效率。英语中停用词的例子包括“the”、“and”、“is”等。词干提取词干提取是一种用于通过删除后缀将单词简化为其基本形式或根形式的技术。目标是简化单词以便将同一根词的变体视为相同。但是词干提取可能并不总是产生有意义或有效的单词。例如在词干提取后单词“running”和“runs”都将简化为“run”。词形还原词形还原类似于词干提取但通过将单词简化为其基本形式或字典形式引理更进一步。此过程可确保生成的单词具有有效的含义。例如在词形还原之后“运行”和“运行”都将被词形还原为“运行”。NER 标记命名实体识别 NER 是对文本中特定实体例如人名、地点、组织、日期等进行识别和分类的过程。这些实体通常使用适当的标签进行标记例如“人员”、“位置”、“组织”等。例如在句子“Apple Inc.总部位于库比蒂诺”中NER标记会将“Apple Inc.”标记为组织将“Cupertino”标记为位置。POS 标记词性 POS 标记是为句子中的每个单词分配语法标签的过程指示其句法角色和类别例如名词、动词、形容词等。例如在句子“她吃苹果”中POS标签会将“她”标记为代词将“吃”标记为动词将“苹果”标记为名词。分块分块涉及将句子中的相邻单词分组为有意义的单元例如名词短语或动词短语。这些块表示句法单元可以帮助进一步分析或理解句子的结构。例如在句子“大猫坐在垫子上”中分块会将“大猫”识别为名词短语将“坐在垫子上”标识为动词短语。 三、文本预处理 文本预处理是自然语言处理 NLP 中基本且必不可少的步骤。其主要目的是清理原始文本数据并将其转换为适合分析和预测建模的可呈现形式。以下是一些常见的文本预处理技术 小写是将所有文本转换为小写的过程。这是 NLP 中常见的预处理步骤可确保一致性并避免与区分大小写相关的问题。Python 中小写过程的实现如下 def lowercase_text(text):return text.lower()# Test the function
input_text The Quick Brown Fox JUMPS Over 2 Lazy Dogs.
output_text lowercase_text(input_text)
print(output_text) 在上面的代码中该函数采用输入文本并使用 Python 中可用于字符串的方法将其转换为小写。小写很有用因为它有助于标准化文本数据并将同一单词的不同形式视为相同。例如“Hello”、“hello”和“HELLO”在小写后都会转换为“hello”。这对于文本规范化和通过减少词汇量和以不区分大小写的方式处理单词来提高 NLP 模型的准确性至关重要。lowercase_text()lower() 删除标点符号涉及从文本中删除所有标点符号例如逗号、句点、感叹号。标点符号删除通常作为文本预处理的一部分执行以清理 NLP 任务的数据。 import stringdef remove_punctuations(text):translator str.maketrans(, , string.punctuation)return text.translate(translator)# Test the function
input_text Hello, my name is John! How are you?
output_text remove_punctuations(input_text)
print(output_text) 在上面的代码中我们使用函数从输入文本中删除所有标点符号。该函数使用模块中的常量来获取包含所有标点字符的字符串。然后它使用该方法创建一个转换表并从输入文本中删除标点符号表中的所有字符。remove_punctuations()string.punctuationstringstr.maketrans()translate() 删除特殊字符和数字涉及从文本中删除任何非字母字符例如符号、数字。此步骤对于文本预处理非常有用可以专注于文本内容而不会干扰数字或其他非字母字符。 import redef remove_special_characters_numbers(text):# Regular expression to remove non-alphabetic characters and numbersreturn re.sub(r[^a-zA-Z\s], , text)# Test the function
input_text Hello, my name is Saif Ali and my age is 25! I was born on 1997-01-10.
output_text remove_special_characters_numbers(input_text)
print(output_text) 在上面的代码中我们使用函数从输入文本中删除所有特殊字符和数字。该函数使用正则表达式模块中的方法和正则表达式来匹配任何不是大写或小写字母或空格的字符。然后它将这些字符替换为空字符串有效地将它们从文本中删除。remove_special_characters_numbers()re.sub()rer[^a-zA-Z\s] 在处理从网页或 HTML 文档中提取的文本数据时删除 HTML 标记非常重要。HTML 标记对文本内容没有贡献需要将其删除以进行进一步的文本分析。 import redef remove_html_tags(text):clean_text re.sub(r.*?, , text)return clean_text# Test the function
input_text pHello, bmy name/b is iJohn/i!/p
output_text remove_html_tags(input_text)
print(output_text) 在上面的代码中该函数使用正则表达式 从输入文本中删除所有 HTML 标记。正则表达式匹配以“”开头后跟任何字符 “.*”并以“”结尾的任何模式。这将有效地删除任何 HTML 标记并保留文本内容。remove_html_tags()re.sub()r.*? 在处理来自网页或社交媒体的文本数据时删除 URL 是一个常见的预处理步骤其中 URL 不会向文本分析添加任何有意义的信息。 import redef remove_urls(text):clean_text re.sub(rhttp\S|www\S, , text)return clean_text# Test the function
input_text Check out my LinkedIn account: https://www.linkedin.com/in/imsaifali/
output_text remove_urls(input_text)
print(output_text) 在上面的代码中该函数使用正则表达式 从输入文本中删除任何 URL。正则表达式匹配任何以“http://”或“https://”开头的URLhttp后跟非空格字符或以“www”开头的URL。www 后跟非空格字符。这有效地从文本中删除了任何 URL。remove_urls()re.sub()rhttp\S|www\S\S\S 删除多余空格是一个文本预处理步骤涉及删除文本中单词之间的任何不必要或过多的空格。这可确保文本干净且一致。 import redef remove_extra_spaces(text):clean_text re.sub(r\s, , text)return clean_text.strip()# Test the function
input_text Hello there, how are you?
output_text remove_extra_spaces(input_text)
print(output_text) 在上面的代码中该函数使用正则表达式 删除一个或多个空格字符空格、制表符、换行符的任何序列并将它们替换为单个空格。正则表达式匹配一个或多个空格字符。然后该方法用于删除任何前导空格或尾随空格。remove_extra_spaces()re.sub()r\sstrip() 扩展收缩是将单词的收缩形式例如“不要”“不能”转换为其完整形式例如“不要”“不能”的过程。此步骤对于标准化文本和避免 NLP 任务中的潜在歧义非常有用。 contraction_mapping {aint: is not,arent: are not,cant: cannot,couldnt: could not,didnt: did not,doesnt: does not,dont: do not,hadnt: had not,hasnt: has not,havent: have not,hes: he is,hell: he will,hed: he would,ive: I have,ill: I will,id: I would,im: I am,isnt: is not,its: it is,itll: it will,itd: it would,lets: let us,mightnt: might not,mustnt: must not,shant: shall not,shes: she is,shell: she will,shed: she would,shouldnt: should not,thats: that is,theres: there is,theyre: they are,theyve: they have,theyll: they will,theyd: they would,were: we are,weve: we have,well: we will,wed: we would,werent: were not,whats: what is,wont: will not,wouldnt: would not,youre: you are,youve: you have,youll: you will,youd: you would,isnt: is not,its: it is,thats: that is,theres: there is,heres: here is,whos: who is,whats: what is,wheres: where is,whens: when is,whys: why is,hows: how is,
}def expand_contractions(text):words text.split()expanded_words [contraction_mapping[word.lower()] if word.lower() in contraction_mapping else word for word in words]return .join(expanded_words)# Test the function
input_text I cant believe its already Friday!
output_text expand_contractions(input_text)
print(output_text) 在上面的代码中我们使用函数来扩展输入文本中的收缩。该函数利用包含常见收缩及其完整形式的字典。它将输入文本拆分为单词并检查每个单词小写是否存在于 .如果是这样它将用其完整形式替换合同形式。expand_contractions()contraction_mappingcontraction_mapping 文本更正涉及修复文本数据中的常见拼写错误或其他错误。拼写检查和更正对于提高 NLP 任务的文本数据质量至关重要。 对于文本更正我们将使用库它为拼写检查和更正等文本处理任务提供了方便的界面。确保您已安装并安装。如果没有请使用以下命令安装它们TextBlobtextblobnltk pip install textblob nltk 现在让我们更正文本 from textblob import TextBlobdef correct_text(text):blob TextBlob(text)corrected_text blob.correct()return str(corrected_text)# Test the function
input_text I am lerning NLP with Pyhton.
output_text correct_text(input_text)
print(output_text) 在上面的代码中我们使用函数来更正输入文本。该函数使用库中的类从输入文本创建对象。然后将该方法应用于对象该对象会自动执行拼写更正和其他文本更正。correct_text()TextBlobtextblobTextBlobcorrect()TextBlob 标记化是将文本分解为单个单词或标记的过程。这是 NLP 中必不可少的预处理步骤为进一步分析准备文本。我们将使用该库它提供了各种标记化方法。确保您已安装。如果没有请使用以下命令安装它nltknltk pip install nltk 现在让我们执行标记化 import nltk
nltk.download(punkt)
from nltk.tokenize import word_tokenizedef tokenize_text(text):return word_tokenize(text)# Test the function
input_text The quick brown fox jumps over the lazy dog.
output_tokens tokenize_text(input_text)
print(output_tokens) 在上面的代码中我们使用函数来标记输入文本。该函数利用模块中的方法将文本拆分为单个单词标记。tokenize_text()word_tokenize()nltk.tokenize 停用词删除是一个文本预处理步骤其中从文本中删除语义含义很少或没有语义的常用词称为停用词以减少干扰并专注于更有意义的单词。对于停用词删除我们将使用该库该库提供了各种语言的常见停用词列表。确保您已安装。如果没有请使用以下命令安装它nltknltk pip install nltk 现在让我们执行停用词删除 import nltk
nltk.download(punkt)
nltk.download(stopwords)
from nltk.corpus import stopwords
stop_words set(stopwords.words(english))def remove_stopwords(text):words text.split()filtered_words [word for word in words if word.lower() not in stop_words]return .join(filtered_words)# Test the function
input_text The quick brown fox jumps over the lazy dog.
output_text remove_stopwords(input_text)
print(output_text) 在上面的代码中我们使用函数从输入文本中删除停用词。该函数首先将文本拆分为单个单词然后过滤掉从库中的语料库获取的英语停用词集中存在的单词。remove_stopwords()stopwordsnltk 词干提取是一种文本预处理技术旨在通过删除后缀将单词简化为其基本形式或根形式。这个过程有助于减少词汇量并将同一单词的不同形式视为相同。对于词干分析我们将使用该库该库提供各种词干分析器包括波特词干分析器。确保您已安装。如果没有请使用以下命令安装它nltknltk pip install nltk 现在让我们执行词干提取 import nltk
nltk.download(punkt)
from nltk.stem import PorterStemmerdef perform_stemming(text):stemmer PorterStemmer()words text.split()stemmed_words [stemmer.stem(word) for word in words]return .join(stemmed_words)# Test the function
input_text jumps jumping jumped
output_text perform_stemming(input_text)
print(output_text) 在上面的代码中我们使用函数将词干提取应用于输入文本。该函数利用了来自模块这是一种广泛使用的词干提取算法。它将输入文本拆分为单个单词对每个单词应用词干提取然后将词干词干连接回单个字符串。perform_stemming()PorterStemmernltk.stem 词形还原是一种文本预处理技术它使用词汇和形态分析将单词简化为其基本形式或根形式引理。与词干提取不同词形还原可确保生成的单词是语言中的有效单词。对于词形还原我们将使用库它提供了一个 WordNet 词形还原器。确保您已安装。如果没有请使用以下命令安装它nltknltk pip install nltk 现在让我们执行词形还原 import nltk
nltk.download(punkt)
nltk.download(wordnet)
from nltk.stem import WordNetLemmatizerdef perform_lemmatization(text):lemmatizer WordNetLemmatizer()words text.split()lemmatized_words [lemmatizer.lemmatize(word) for word in words]return .join(lemmatized_words)# Test the function
input_text jumps jumping jumped
output_text perform_lemmatization(input_text)
print(output_text) 在上面的代码中我们使用函数将词形还原应用于输入文本。该函数利用来自模块该模块基于WordNet词汇数据库。它将输入文本拆分为单个单词对每个单词应用词形还原然后将词形还原的单词连接回单个字符串。perform_lemmatization()WordNetLemmatizernltk.stem 四、结论 文本预处理是自然语言处理 NLP 中的关键步骤涉及将原始文本数据转换为适合分析和建模的干净且规范化的格式。基本技术包括小写、标记化、删除特殊字符和数字、删除停用词、词干提取、词形还原、删除 HTML 标记、删除 URL、扩展收缩和使用 TextBlob 等工具进行文本更正。 通过采用这些文本预处理技术研究人员和从业者可以提高NLP任务的有效性例如情感分析信息检索主题建模和文本分类。特定预处理步骤的选择可能会有所不同具体取决于数据的性质和手头 NLP 应用程序的要求。高效的文本预处理在从文本数据中获得准确而有意义的见解方面起着至关重要的作用。 赛义夫·阿里