资源简介
从读取文件、去除重用词、正则化、到词向量、再到预测分类。最后ROC曲线评估,一整套(带数据集),下载即运行。如果好用,还请给个好评
代码片段和文件信息
import re
import jieba
import pandas as pd
# 导入文本特征向量转化模块
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
def text_save(filename data): # filename为写入CSV文件的路径,data为要写入数据列表.
file = open(filename‘a‘)
for i in range(len(data)):
s = str(data[i]).replace(‘[‘‘‘).replace(‘]‘‘‘) # 去除[]这两行按数据不同,可以选择
s = s.replace(“‘“‘‘).replace(‘‘‘‘) +‘\n‘ # 去除单引号,逗号,每行末尾追加换行符
file.write(s)
file.close()
print(“保存文件成功“)
def process():
# -------------第一部分:读取数据--------------------------
fulltrain = pd.read_csv(‘DataC/microwave.csv‘ encoding=‘gb18030‘)
datatrain = fulltrain[‘star_rating‘].values # 转换为数组
# print(type(datatrain))
# # print(datatrain.dtype)
for i in range(0 len(datatrain)):
if datatrain[i] >= 3: # 大于等于3的变成1,其余为0
datatrain[i] = 1
else:
datatrain[i] = 0
# print(data)
dataxtrain = fulltrain[‘review_body‘].values
print(len(dataxtrain))
# -------------第二部分:数据处理--------------------------
pattern = r“(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)|([a-zA-Z]+.\w+\.+[a-zA-Z0-9\/_]+)“
restrain = []
for i in dataxtrain:
tmp = ‘‘.join(str(str(i).replace(‘\n‘ ‘‘))) # 去掉换行符
# print(tmp)
tmp = re.sub(pattern ‘‘ tmp) # 去掉网站
# print(tmp)
remove_digits = str.maketrans(‘‘ ‘‘ ‘0123456789‘) # 去除数字
tmp = tmp.translate(remove_digits)
# print(tmp)
restrain.append(tmp)
print(“train总计:“ len(restrain))
# -----------------第三部分:分词,去除停用词--------------------
stop_word = {}.fromkeys([‘,‘ ‘。‘ ‘!‘ ‘this‘ ‘me‘ ‘very‘ ‘is‘ ‘、‘ ‘:‘ ‘;‘ ‘(‘ ‘)‘ ‘-‘ ‘:‘])
print(“中文分词后结果:“)
corpustrain = []
for a in restrain:
seg_list = jieba.cut(a.strip() cut_all=False) # 精确模式
final = ‘‘
for seg in seg_list:
if seg not in stop_word: # 非停用词,保留
final += seg
seg_list = jieba.cut(final cut_all=False)
output = ‘ ‘.join(list(seg_list))
# print(output)
corpustrain.append(output)
print(len(corpustrain))
# -------------------第四部分将文本中的词语转换为词频矩阵--------------------------------
vectorizer = CountVectorizer()
# 计算各词语出现的次数
Xtrain = vectorizer.fit_transform(corpustrain)
# 获取词袋中所有文本关键词
# word = vectorizer.get_feature_names()
# # 查看词频结果
# # print(len(word))
# for w in word:
# print(wend=“ “)
# print(“ “)
# print(“词频矩阵:“)
Xtrain = Xtrain.toarray()
# print(“矩阵len:“len(X))
# np.set_printoptions(threshold=np.inf)
# print(X)
# -----------------------------第五部分-数据分析---------------------
print(“数据分析:“)
x_train = Xtrain[:1300]
y_train = datatrain[:130
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4548 2020-03-07 18:00 BayesianModel\BayesianMicrowave.py
文件 1035040 2020-03-06 10:05 BayesianModel\DataC\microwave.csv
文件 1402 2020-03-12 12:14 BayesianModel\ROC.py
目录 0 2020-03-12 12:15 BayesianModel\DataC
目录 0 2020-03-12 12:15 BayesianModel
----------- --------- ---------- ----- ----
1040990 5
相关资源
- 台湾大学NTUSD,知网情感分析用词语集
- 最全的情感分析词库
- 情感分析-情感词典
- AI Challenger用户评论情感分析
- 微博情感分析论文7篇
- AI Challenger 细粒度用户评论情感分析
- 四个情感词典汇总.zip
- 基于朴素贝叶斯分类法的图像分割
- 台湾大学中文情感极性词典
- NLPCC2014 微博情感分析样例数据
- 来自于NLPCC2013,解析成txt文件 不均衡
- 新浪微博,情感分析标记语料共12万条
- 情感分析数据集
- 情感分析评论训练数据
- 中文情感分析 语料数据 酒店评论
- 谭松波-酒店评论语料-utf8gb 两种格式
- Sentiment Analysis and Opinion Mining_BingLiu
- 基于 SVM 的中文微博情感分析的研究
- 中文情感分析语料库
- 情感分析数据集正面10000条,负面50
- NLPCC2014情感分类语料集+已经标注好
- 贝叶斯模型LDA贝叶斯算法实现的电商
- 基于社交网络的情绪化分析
- 情感分析语料-谭松波酒店评论语料
- BosonNLP数据的情感词典
- NLPCC2013评估任务_中文微博观点要素抽
- NLPCC2014评估任务2_基于深度学习的情感
- 微博情感分析,文本分类,毕业设计
- 中文酒店情感分析语料,标注了打分
- 基于SVM中文情感分析
评论
共有 条评论