榆林市网站建设_网站建设公司_jQuery_seo优化
2026/1/16 7:20:37 网站建设 项目流程

目录

    • 一、NLP 基础
    • 二、文本预处理
      • 2.1、文本清洗
      • 2.2、分词
      • 2.3、去除停用词
      • 2.4、词干提取
      • 2.5、词形还原
      • 2.6、词性标注
      • 2.7、命名实体识别
    • 三、特征提取
      • 3.1、词袋模型(Bag of Words,BoW)
      • 3.2、词嵌入(Word Embeddings)
    • 四、模型训练
      • 4.1、评估与应用

本文来源:极客时间vip课程笔记

注:后续技术类文章会同步到我的公众号里,搜索公众号小志的博客感兴趣的读友可以去找来看看。

一、NLP 基础

  • NLP是人工智能的一个重要分支,研究的目的是让计算机能够理解、解释和生成人类语言。NLP 结合了计算机、人工智能和语言学等多个学科的方法,尽可能缩小人类语言与计算机理解之间的差距。一般来说,包含四个步骤

    1、文本预处理:将原始文本转换成易于机器理解的格式。包括分词(将文本分解成单词或短语)、去除停用词、词干提取、词性标注等。

    2、特征提取:从处理过的文本中提取特征,以便用于机器学习模型。这通常涉及将文本转换为数值形式,如词袋模型或词嵌入 Word Embedding,也就是向量化。

    3、模型训练:使用提取的特征和相应的机器学习算法来训练模型,可能是分类器、回归模型、聚类算法等。

    4、评估与应用:评估模型的性能,并在实际应用中使用模型来解释、生成或翻译文本。

  • NLP 的应用场景非常广泛,搜索引擎、语音转换、文本翻译、系统问答等几乎覆盖我们生活的方方面面。下面我们一步一步去学习一下相关的技术,首先就是文本预处理。

二、文本预处理

  • 文本预处理是 NLP 中的一项基础且关键的步骤,目的是将原始文本转换成易于机器理解和处理的格式。这一步骤通常涉及多个不同的任务,具体包括以下几个步骤。

2.1、文本清洗

  • 文本清洗主要包括去除噪声及标准化文本等。去除噪声是指清除文本中对分析无关紧要的部分,比如 HTML 标签、标点符号、特殊字符等。你可以参考我给出的示例代码。

    importredefremove_noise(text):# 去除HTML标签 text=re.sub(r'<.*?>','',text)# 去除标点符号和特殊字符 text=re.sub(r'[^\w\s]','',text)returntext text="<p>Hello, World! Here's a <a href='https://example.com'>link</a>.</p>"clean_text=remove_noise(text)print(clean_text)# 全部标准化成小写 tokens_normalized=[token.lower()fortoken in clean_text]print(tokens_normalized)
  • 输出:

    HelloWorldHeresa link['h','e','l','l','o',' ','w','o','r','l','d',' ','h','e','r','e','s',' ','a',' ','l','i','n','k']

2.2、分词

  • 将文本分解成词汇、句子等。

    from nltk.tokenizeimportword_tokenizetext="Natural language processing (NLP) is a field of computer science."tokens=word_tokenize(text)print(tokens)
  • 输出:

    ['Natural', 'language', 'processing', '(', 'NLP', ')', 'is', 'a', 'field', 'of', 'computer', 'science', '.']

2.3、去除停用词

  • 停用词是文本中频繁出现但对分析意义不大的词,如 is、and 等。去除它们可以提高处理效率和分析效果,同时还可以使数据集变小。

    from nltk.corpusimportstopwordsimportredefremove_noise(text):# 去除HTML标签 text=re.sub(r'<.*?>','',text)# 去除标点符号和特殊字符 text=re.sub(r'[^\w\s]','',text)returntext #从停用词库取出英文相关的停用词,放到 set 集合中, stop_words=set(stopwords.words('english'))print(stop_words)text="<p>Hello, World! Here's a <a href='https://example.com'>link</a>.</p>"clean_text=remove_noise(text)print(clean_text)tokens_normalized=[token.lower()fortoken in clean_text]print(tokens_normalized)filtered_tokens=[wordforword in tokens_normalizedifnot word in stop_words]print(filtered_tokens)
  • 输出:

    {"you'd",'just','shouldn', 'here', 'as', 'mightn',"wasn't",'him','have','you','an','not','mustn','ma','o','myself','what','was',"shouldn't",'during','wouldn','no',"mightn't",

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询