matlab做文本挖掘,文本挖掘——实践总结(一)

以下内容都是在工作中的一些小实践,代码部分是参考网上的已有的然后再自行根据情况修改过的。记载主要是想以后用的时候可以更方便的直接拿过来用。

注:工作所需,程序是在knime这个数据挖掘软件的python下运行的,结果是截图过来的,可能模糊,可以自己实践代码。

文章内容: jieba分词(包括分词、关键词提取、词性标记)、word2vec、LDA、Kmeans四大模块算法的理论归纳及简单实现代码与果。

完成时间:1个星期左右时间。 其中,python部分2天左右,knime部分花费时间较长。

所用软件:python,  Knime(python脚本完成)。

所用主要模块:NLTK、 Sklearn、pandas、Scipy、numpy、gensim(Word2vec部分),jieba。

遇到的主要问题:KNIME软件python脚本里中文编码问题、KNIME运行非常慢、KNIME的文件流入流出端还不是很熟练、KNIME其他数据预处理结点还不是很熟练。

后续计划:首先,因为之前时间并不多,所以还未实现其他文本挖掘算法,比如,SVM、 随机森林、kNN、CNN(类似其他神经网络算法)、 NLP其他功能、朴素贝叶斯等,这些算法在python里很好实现,在KNIME里需要改进运行效率。其次,希望可以对knime的python脚本运行效率作以改进,对KNIME数据流入流出数据库作以实践与熟练,还有就是对模型参数的多次训练,比如,本文实践的kmeans算法,参数K目前设置的是3,聚类预测准确率也就在60%左右,模型还不是很好,需要时间再调参训练。最后,希望对knime其他挖掘软件及结点作以实践,比如weka(这个软件比较熟悉,希望后面多了解)、R、matlab等。jieba分词:

词性标记代码部分:

# Copy input to output

output_table_1 = input_table_1.copy()

output_table_2 = input_table_2.copy()

#!/usr/bin/python

import sys

#reload(sys)

#sys.setdefaultencoding('utf-8')

import jieba

import jieba.posseg as pseg #主要用jieba里的pseg做词性标记

import jieba.analyse

# 对句子进行分词

def seg_sentence(sentence):

sentence_seged = pseg.cut(sentence.strip())

stopwords = []

for line in output_table_2.values: #遍历停用词DataFrame

#print

line[0]

stopwords.append(line[0])

outstr = ''

for word in sentence_seged:

if word not in stopwords: #去除停用词

if word!='\t':

for word1, flag in

sentence_seged: #遍历分词及分词词性

#print'%s %s' % (word1,

flag)

outstr

+=word1+'\t'+flag+'\n'

else:

outstr += " "

return outstr

#out_table=DataFrame()

for line in output_table_1.values:

line_seg = seg_sentence(line[0]) # 这里的返回值是字符串

print line_seg

#output_table_1['fenci']=line_seg

词性标记脚本结果:

93593d9cd30f特征词提取代码部分(提取了权重top100的词):

# Copy input to output

output_table = input_table.copy()

#!/usr/bin/python

import sys

import pandas

from pandas import DataFrame

#reload(sys)

#s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值