昨天做了一个德文数据的词频统计,发来的数据是word文件,如下
für mich ging es bei einem foto mit präsident erdogan nicht um politik oder um wahlen, sondern darum, das höchste amt des landes meiner familie zu respektieren.“deutsche fußball-fans hatten özil und gündogan das erdogan-foto übel genommen
一开始我以为他发错的数据有问题,不然怎么会 乱码呢!后来才知道,数据文件没错,德文的有些字符长得比较奇特。让我对word的德文文档做词频统计,按照流程顺序
-
读取docx文件的文本数据
-
对德文进行词频统计
-
输出到csv或者xlsx
现在我们已经将任务分成了四个部分,每个部分如果有无法实现的地方,可以百度谷歌,最后将各部分拼接起来,这个任务就完成了。
下面我们开始做吧
读取docx文件 百度搜了一遍,发现有一个 docx 库可以实现读取,而且找到现成的代码可供使用。
docx库的安装方法
pip install python
-
docx
安装好docx库之后,我们定义了read_docx函数用来读取docx文件,返回文本内容
运行结果
'was auch immer das ergebnis der letzten wahl gewesen wäre, oder der wahl davor, ich hätte das bild '
对德文进行词频 我直接在github上搜索德文切词库找到 SoMaJo 库,安装方法
pip install
SoMaJo
分词的代码也找到了,直接定义为 segment函数
我们试试segment函数是否能正常运行
wordfreq = segment(text)
wordfreq
运行结果 输出结果 将结果保存到xlsx文件中,第一列是词语,第二列是词频。往常我们都是保存到csv文件中,但是发现用excel打开csv时,德文真的乱码了。那些奇怪的字符被更奇怪的乱码替换了。我直接google搜
how toexportgermanintoexcelusingpython
得到下面的结果
搜索结果的第一个结果里找到我需要的代码。我这里定义为to_xlsx函数
在这里我们测试下 to_xlsx函数,看看能否输出xlsx。
to_xlsx
(
wordfreq
,
'output.xlsx'
)
我们打开 output.xlsx 文件,如下图
完美! 现在我们将上面的代码组装起来