Python文本数据分析与处理
2018-08-29 17:37
585 查看
Python文本数据分析与处理(新闻摘要)
分词
- 使用jieba分词, 注意lcut只接受字符串
过滤停用词
TF-IDF得到摘要信息或者使用LDA主题模型
- TF-IDF有两种 jieba.analyse.extract_tags(content, topK=20, withWeight=False) # content为string, topK选出20个关键字, withWeight: 每一个关键词同等重要
- 使用gensim库 from gensim import corpora, models
- dictinary = corpora.Dictionary(word_list) # 为每一个单词分配一个id, 并记录每一个单词的词频到dfs属性中
- corpus = [dictionary.doc2bow(line) for line in word_list] # 得到词库, 形式是(token, id)
- corpus.token2id以[token:id, ...]返回
- # 将数据处理完之后, 才能使用models进行计算
- lda = models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=20) # corpus指定语料库, id2word指定字典, id在corpus中, num_toptics指定训练的主题数
- lda.print_topic(1, 10) # 1为topic的id, 10为topic中关键字的个数
- lda.print_topic(3, 10) # 3为返回的topic个数, 10为每一个topic中关键字的个数
- 返回的形式是0.009*"文化" + 0.005*"恋情" + 0.004*"中" + 0.004*"撒" + 0.004*"节目"的列表, 数字为权重
机器学习贝叶斯(文本处理, 判断一句评论是否是侮辱性的[学会了这个, 那么垃圾邮箱, 广告的过滤也一样了, 文本处理贝叶斯的world])
与其他的泰坦尼克号遇难预测等案例不同, 文本处理需要自己在预处理时构建出数据表. 没有后者每一个提供表
不使用第三方库实现的思路
- 获取文本数据 格式: data0 = [['Hello', 'buddy'], ['You', 'silly']], labels = [1, 1]等
- 二维list, 一个list表示合并在一起可以表示一句话
过滤停用词得到去掉停用词的集合data
-
实现思路:
data = set(data): 转换为set达到去重的效果
-
根据labels先判断出bad言论数, 得出其概率
根据根据贝叶斯公式, 根据输入的测试集向量, 通过贝叶斯公式与NBTrain出来的参数(该参数与贝叶斯公式非常相关)得出p0与p1, 比较大小进行分类借口
使用sklearn的native_bayes模块实现
- 获得数据
- 过滤掉停用词
- 将每一个样本对应的单词以' '.jion合并, 因为之后将单词转为向量的对象需要这样的参数
- 导入sklearn.features_extraction.text.CountVectorizier或者sklearn.features_extraction.text.TfidfVectorizier, 是两种将字符串中的单词转为向量的算法, 后者效果更好, 所以以他为例 tfidf = TfidVectorizier() # 有一个ngram_range可选参数, (1, 4)表示得到的feature为1个, 2个依次增加到3个, 3就是最终每一个句子的向量的长度
- tfidf_fit = tfidf.fit_transform(texts) # texts的形式['I am myself', 'Do not say it', ...]
- tfidf_fit.get_feature_names()返回单词list
- tfidf_fit.toarray()返回转换后的向量
-
clf = MultinomialNB()
-
clf.score(X_test.values.tolist(), y_test.values.tolist())
相关文章推荐
- Python数据分析之文本处理词频统计
- 探索Python数据分析(一):NLTK库和文本处理
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- python pd.crosstab在处理时间序列文本数据的用处
- Python分析处理本机各项数据并以chartdirector图形化展示
- python数据分析与挖掘学习笔记(3)_小说文本数据挖掘part1
- 分析python处理基本数据<一>
- 机器学习python处理文本数据 代码
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- python学习-文本数据分析1(主题提取+词向量化)
- Python数据分析基础(四)——数据文件处理
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- python分析数据的处理过程及总结
- 机器学习(九)使用sklearn库进行数据分析_——文本特征处理
- 如何处理原始文本数据(CNN情感分析yoom例子二)
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
- 利用python进行数据分析(三):pandas--处理数据的工具
- python pd.crosstab在处理时间序列文本数据的用处
- 【干货】Python爬虫/文本处理/科学计算/机器学习/数据挖掘兵器谱
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