nlp之加载电商评论集

目录

代码

python 复制代码
import pandas as pd

df = pd.read_csv("../data/Clothing Reviews.csv")
print(df.info())

df['Review Text'] = df['Review Text'].astype(str)
x_train = df['Review Text']
y_train = df['Rating']

from tensorflow.keras.preprocessing.text import Tokenizer

# 创建词典的索引,默认词典大小20000
dict_size = 20000
tokenizer = Tokenizer(num_words=dict_size)
# jieba: 停用词,标点符号,词性.....
tokenizer.fit_on_texts(x_train)
print(len(tokenizer.word_index), tokenizer.index_word)

# 把评论的文本转化序列编码
x_train_tokenized = tokenizer.texts_to_sequences(x_train)
print(x_train_tokenized)
for v in x_train_tokenized[:10]:
    print(v, len(v))

# 可以通过可视化方式展示评论的长度
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.use('TkAgg')

word_per_comment = [len(comment) for comment in x_train_tokenized]
plt.hist(word_per_comment, bins=np.arange(0, 200, 10))
plt.show()

# 通过指定长度,把不等长list转化为等长
from tensorflow.keras.preprocessing.sequence import pad_sequences

max_comment_length = 120
x_train = pad_sequences(x_train_tokenized, maxlen=max_comment_length)

for v in x_train[:10]:
    print(v, len(v))

代码解读

逐行解读这段代码。

python 复制代码
import pandas as pd

引入了pandas库,并以pd为别名。

python 复制代码
df = pd.read_csv("../data/Clothing Reviews.csv")

使用pandas的read_csv函数读取一个CSV文件,并将其保存到变量df中。

python 复制代码
print(df.info())

打印数据框df的信息,包括列名、非空值数量和数据类型。

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 23486 entries, 0 to 23485

Data columns (total 11 columns):
Column Non-Null Count Dtype


0 Unnamed: 0 23486 non-null int64

1 Clothing ID 23486 non-null int64

2 Age 23486 non-null int64

3 Title 19676 non-null object

4 Review Text 22641 non-null object

5 Rating 23486 non-null int64

6 Recommended IND 23486 non-null int64

7 Positive Feedback Count 23486 non-null int64

8 Division Name 23472 non-null object

9 Department Name 23472 non-null object

10 Class Name 23472 non-null object

python 复制代码
df['Review Text'] = df['Review Text'].astype(str)

将数据框df中的Review Text列的数据类型转换为字符串。

python 复制代码
x_train = df['Review Text']
y_train = df['Rating']

Review Text列分配给x_train,将Rating列分配给y_train

python 复制代码
from tensorflow.keras.preprocessing.text import Tokenizer

tensorflow.keras.preprocessing.text模块导入Tokenizer类。

python 复制代码
dict_size = 20000
tokenizer = Tokenizer(num_words=dict_size)

设置词典大小为20,000,并创建一个Tokenizer对象。

python 复制代码
tokenizer.fit_on_texts(x_train)

x_train上调用fit_on_texts方法,这样tokenizer就可以根据x_train中的文本构建词典。

python 复制代码
print(len(tokenizer.word_index), tokenizer.index_word)

打印词典中的词数量和词到索引的映射。

python 复制代码
x_train_tokenized = tokenizer.texts_to_sequences(x_train)

使用texts_to_sequences方法将x_train中的文本转化为整数序列,并保存到x_train_tokenized

python 复制代码
print(x_train_tokenized)

打印转化后的整数序列。

python 复制代码
for v in x_train_tokenized[:10]:
    print(v, len(v))

打印x_train_tokenized中前10个序列及其长度。

python 复制代码
import matplotlib.pyplot as plt
import matplotlib
import numpy as np

导入了matplotlib.pyplotmatplotlibnumpy库。

python 复制代码
matplotlib.use('TkAgg')

设置matplotlib使用的后端为TkAgg

python 复制代码
word_per_comment = [len(comment) for comment in x_train_tokenized]

计算每个评论的词数,并保存到word_per_comment列表中。

python 复制代码
plt.hist(word_per_comment, bins=np.arange(0, 200, 10))

绘制一个直方图,显示评论的词数分布。直方图的分箱范围是0到200,每10个单位一个分箱。

python 复制代码
plt.show()

显示上面绘制的直方图。

python 复制代码
from tensorflow.keras.preprocessing.sequence import pad_sequences

tensorflow.keras.preprocessing.sequence模块导入pad_sequences函数。

python 复制代码
max_comment_length = 120

设置评论的最大长度为120。

python 复制代码
x_train = pad_sequences(x_train_tokenized, maxlen=max_comment_length)

使用pad_sequences函数将x_train_tokenized中的序列填充或截断到长度为120。

python 复制代码
for v in x_train[:10]:
    print(v, len(v))

打印填充或截断后的前10个序列及其长度。

python 复制代码
print('ok')

打印ok,表示代码运行完毕。

总之,这段代码的主要目的是从CSV文件中读取文本评论,然后使用Tokenizer将文本转化为整数序列,并对这些序列进行填充或截断,以确保它们都有相同的长度。

相关推荐
百胜软件@百胜软件7 分钟前
百胜软件入选“828精选AI解决方案图谱”,胜券AI助力零售品牌构建专属智能体
大数据·人工智能·零售
ai小陈22 分钟前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
智驭未来掌门人25 分钟前
别再让员工偷偷用 ChatGPT 了:用一台内网网关,把大模型变成"自来水"
人工智能
阿里云大数据AI技术25 分钟前
EMR Serverless Spark多模态 Daft 算子市场免费公测 | 10分钟极速实战(附视频教程)
人工智能·spark
船厂电气自动化ai大模型29 分钟前
AI大模型与数学/第63课:矩阵定义、矩阵加法、标量乘法(逐级精讲)
数据结构·人工智能·深度学习·线性代数·算法
小婉39 分钟前
我用 Next.js + React Flow 从零搭建了一个可视化 AI 工作流编排平台
前端·人工智能·node.js
AI行业说40 分钟前
誉财自动化YC-18-M8045怎么选?2026中小服装工厂模板机选型指南
人工智能·机器人·自动化
Waiky43 分钟前
给 AI Agents 一双「眼睛」:CrawlEyes 开源了
人工智能
甲维斯1 小时前
美版豆包又更新了!Gemini 3.8Flash是真Flash!
人工智能
云智慧AIOps社区1 小时前
2026年智能巡检机器人行业格局:三类厂商阵营、选型维度与产品推荐
运维·人工智能·机器人·巡检机器人