📜  数据挖掘-挖掘文本数据(1)

📅  最后修改于: 2023-12-03 15:10:18.720000             🧑  作者: Mango

数据挖掘-挖掘文本数据

简介

数据挖掘是指借助计算机技术和数据工具,对大量数据进行分析、挖掘、提取知识的过程。而文本数据是其中最为常见的一种数据形式,对其进行挖掘可以探索用户行为、情感分析等等。

挖掘文本数据的常用技术
分词

文本数据往往是无结构、无规律的,因此需要将文本数据进行分词,即将一整段文本拆分为一个一个的词语。常用的中文分词工具有jieba、pkuseg等等。

import jieba

text = "中国有五千年的历史,是一个文化古国。"
seg_list = jieba.cut(text, cut_all=False)

print(" ".join(seg_list))
# 输出:中国 有 五千年 的 历史 , 是 一个 文化古国 。
去停用词

在分词后得到的结果中,会包含大量的停用词,如“的”、“是”等等,并没有太多的实际意义,因此需要去掉。常用的停用词库有哈工大停用词表、百度停用词表等等。

def remove_stopwords(seg_list):
    stopwords = []
    with open("stopwords.txt", "r", encoding="utf-8") as f:
        for line in f:
            stopwords.append(line.strip())
            
    new_list = []
    for word in seg_list:
        if word not in stopwords:
            new_list.append(word)
            
    return new_list
            
text = "中国有五千年的历史,是一个文化古国。"
seg_list = jieba.cut(text, cut_all=False)
new_list = remove_stopwords(seg_list)

print(" ".join(new_list))
# 输出:中国 五千年 历史 文化古国
情感分析

情感分析是对文本数据进行情感的分类,一般分为正向情感、负向情感、中性情感三类。常用的情感分析工具有SnowNLP、TextBlob等等。

from textblob import TextBlob

text = "这本书真好看!"
blob = TextBlob(text)

if blob.sentiment.polarity > 0:
    print("这是一个正向的评论")
elif blob.sentiment.polarity < 0:
    print("这是一个负向的评论")
else:
    print("这是一个中性的评论")
# 输出:这是一个正向的评论
总结

本文介绍了挖掘文本数据的常用技术,包括分词、去停用词、情感分析等等。这些技术可以应用于各个领域中,打造出更好的应用。