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
    评论
当涉及到 MATLAB文本挖掘,您可以使用些功能强大的工具箱和函数来处理和分析文本数据。下面是一个简单的示例代码,演示了如何使用 MATLAB 进行文本挖掘: ```matlab % 读取文本文件 filename = 'example.txt'; fileID = fopen(filename, 'r'); textData = fscanf(fileID, '%c'); fclose(fileID); % 文本预处理 processedText = lower(textData); % 转换为小写 processedText = regexprep(processedText, '[^\w\s]', ''); % 移除标点符号 processedText = strsplit(processedText); % 拆分为单词 % 统计单词频率 wordCount = containers.Map; for i = 1:length(processedText) word = processedText{i}; if isKey(wordCount, word) wordCount(word) = wordCount(word) + 1; else wordCount(word) = 1; end end % 排序并显示前几个常见单词 sortedWords = sortrows(cell2mat(wordCount.values), -1); topWords = wordCount.keys(1:10); disp(topWords); disp(sortedWords(1:10)); ``` 这段代码假设您已经有一个名为 "example.txt" 的文本文件,其中包含要分析的文本数据。代码首先读取文件内容,然后进行预处理,包括将文本转换为小写、移除标点符号并将其拆分为单词。接下来,代码使用 `containers.Map` 创建一个映射对象 `wordCount`,用于存储每个单词出现的频率。最后,代码对单词频率进行排序,并显示出现频率最高的前几个单词。 请注意,这只是一个简单的示例,您可以根据自己的需求进行进一步的文本挖掘和分析。MATLAB 还提供了其他用于文本处理和分析的工具箱和函数,例如文本分类、情感分析等。您可以根据具体的应用场景选择适合的方法和工具。希望对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值