文本挖掘初探
—最近学习了文本挖掘的一些课程,并对代码进行了调试和注释,方便理解。欢迎各位朋友指正和交流。期间遇到了路径格式、import方面的问题,各位如果遇到类似问题可以评论共同交流进步。
#3.文本挖掘第三章
import numpy as np
import pandas as pd
raw=pd.read_table('D:\\python学习文件夹\\NLP文件\\金庸-射雕英雄传txt精校版.txt',names=['txt'],sep='aaa',encoding='UTF-8')
print(len(raw))
raw #建立了数据库raw,它有len(raw)行一列(列名为txt)的数据库
##加入章节标识
#章节判断用变量预处理
def m_head(tmpstr):
return tmpstr[:1]
def m_mid(tmpstr):
return tmpstr.find("回 ") #find()方法用于检索是否包含指定的字符串。如果检测的字符串不存在,则返回-1,否则返回首次出现该字符串时的索引
raw['head']=raw.txt.apply(m_head) #用apply命令将m_head函数运用到txt上面,txt也就是上面定义的names书名,raw['head']表示给列表新增叫head的一列
raw['mid']=raw.txt.apply(m_mid) #用apply命令将m_mid函数运用到txt上面,txt也就是上面定义的names书名
raw['len']=raw.txt.apply(len) #直接用len函数计算txt的长度,默认小说的所有行都加上一个叫len的列,上面同
#raw['chap']=0
raw.head(50)
#章节判断
chapnum=0
for i in range(len(raw)):
if raw['head'][i]=="第" and raw['mid'][i]>0 and raw['len'][i]<30: #小说的第i行
chapnum += 1
if chapnum >=40 and raw['txt'][i] == "附录-:成吉思汗家族":
chapnum = 0
raw.loc[i,'chap']=chapnum #loc是选取数据库的某行,在此表示在数据库raw的i行增加叫chap的列并赋值为chapnum
#删除临时变量
del raw['head']
del raw['mid']
del raw[