数据挖掘——关键字提取—sklearn的实际应用

Posted rix-yb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘——关键字提取—sklearn的实际应用相关的知识,希望对你有一定的参考价值。

前面的步骤都相似

#构建语料库

#使用jieba包进行分词,并将分词结果用空格分隔后再传回分词列表

zh = re.compile(u[u4e00-u9fa5]+)    #中文的正则表达式
for seg in segs:
        if zh.search(seg):  #只匹配中文分词
            segments.append(seg)
    filepath.append(filePath)
 #使用空格将符合要求的分词隔开,然后放回语料库中,而不是得到分词和路径的矩阵
    row[fileContent] =  .join(segments) 

#导入sklearn包中计算TF-IDF的模块,可以将停用词以参数的形式传入CountVectorizer模块

得到numpy类的数据结构,需要进行转换

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
skcount = CountVectorizer(
        stop_words=list(stopwords[stopword].values),
        min_df=0,
        token_pattern=rw+) #分词的正则表达式

text = skcount.fit_transform(corpos[fileContent])

trans = TfidfTransformer()
tfidf = trans.fit_transform(text)

#将得到的TF-IDF结构转换成数组的形式,并得到关键字numpy类的数据结构

#按行转换成数组,并排序,取tfidf值前5的元素的位置
sort = np.argsort(tfidf.toarray(),axis=1)[:,-5:] 
#获取该位置所对应的列名,即分词关键字
names = skcount.get_feature_names() 
keywords = pd.Index(names)[sort].values #非数组

#将关键字按数据框的格式进行输出,得到最终结果

tagDF = pd.DataFrame({
        文件路径:corpos.filePath,
        文本内容:corpos.fileContent,
        关键字1:keywords[:,0], 
        关键字2:keywords[:,1],
        关键字3:keywords[:,2],
        关键字4:keywords[:,3],
        关键字5:keywords[:,4]})

 

以上是关于数据挖掘——关键字提取—sklearn的实际应用的主要内容,如果未能解决你的问题,请参考以下文章

sklearn学习:特征提取

『Sklearn』机器学习绪论

使用 sklearn 进行交叉验证的高级特征提取

使用sklearn python通过决策树提取数据点的规则路径

选择用于对用户文本数据进行分类的 sklearn 管道

SKLEARN // 将 GridsearchCV 与列变换和管道相结合