1.库文件导入
用到的库:pandas、jieba、re。
Pycharm操作步骤:
会看到以下界面:
这个是为我们项目添加库文件的,我们添加后,库文件会导入项目文件目录里面。Packge为包名,Version是版本,我们默认有pip和setuptools两个库,我们不用管就行。但在接下来的代码中,我们要用到pandas函数和jieba函数,需要导入新的库。
方法是点击右上角的加号。
在新建包的窗口中,我们在上面的搜索框输入“pandas"然后搜索,搜到后直接点左下角的Install Packge就可以了。
2.代码编写
上面只是导入了库,但对于每一个新建的Python File,我们还要在前面引用库文件。
在写下
这三行代码后,Pytharm会显示这种提示:
提示,提示我们库文件未应用,意思是我们引入了这三个库,但在下面的代码中却没有使用。
注意我们这是先写库文件,此处我们已经知道我们要用到这三个库,只不过代码还没来得及写。如果我们先写库文件里的函数,再写库文件引用的话,就不会出现这个提示了。
在引入原始数据的csv文件后,我们想查看一下这个原始文件,但不能在代码中添加输出之类的代码,因为这样会增加程序复杂性。怎么做呢,这里需要用到Python Console功能。
Python Console叫做Python控制台,即Python交互模式。左边的Terminal叫做终端,即命令行模式。
Python交互模式主要有两种:CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
可以根据最下面的>>>看到我们用的是CPython交互模式。
Python交互式模式可以直接输入代码,然后执行,并立刻得到结果,因此Python交互模式主要是为了调试Python代码用的。
Terminal命令行模式与系统的CMD(命令提示符)一样,可以运行各种系统命令。
把
这行代码写进交互窗口后,如果你已经把原文件导入项目目录,就不会报错,然后交互器会进入待输入模式。
如果我们想查看这个读取的文件是否被正确储存到data变量里边,就可以在交互器下直接输入data来查看。
注意在此处我们已经把原文件的题目设置为none,第零列为行索引。
我在输入的时候没有注意到空格,也就是缩进,这时就会爆出这样的错误:
编译器会提示意外缩进,所以说Python和c的差别是很大的, C语言在理论上可以无视缩进,但Python的缩进也是Python的语法之一,意外的缩进都会报错。
去除敏感词操作,也就是去除”X"序列。
此处调用了结巴分词。输出文件为data_cut;
然后进行导入自定义停用词操作,其中包含编码设置,分隔符设置,标题设置。
在进行添加文件中的停用词时,在此却出现了错误:
根据提示you can avoid this warning by specifying engine='python'.添加“engine='Python'”后,问题仍然不能解决,但是没有了上面的提示,并提示大意为“正则表达式、停用词”的报错,抱着试一试的态度删除了停用词设置。结果仍然提示错误。
我和我的小伙伴尝试了更改编码方式、改变停用词、重装pandas库等方法,都没有解决,去百度也查不到解决办法,最终只能不了了之。
再往下的代码就一帆风顺,成功的输出了adata
数据处理部分的最后一步,函数包装。
函数封装无非就是把源文件'message80W1.csv'替换成形参,但形参的默认值还是'message80W1.csv'文件。
然后返回值是adata,data_after_stop,labes这三个。
注意我们在进行def函数声明之后,往下的代码都是函数的内部,但是def函数声明和下面的代码都没有缩进。函数内部代码缩进应该比函数声明多。我们需要把下面的代码全部缩进。
这里用到了Pycharm的统一缩进快捷键tab;
最后注意函数声明之后要加入引号。
奇怪的是,我们单个的在控制台输入添加文件提供词时会报错,但将整个封装之后的代码全部输入控制台,却成功的编译,我实在想不出这是什么原因。
在该部分的代码写完之后,我发现最前面的三个import引用发生了变化:我们没有引用前面的三个库文件时,这些库文件的字体是灰色的,但在引用这些库文件里面的函数之后,这些库文件的字体就变成了亮白色。也不会再出现像最前面那种提示库文件没有引用的错误了