当前位置: 首页 > news >正文

不用代码做网站电子商务网站建设教学计划

不用代码做网站,电子商务网站建设教学计划,南昌百度搜索排名优化,西安网站建设专业这段代码使用了 scikit-learn 库中的CountVectorizer类,目的是将文本数据转换为数值特征(词袋模型),以便用于机器学习算法。让我逐步解释:导入库:from sklearn.feature_extraction.text import CountVector…

这段代码使用了 scikit-learn 库中的CountVectorizer类,目的是将文本数据转换为数值特征(词袋模型),以便用于机器学习算法。让我逐步解释:

  1. 导入库

    from sklearn.feature_extraction.text import CountVectorizer
    

    导入了 scikit-learn 的CountVectorizer类,它用于将文本转换为词频矩阵。

  2. 定义文本数据

    text = ['aaa bbb ccc','aaa aaa ccc bbb','ccc bbb ccc','bbb bbb ccc aaa']
    

    这是一个包含 4 个文本字符串的列表,每个字符串由空格分隔的词语组成。

  3. 初始化 CountVectorizer

    cv = CountVectorizer(max_features=6, ngram_range=(1,3))
    
    • max_features=6:只保留出现频率最高的 6 个特征
    • ngram_range=(1,3):不仅考虑单个词(1-gram),还考虑 2 个词的组合(2-gram)和 3 个词的组合(3-gram)
  4. 拟合和转换文本数据

    cv_fit = cv.fit_transform(text)
    
    • fit:学习文本数据中的词汇表
    • transform:将文本转换为词频矩阵
  5. 输出结果

    • print(cv_fit):输出稀疏矩阵表示,显示非零元素的位置和计数
    • print(cv.get_feature_names_out()):输出提取的特征名称(词汇)
    • print(cv_fit.toarray()):将稀疏矩阵转换为稠密数组显示

运行这段代码会得到:

  • 特征名称(6 个最常见的 1-gram、2-gram 或 3-gram)
  • 每个文本在这些特征上的词频计数

例如,特征可能包括'aaa''bbb''ccc'等单个词,以及'aaa bbb''bbb ccc'等词组,具体取决于它们在文本中出现的频率。

这种文本向量化是自然语言处理中的基础步骤,将文本数据转换为机器学习算法可以理解的数值形式。

这段代码主要实现了中文文本数据的预处理流程,目的是将原始的好评 / 差评文本转换为可用于机器学习模型训练的特征数据,核心步骤包括数据读取、中文分词、停用词过滤、标签构建以及文本向量化。

逐部分解析:

1. 数据读取(读取好评 / 差评文本)

python

运行

import pandas as pd# 读取差评文本
cp_content = pd.read_csv("差评.txt", encoding='gbk')
# 读取好评文本(处理无表头、分隔符等问题)
hp_content = pd.read_csv('好评.txt',encoding='utf-8',header=None,  # 说明文件无表头sep='\t',     # 以制表符为分隔符engine='python',names=['content']  # 给列命名为'content'
)

  • 作用:从本地文件读取 “差评” 和 “好评” 文本数据,用pandas转换为 DataFrame 格式,方便后续处理。
  • 注意:两个文件编码不同(差评用gbk,好评用utf-8),需对应正确编码避免读取乱码;好评文件无表头,用names手动指定列名为content
2. 中文分词(用 jieba 对文本拆分)

python

运行

import jieba# 处理差评:分词
cp_seg = []
contents = cp_content.content.values.tolist()  # 提取差评内容为列表
for content in contents:results = jieba.lcut(content)  # 用jieba精确分词(返回词语列表)if len(results) > 1:  # 过滤掉分词后长度≤1的内容(可能是无效文本)cp_seg.append(results)
# 保存分词结果到Excel
cp_fc_results = pd.DataFrame({'content': cp_seg})
cp_fc_results.to_excel('cp_fc_results.xlsx', index=False)# 处理好评:同样的分词流程
hp_seg = []
contents = hp_content.content.values.tolist()
for content in contents:results = jieba.lcut(content)if len(results) > 1:hp_seg.append(results)
hp_fc_results = pd.DataFrame({'content': hp_seg})
hp_fc_results.to_excel('hp_fc_results.xlsx', index=False)

  • 作用:中文文本需要先拆分为词语(分词)才能进行后续处理,这里用jieba.lcut实现精确分词。
  • 细节:过滤掉分词后长度≤1 的文本(可能是无意义的短句),并将分词结果保存为 Excel,方便中间检查。
3. 停用词过滤(去除无意义词汇)

python

运行

# 读取停用词表(如“的”“是”“在”等无实际意义的词)
stopwords = pd.read_csv("StopwordsCN.txt", encoding='utf-8', engine='python', index_col=False)# 定义过滤停用词的函数
def drop_stopwords(contents, stopwords):seg_clean = []for content in contents:  # 遍历每条分词后的文本line_clean = []for word in content:  # 遍历每个词语if word in stopwords:  # 如果词语是停用词,则跳过continueline_clean.append(word)  # 保留非停用词seg_clean.append(line_clean)return seg_clean# 对差评分词结果过滤停用词
contents = cp_fc_results.content.values.tolist()
stopwords_list = stopwords.stopword.values.tolist()  # 提取停用词为列表
cp_fc_clean_s = drop_stopwords(contents, stopwords_list)# 对好评分词结果过滤停用词
contents = hp_fc_results.content.values.tolist()
hp_fc_clean_s = drop_stopwords(contents, stopwords_list)

  • 作用:去除文本中无实际意义的 “停用词”(如虚词、标点等),减少噪声,保留关键信息。
  • 注意:停用词表(StopwordsCN.txt)需提前准备,函数drop_stopwords会逐词检查并过滤。
