首页 > 其他分享 >错误合集

错误合集

时间:2023-04-12 21:00:13浏览次数:31  
标签:words 错误 filePath pickle list file mailContent 合集

我最开始为什么会搞这些问题,都是因为这个错误:

 

所以我去百度了empty vocabulary; perhaps the documents only contain stop words,但是这个错误真的很难搞,百度了一圈也没搞明白解决办法,真的无语。

所以我开始想会不会是我的cutWords.pickle文件出了问题,于是开始打开文件输出:

我的pickle文件你咋了,昨天明明还好好的,咋变红了,好吓人,去搜了一下:

 

应该是文件太大了,所以我只输出了一个就没问题了:

 

所以pickle文件没有问题。

是不是我不该替换为空格呀,因为下面这个就没有分词且替换为空格,当时我为什么替换呀。

 

 它这里的fit_transform(corpus)中的corpus可以是这种吗,然后我突然想起来我之前看到的逻辑回归的博主好像就是这样写的,我要回去看看。而且vectorizer = TfidfVectorizer(tokenizer=preprocess)中的tokenizer=preprocess这个作用是什么啊。

 因为这里要用到mailContent_list,但每次再运行太麻烦了,所以我也把它生成pickle文件了,但是我是pycharm生成的:

 1 import jieba
 2 import re
 3 import os
 4 import pickle
 5 
 6 def getFilePathList2(rootDir):
 7     filePath_list = []
 8     for walk in os.walk(rootDir):
 9         part_filePath_list = [os.path.join(walk[0], file) for file in walk[2]]
10         filePath_list.extend(part_filePath_list)
11     return filePath_list
12 filePath_list = getFilePathList2('./trec06c/data')
13 
14 mailContent_list = []
15 for filePath in filePath_list:
16     with open(filePath, errors='ignore') as file:
17         file_str = file.read()
18         mailContent = file_str.split('\n\n', maxsplit=1)[1]
19         mailContent_list.append(mailContent)
20 mailContent_list = [re.sub('\s+', '', k) for k in mailContent_list]
21 mailContent_list = [re.sub("([^\u4e00-\u9fa5])", '', k) for k in mailContent_list]
22 
23 with open('mailContent_list.pickle', 'wb') as file:
24     pickle.dump(mailContent_list, file)

现在我要试一下博主的代码,就是没有这句:mailContent_list = [re.sub("([^\u4e00-\u9fa5])", '', k) for k in mailContent_list],这时候的输出结果是3241

然后输出看一下这3241个特征词,都是句子,并不是词。

 然后我如果加上了这句:mailContent_list = [re.sub("([^\u4e00-\u9fa5])", '', k) for k in mailContent_list],这时候的输出结果是44

 

 然后也输出看一下这44个特征词,如下图,这哪是特征词,明明是句子:

 

 

 还是按我之前的来,嗯。

 总共有7842个特征词,看下能不能输出来特征词。

 可以欸,可是我在pycharm输不出来欸,就是下面这个错误:

 

 

 

 

 

 

 

 

 怀疑人生了,难道刚刚不能运行是假的。

第二天我又试着运行了一下,也是可以运行的。

于是就到了下面这个问题,特征个数不符,即我分完后只有54个词,而predict()中的参数需要7842个词:

 

于是我想到把特征数扩为相同的,就是下面这个代码:

        # 获取两个列表中的相同元素
        common_elements = np.intersect1d(features, cutWords)
        # 创建一个和features长度相同的全0数组
        words = np.zeros_like(features)  
        for element in common_elements:
            # 获取相同元素在features中的下标
            indices = np.where(np.array(features) == element)
            # 将相同元素在words中的下标设为1
            words[indices] = 1  

并且也实现了,没有任何问题,就是[1,0,0...]这种,我想着改成这种形式了应该不会出错了吧,但我用predict时又提示我出错。

就是这个错误:ValueError: Expected 2D array, got 1D array instead: array=[0. 0. 0. ... 0. 0. 0.]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.但是这个错搜都搜不到。

翻译成中文是应该是二维的数组,但我输入的是一维的。

 

 

 根本不会解决。

 

 

 这个错误到底怎么回事啊。

搜了一下二维数组:

于是我去chatGPT上搜到了解决办法,改完之后又出现了下面这个错误:

ValueError: Shape of passed values is (7842, 1), indices imply (7842, 7842),然后又胡搞瞎搞,根本不会。

