②机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)

简介: 机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)

代码实操

import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
text = ["今天 上 NLP 课程",  "今天 的 课程 有 意思" ,  "数据 课程 也有 意思"]
vocabulary = ["今天", "上" , "NLP", "课程", "的", "有", "意思",  "数据", "也"]
contv = CountVectorizer(vocabulary=vocabulary, stop_words=[], min_df=0, token_pattern='(?u)\\b\\w*\\w*\\b', lowercase=False) # 实例化
contv1 = contv.fit_transform(text)  # 训练-传入数据
print(contv1)   #调取结果
print(contv1.toarray())
print(contv.vocabulary_)




{'今天': 0, '上': 1, 'NLP': 2, '课程': 3, '的': 4, '有': 5, '意思': 6, '数据': 7, '也': 8}
  (0, 0)  1
  (0, 1)  1
  (0, 2)  1
  (0, 3)  1
  (1, 0)  1
  (1, 3)  1
  (1, 4)  1
  (1, 5)  1
  (1, 6)  1
  (2, 3)  1
  (2, 6)  1
  (2, 7)  1
[[1 1 1 1 0 0 0 0 0]
 [1 0 0 1 1 1 1 0 0]
 [0 0 0 1 0 0 1 1 0]]



一般要设置的参数是:ngram_range,max_df,min_df,max_features等,具体情况具体分析


这里对参数进行一个详细的说明:



Word2Vec

它是一种语言模型,使用向量表示单词,向量空间表示句子。在将单词转化为向量之后,句子也就可以被表示成一个矩阵,这样就把现实中的语言成功转化成了数字。


它是一种词嵌入模型,简单来说,就是可以通过训练词嵌入模型将文本由原来的高维表示形式转化为低维表示形式,每一个维度代表着当前单词与其它单词在该维度下的不同,多个维度的数共同来表示这个单词。


word2vec是基于one-hot词向量进行的转化,one-hot是把每一个词都表示成(0,0,1,…,0,0,…)的形式,不仅在文字量巨大时会造成数据灾难,而且在多个词进行比较时效果一般。

image.png


image.png


Word2vec 的优缺点


优点:


由于 Word2vec 会考虑上下文,跟之前的 Embedding 方法相比,效果要更好(但不如 18 年之后的方法)

比之前的 Embedding方 法维度更少,所以速度更快

通用性很强,可以用在各种 NLP 任务中


缺点:


由于词和向量是一对一的关系,所以多义词的问题无法解决。

Word2vec 是一种静态的方式,虽然通用性强,但是无法针对特定任务做动态优化


word2vec更多学到的是具备相似上下文的词,学习的向量和真正语义还有差距。比如 “他的技术水平很好”,“他的技术水平很差”相似度也很高。


所以在使用情感分析的时候,一般不是很推荐word2vec进行分析和研究


代码案例

from gensim.models import Word2Vec
word2vec_model = Word2Vec(cutWords_list, 
                          vector_size=100,  # 向量长度
                          epochs=10,        # 训练批次
                          min_count=20      # 忽略词频数少于20的词
                         )



调用Word2Vec模型对象的wv.most_similar方法查看与摄影含义最相近的词。


  • wv.most_similar方法有2个参数,第1个参数是要搜索的词,第2个关键字参数topn数据类型为正整数,是指需要列出多少个最相关的词汇,默认为10,即列出10个最相关的词汇。
  • wv.most_similar方法返回值的数据类型为列表,列表中的每个元素的数据类型为元组,元组有2个元素,第1个元素为相关词汇,第2个元素为相关程度,数据类型为浮点型。


image.png


有需要可以点击此处下载

image.png


总结

如何将文本转换为数值矩阵,目前在自然语言处理当中有很多的方法,构建词向量,每一种的方法都有优缺点,我们在使用这类方法的时候,需要结合自己的实际情况进行比对,最终才能得到最佳的模型。


image.png