4. 构建训练数据集(添加标签并合并)

python

运行

# 为差评和好评添加标签(注意:这里可能有笔误,通常差评/好评应设为不同标签)
cp_train = pd.DataFrame({'seg_clean': cp_fc_clean_s, 'label': 1})  # 差评标签设为1
hp_train = pd.DataFrame({'seg_clean': hp_fc_clean_s, 'label': 1})  # 好评标签也设为1(不合理)
# 合并差评和好评数据集
pj_train = pd.concat([cp_train, hp_train])
# 保存合并后的训练数据
pj_train.to_excel('pj_train.xlsx', index=False)

  • 作用:为文本添加分类标签(用于后续机器学习分类),并合并为一个完整的训练集。
  • 问题:这里可能存在逻辑错误 —— 通常 “差评” 和 “好评” 应作为两类标签(如差评 = 0,好评 = 1),但代码中都设为 1,后续模型无法区分,需要修正。
5. 划分训练集和测试集

python

运行

from sklearn.model_selection import train_test_split# 拆分数据:特征为分词后的文本(seg_clean),标签为label
x_train, x_test, y_train, y_test = train_test_split(pj_train['seg_clean'].values,  # 特征(文本)pj_train['label'].values,      # 标签random_state=100  # 随机种子,保证结果可复现
)

  • 作用:将数据集分为训练集(用于模型训练)和测试集(用于评估模型),random_state固定随机拆分方式。
6. 文本向量化(将词语转换为数值特征)

python

运行

# 将训练集的分词列表转换为字符串(CountVectorizer需要输入字符串)
words = []
for line_index in range(len(x_train)):words.append(' '.join(x_train[line_index]))  # 用空格连接词语,如["我", "喜欢"]→"我 喜欢"# 初始化CountVectorizer(词袋模型)
from sklearn.feature_extraction.text import CountVectorizer
VEC = CountVectorizer(max_features=4000,  # 只保留出现频率最高的4000个特征lowercase=False,    # 不转换为小写(中文无需小写处理)ngram_range=(1, 3)  # 考虑1-gram(单个词)、2-gram(两个词组合)、3-gram(三个词组合)
)# 拟合向量器(学习词汇表)并转换训练集
VEC.fit(words)
x_train_vec = VEC.transform(words)  # 得到词频矩阵(每行是一个文本的特征向量)

  • 作用:将文本(字符串)转换为机器学习模型可识别的数值特征。CountVectorizer通过统计词语(或词组)的出现次数,生成 “词频矩阵”。
  • 细节:ngram_range=(1,3)会保留词组信息(如 “服务 差”“性价比 高”),比仅用单个词更能捕捉语义;max_features=4000限制特征数量,避免维度爆炸。

整体流程总结

这段代码完整实现了从 “原始文本” 到 “模型输入特征” 的预处理流程:
读取数据 → 中文分词 → 过滤停用词 → 构建带标签的数据集 → 拆分训练 / 测试集 → 文本向量化

主要用于后续的文本分类任务(如区分好评 / 差评),但需注意标签设置错误的问题(差评和好评标签应不同)。

http://www.dtcms.com/a/534814.html

相关文章:

  • 手机网站模板更换方法网站sem怎么做
  • 深圳网站ui设计可以免费发布招聘网站
  • 做外贸电商网站营销型网站建设_做网站
  • 免费网站用官微建站冀icp 网站建设
  • 哪个网站能接效果图做湿地公园网站开发招标
  • 网站备案的服务器wordpress增加关键字
  • 西部数码网站管理助手 xp都江堰做网站
  • 建设营销网站要什么wordpress 退出 跳转
  • 网站建设流程及规范最专业的网站建设公司哪家好
  • 官方网站查询叉车证成都网站建设创意
  • 佛山网站建设价格嘉兴中小企业网站制作
  • 请问番禺哪里有做网站的wordpress面包屑代码
  • 彩虹云商城网站搭建2022年最火的关键词
  • 网站开发工程师薪资合肥建设有限公司
  • 阿里云服务器搭建多个网站城乡建设网站
  • 重庆网站设计哪家好WordPress 经典编辑器
  • 建设企业网站登录901厦门做网站多
  • 网站开发 用户角色个人音乐网站免费建设
  • 江阴营销网站建设贵州微网站建设公司
  • 最优惠的手机网站建设石家庄最新招聘
  • 教育网站建设需求文档崇信县门户网站留言首页
  • 网站建设管理专业介绍网站模块 带采集
  • WordPress资讯站点源码信阳市工程建设信息网站
  • php开发系统网站建设镇江核酸检测最新通知
  • 展示型网站有哪些公司办公网络设计方案
  • 网站建设哪家服务周到公司网站建设及推广
  • 网站排名方案基于php网站开发设计
  • 哪个网站做律师推广WordPress仪盘表半透明
  • 多语言网站如何做广告传媒公司属于什么行业
  • 网站建设方案预算费用预算微信公众号菜单跳转网页怎么制作