然后我想到之前看过的一篇文章里有介绍怎么对一封邮件分类,于是我去看他的文章。

 

 好像是这一步:

 

 

 就是将上面扩的列表words改成二维的:words_martrix =pd.DataFrame([words],columns = features)

这样再使用predict函数就不会再出现问题了。下面是使用代码:

 

但是有一个疑问就是我忘记了0和1哪个是正常邮件和垃圾邮件。

于是我print:

 

 

 

 

 与index对比,发现spam垃圾邮件是1:

 

然后这是我的运行结果:

 

 完美!perfect!

 

标签:words,错误,filePath,pickle,list,file,mailContent,合集
From: https://www.cnblogs.com/liuyujie-zhang/p/17308425.html

相关文章

  • SQL Server 配置管理器打不开提示错误
    ---------------------------SQLServer配置管理器---------------------------无法连接到WMI提供程序。您没有权限或者该服务器无法访问。请注意,您只能使用SQLServer配置管理器来管理SQLServer2005和更高版本的服务器。无效类[0x80041010]解决“无法连接到WMI提供......
  • platformio+esp32 编译时下载PACKAGES错误 Tool Manager ERROR
    如图,readtimeoutToolManegerl:Lookingforanothermirror.....  编译时一共需要三个PACKAGEframwork-arduioespressif32@3.20004.0(2.04)tool-esptoolpy@1.30300.0(3.0.0)toolchain-riscv32-esp@8.4.0+2021r2-patch3都存在下载时超时,一直找寻......
  • 2023-04-11 使用react-draft-wysiwyg插件进行图片插入后编写文字时抛出错误:Unknown Dr
    前言:react+antd+react-draft-wysiwyg文本编辑业务场景,当我点击插入图片时,在该图片上一行或下一行进行文字输入会报如下错误:报错:UnknownDraftEntitykey:null.未知的DraftEntitykey:null。原因:当你插入图片时,新的图片img需要被包裹在一个块级元素内就不会报错(这看起来并不是原......
  • TreeMap运行错误
    Exceptioninthread"main"java.lang.ClassCastException:Day16_TreeMap.Starcannotbecasttojava.lang.Comparable提示类型转换错误,publicstaticvoidmain(String[]args){TreeMap<Star,String>Tr=newTreeMap<Star,String>();//下句出错......
  • IDEA】出现 Wrong tag ‘Author_‘ 错误的 Author 标签等的黄色警告问题
    问题描述设置自动生成注解后,会产生Wrongtag'Author:'错误的Author标签等的黄色警告问题   解决方案:配置路径:File-->NewProjectsSetup-->SettingsforNewProjects…-->Editor-->Inspections-->Preotfiles:DefaultIDE-->Java-->Javadoc-->Declarati......
  • 3D开发工具HOOPS最新解析合集!助力实现web端高性能模型渲染!
     一、3D技术为创新提供强大助力(1)3D专家提供专属技术支持服务不管您想搭建桌面、WEB或者移动端APP应用,技术领先全球的HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,一批可信任的工业领域3D技术专家也将为您提供技术支持服务。(2)多平台自由且快速地转换如果您的客户期望......
  • 图扑数字孪生工厂合集 | 智慧工厂可视化,推动行业数字化转型
    前言图扑软件基于HTML5(Canvas/WebGL/WebVR)标准的Web技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从SDK组件库,到2D和3D编辑,到属性修改,构成了一站式的数据可视化解决方案、形成了一整套实践证明的高效......
  • Element Plus错误警告 | Popper: Detected CSS transitions on at least one of the f
    这个错误的解决方案如下:1.禁用"computeStyles"修饰符的adaptive选项:这将允许平滑过渡,但可能会降低性能。禁用"computeStyles"修饰符的adaptive选项,可以在创建Popper实例时指定modifiers参数,并将computeStyles的adaptive属性设置为false。示例如下:import{c......
  • ”file not recognized: file format not recognized“错误,不同架构动态库交叉编译的
    在学习modbus协议时,发现了一些关于libmodbus库编译的问题 我将虚拟机作为客户端,树莓派作为服务器端,分别编写modbus-tcp协议的客户端/服务器端代码在ubuntu虚拟机上可以成功编译,但是在树莓派上会报:”filenotrecognized:fileformatnotrecognized“错误 下面是关于”fil......
  • 解决javascript调用本地sanic接口报跨域错误的问题
    在py代码中利用middleware()方法修饰request/response即可,无需别的操作。 app=Sanic('Sanic_Server')@app.middleware("request")defcors_middle_req(request:Request):"""路由需要启用OPTIONS方法"""ifrequest.method.lower()==......