相关文章
|
25天前
|
机器学习/深度学习 数据挖掘 数据处理
构建高效机器学习模型的五大策略
【5月更文挑战第31天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文将深入探讨如何构建高效的机器学习模型,涵盖数据处理、特征工程、模型选择、调参技巧及模型评估五个关键策略。不同于常规摘要的形式,我们将通过具体实例和案例分析,提供一套实操性强的方法论,帮助读者在实际工作中提升模型性能,解决业务问题。
|
25天前
|
机器学习/深度学习 运维 Cloud Native
构建未来:云原生架构在企业数字化转型中的关键作用构建高效机器学习模型的五大策略
【5月更文挑战第31天】 随着企业数字化进程的加速,传统的IT架构日益显示出其局限性。本文将探讨云原生架构如何成为推动企业敏捷性、可扩展性和创新能力的核心力量。通过深入分析云原生技术的基本原理及其在业务连续性、资源优化和跨云协作方面的应用,揭示了其在实现高效、灵活的企业IT环境中所扮演的角色。
|
26天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的五大技巧
【5月更文挑战第30天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文将深入探讨如何优化机器学习模型的性能和效率。我们将摒弃传统的摘要形式,直接切入主题,通过五个关键的技巧来提升模型质量:数据预处理的重要性、特征选择的艺术、模型选择与调参的策略、交叉验证的必要性,以及模型部署后的监控和维护。这些技巧不仅适用于初学者,也对有经验的数据科学家具有参考价值。接下来,让我们深入了解每个技巧的细节,并探索它们如何共同作用于构建一个健壮、高效的机器学习系统。
|
6天前
|
机器学习/深度学习 人工智能 Java
【Sping Boot与机器学习融合:构建赋能AI的微服务应用实战】
【Sping Boot与机器学习融合:构建赋能AI的微服务应用实战】
10 1
|
18天前
|
机器学习/深度学习 数据采集 运维
构建基于机器学习的异常检测系统
【6月更文挑战第7天】构建基于机器学习的异常检测系统,通过收集和预处理数据,进行特征提取和选择,然后选择SVM、随机森林等算法训练模型。评估指标包括准确率、召回率、F1值,旨在识别安全威胁、系统故障等异常,保障系统稳定。未来将持续优化性能并探索新技术。
|
23天前
|
机器学习/深度学习 算法 数据采集
构建一个基于机器学习的交易算法
【6月更文挑战第2天】本文探讨了如何构建基于机器学习的交易算法,关键步骤包括数据收集与预处理、特征选择、模型选择与训练、评估与优化,以及回测与实盘交易。挑战涉及数据质量、过拟合与欠拟合、市场变化与模型适应性。通过结合金融知识与机器学习技术,可创建智能交易系统,但需不断更新优化以应对市场动态。
|
21天前
|
机器学习/深度学习 数据采集 算法
基于机器学习的推荐算法构建技术详解
【6月更文挑战第4天】本文详述了构建基于机器学习的推荐算法,特别是协同过滤方法。从用户和物品相似性的角度,解释了用户-用户和物品-物品协同过滤的工作原理。涵盖了数据准备、预处理、特征工程、模型训练、评估优化及结果展示的构建流程。推荐算法在电商、视频和音乐平台广泛应用,未来将受益于大数据和AI技术的进步,提供更智能的推荐服务。
|
25天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型:从数据预处理到模型优化
【5月更文挑战第31天】 在当今数据驱动的时代,构建一个高效的机器学习(ML)模型是解决复杂问题的关键。本文将引导读者通过一系列细致的步骤来搭建健壮且精确的ML模型。我们将重点讨论数据预处理的策略、选择合适的算法、模型训练的技巧以及性能优化的方法。通过实例和代码示例,本技术分享旨在为从业者提供实用的指导,帮助他们在面对实际问题时能够灵活应用机器学习技术,并达到提高预测准确率和模型泛化能力的目的。
|
26天前
|
机器学习/深度学习 数据采集 人工智能
构建基于AI的自然语言处理系统
【5月更文挑战第30天】本文探讨了构建基于AI的自然语言处理系统的方法,涉及需求分析、数据准备、模型选择、训练与评估、系统部署和持续优化等关键步骤。强调了数据质量和数量对模型性能的影响,选择了深度学习模型如RNN、LSTM和Transformer,并指出系统优化是持续的过程,旨在提升性能和满足用户需求,为AI领域贡献力量。
|
26天前
|
机器学习/深度学习 人工智能 算法
构建未来的智能:量子机器学习在数据处理中的突破
【5月更文挑战第30天】 随着人工智能的不断进步,量子机器学习作为一种新兴技术范式,正在推动数据处理领域的革新。本文将深入探讨量子计算与机器学习相结合的可能性、挑战以及未来前景。通过分析量子算法对大数据集处理能力的增强,以及量子机器学习在模式识别、优化问题和加密技术中的应用,揭示了量子技术如何为传统机器学习领域带来翻天覆地的变化。文章还将讨论目前面临的技术障碍和潜在的解决方案,为读者描绘一个即将到来的智能化未来图景。

热门文章

最新文章