文本挖掘,我们想要得到什么

文本挖掘有较为固定的处理流程,数据获取、正文提取、分词、去停用词等等。但当我们跑完上述预处理流程,获得了可供挖掘的数据后,我们提出问题:这些数据能干什么?能提取什么知识什么模式?以我的某个论文为例,我利用爬虫获取了食品安全相关的网页,构成语料库,有效的样本量大概有几万个。然后呢,我做了食品安全事件报道的地区、时间、和类型的统计,跑了关联规挖掘,利用主题模型方法进行了隐含变量的提取。结果看上去很丰富,有图有表,有数据有算法,可我想说的是,挖掘不应当是先设置目的,再选择方法吗?怎么成了各种算法跑一跑,看看什么结果可用的过程?

当你面对一堆沙子,你会猜测:沙子里有金子,然后你去找这个金子,这是淘金,这是挖掘;当你连目的都没弄清楚,希望通过东一榔头西一棒槌的方法研究这堆沙子,最后的结论大概就是这届沙子不行吧。

回到问题,最初的一步应是解析出问题,比如现有算法的不足、模型描述不够细致。我希望通过改进主题模型,让模型更好的表示现有数据。

针对主题模型

1、我们获取到了食品安全相关的网页,宏观上讲是隶属于相同主题的,但细分下来也可分为食品、添加剂、健康、检测、化学、政策等多个facet。那每个文本的主题应当是它们的混合,这符合多项式分布。(但也可以这样理解:文本的关键特征应是涉及的食品,因此整个文本集应当是不同类型的食品安全文本的混合,每次)

第一层,是不是食品安全事件?

第二层,是哪种事件?

2、原始的方法完全自动(除了k值),但在细分的任务中完全的自动不切实际,可人工干预,通过添加先验知识(语义网、本体)的方法,可令模型理解哪些概念间是有强相关性的(如牛奶、酸奶,色素、苏丹红,细菌、腹泻),从而更加准确的打标签?

3、原始数据是有偏斜的。以百度搜索“苏丹红 辣椒”返回的数据为例,大部分网页是“无效”的,是不存在隐含的标记信息的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文本挖掘是指从大量文本数据中自动提取出有用的信息和知识的过程。而jieba分词是一种常用的中文分词工具,可以将中文文本按照词语切分成若干个词汇,从而为文本挖掘提供了基础。 以下是用jieba分词进行文本挖掘的步骤: 1. 导入jieba库 ``` import jieba ``` 2. 加载文本数据 假设我们有一个文本文件,名为“data.txt”,其中包含一些中文文本数据。我们可以使用以下代码将文本数据读入程序中: ``` with open('data.txt', 'r', encoding='utf-8') as f: text = f.read() ``` 3. 对文本数据进行分词 使用jieba分词对文本数据进行分词,得到词语列表: ``` words = jieba.lcut(text) ``` 4. 进行文本挖掘 利用分词得到的词语列表进行文本挖掘。常见的文本挖掘任务包括: - 关键词提取:从文本中提取出关键词,用于文本分类、聚类等任务。 ``` import jieba.analyse # 提取前10个关键词及其权重 keywords = jieba.analyse.extract_tags(text, topK=10, withWeight=True) for keyword, weight in keywords: print(keyword, weight) ``` - 情感分析:判断文本的情感倾向,如积极、消极或中性。 ``` import jieba.sentiment # 加载情感分析模型 jieba.sentiment.analyse.set_sentiment_file('sentiment.txt') # 获取文本的情感倾向 sentiment_score = jieba.sentiment.analyse.sentiment(text) if sentiment_score > 0: print('这是一篇积极的文章') elif sentiment_score < 0: print('这是一篇消极的文章') else: print('这是一篇中性的文章') ``` - 主题建模:从文本中提取出主题,用于文本分类、聚类等任务。 ``` import jieba.analyse from gensim import corpora, models # 提取关键词列表 keywords = jieba.analyse.extract_tags(text, topK=10) # 构建语料库 corpus = [jieba.lcut(sentence) for sentence in text.split('\n')] # 构建词袋模型 dictionary = corpora.Dictionary(corpus) corpus_bow = [dictionary.doc2bow(sentence) for sentence in corpus] # 训练LDA模型 lda_model = models.ldamodel.LdaModel(corpus_bow, num_topics=3, id2word=dictionary) # 输出每个主题的关键词 for i, topic in enumerate(lda_model.show_topics(num_topics=3, num_words=5)): print('主题%d:%s' % (i+1, topic)) ``` 以上是用jieba分词进行文本挖掘的基本步骤和常见任务。需要注意的是,jieba分词只是文本挖掘的一部分,实际的文本挖掘任务涉及到多个领域的知识,需要综合运用自然语言处理、机器学习、统计学等方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值