一、NPL

1、NPL:Natural Language Processing 自然语言处理。
2、文本相似度分析:从海量数据(文章,评论)中,把相似的数据挑选出来
步骤:

  1. 把评论翻译成机器看的懂的语言
  2. 使用机器看的懂得算法轮询去比较每一条和所有评论的相似程度
  3. 把相似的评论挑出来

2.1、把评论翻译成机器看的懂的语言

  1. 分词
  2. 制作词袋模型
  3. 用词袋模型制作语料库
  4. 把评论变成词向量

2.2、使用机器看的懂得算法轮询去比较每一条和所有评论的相似程度(TF-IDF)
2.2.1不考虑停用词(就是没什么意义的词),找出一句话中出现次数最多的单词,来代表这句话,这个就叫做词频(TF – Term Frequency),相应的权重值就会增高。
2.2.2、如果一个词在所有句子中都出现过,那么这个词就不能代表某句话,这个就叫做逆文本频率(IDF – Inverse Document Frequency)相应的权重值就会降低。
2.2.3、TF-IDF = TF * IDF。
TF公式:

IDF公式:

3、例题:

#encoding:utf-8
import pprint
import csv
import jieba.analyse
from gensim import corpora,models,similaritieswith open('./ChnSentiCorp_htl_all.csv','r',encoding='UTF-8') as f:reader = csv.reader(f)reader_list = list(reader)new_seg_list = []for row in reader_list[1:11]:text = row[1]seg_list = jieba.cut(text,cut_all=False)seg_list1 = list(seg_list)new_seg_list.append(seg_list1)# pprint.pprint(new_seg_list)#提取每一个词并且标注,储存在字典中
dictionary = corpora.Dictionary(new_seg_list)#制作语料库corpus = [dictionary.doc2bow(doc) for doc in new_seg_list]
print('语料库:',corpus)
corpus_list = []
for j in corpus:for i in range(0,len(j)):a = j[i][1]corpus_list.append(a)
print(corpus_list)"""
测试文档
"""
text_text = '距离川沙公路较近,但是公交指示不对,如果是""蔡陆线""的话,会非常麻烦.建议用别的路线.房间较为简单.'
dict_text_list = [i for i in jieba.cut(text_text)]
doc_text_vec = dictionary.doc2bow(dict_text_list)
# print('',doc_text_vec)"""
相似度分析
"""
tfidf = models.TfidfModel(corpus)index = similarities.SparseMatrixSimilarity(tfidf[corpus],num_features=len(dictionary.keys()))sim = index[tfidf[doc_text_vec]]sim_sorted = sorted(enumerate(sim),key=lambda item: -item[1])
# print(sim_sorted)

4、例题:

from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import nltk
import re
import numpy as np
import pandas as pd
import osdef get_job_diag_log_nonredundant(logName):logPath = ''.join(['./error_log_from_diagnose/' + logName])if not os.path.exists(logPath):print("File path Does not Exist")raise Exception("file path does not exist")corpus = get_corpus_simp(logPath)# CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法。对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率# CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数# print(corpus)vectorizer = CountVectorizer()transformer = TfidfTransformer()# change str to tf matrixtf_matrix = vectorizer.fit_transform(corpus)# print(vectorizer.get_feature_names())# print(vectorizer.vocabulary_)print(tf_matrix)# calcute tf-idftfidf = transformer.fit_transform(tf_matrix)print(tfidf)# Change tf-idf to arraytfidf_array = tfidf.toarray()# print(tfidf_array)# use cosinsimilarity_all = cosine_similarity(tfidf_array)print(similarity_all)def get_corpus_simp(log_path):corpus = []punctuations = ['{', '}', '``', "''", ':', '[', ']', ',', '--', '#', '-', '<', '>', '+', '++', "'", '!', '=','(', ')', '*', '`', '$', '%', '&', '@', '..', '...', '.', '/', '_', '?', '', '\0', '\x00']with open(log_path, 'r') as f:line = f.readline().strip('|')while line:# filterline_list = line.split('ERROR')message_body = line_list[-1].replace('\n', '').strip('| ')#分词message_body_list = nltk.word_tokenize(message_body)# 去除停用词message_body_list_unpunctuation = [word for word in message_body_list if not word in punctuations]message_body_list_unpunctuation = [word for word in message_body_list_unpunctuation ifnot re.search('=*=', word)]message_body_list_unpunctuation = [word for word in message_body_list_unpunctuation ifnot re.search('(\d*).(\d*).(\d*).(\d*):(\d*)', word)]message_body_list_unpunctuation = [word for word in message_body_list_unpunctuation ifnot re.search('(\d)', word)]message_body_list_unpunctuation_str = ' '.join(message_body_list_unpunctuation)corpus.append(message_body_list_unpunctuation_str)line = f.readline()return corpusif __name__ == '__main__':simplog = get_job_diag_log_nonredundant('218179.txt')

第二节机器学习--NPL基础相关推荐

  1. 吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)

    2.1 二元分类 (Binary Classification) 这周我们将学习神经网络的基础知识,其中需要注意的是,当实现一个神经网络的时候,我们需要知道一些非常重要的技术和技巧.例如有一个包含 m ...

  2. 2-1 李宏毅2021春季机器学习教程-第二节机器学习任务攻略

    之前的学习简要介绍了机器学习和深度学习的相关概念,上一篇文章李宏毅2021春季机器学习教程HW1-COVID-19 Cases Prediction (Regression)解答有关于HW1的解答,接 ...

  3. 第二节:搜索引擎基础原理(seo前线seo网站优化培训)

    目录 建议参加者: 课程内容简介: 课后: 建议参加者: 还没有体会到搜索引擎原理在SEO上有什么用处的培训参加者. 课程内容简介: 解读<走进搜索引擎>,说明哪些是对于SEO需要看的,哪 ...

  4. Datawhale数据分析第一章第二节:Pandas基础

    复习:数据分析的第一步,加载数据我们已经学习完毕了.当数据展现在我们面前的时候,我们所要做的第一步就是认识他,今天我们要学习的就是了解字段含义以及初步观察数据. 1 第一章:数据载入及初步观察 1.4 ...

  5. 第二节 -- python的基础语法

    python的基础语法 编码:在python2中,默认编码是ASCII:在python3中,默认源码文件以UTF-8编码,所有字符串都是Unicode字符串.可通过输入 # -*- coding: 编 ...

  6. 风炫安全Web安全学习第二节课 HTML基础

    学习地址:HTML基础 html基础 html表单 html常用标签 前端攻防中常用的一些手法 反射性XSS Dom-based型XSS 存储型XSS 学习的网站:https://www.w3scho ...

  7. (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础

    文章目录 一:软件测试的目标(了解) 二:软件测试准则(了解) 三:软件测试方法 (1)黑盒测试(功能测试) (2)白盒测试 四:软件测试步骤 (1)单元测试(模块测试) (2)子系统测试 (3)系统 ...

  8. 网易云课堂Web安全工程师课程分享——第二章 Web开发基础知识

    第一节 前端开发基础--HTML 课程回顾 Web页面通常使用哪几种语言开发? HTML结构包含哪两部分? HTML元素由哪几部分组成? 常见的HTML标签有哪些? HTML DOM是什么结构? 总结 ...

  9. vue.js项目实战运用篇之抖音视频APP-第二节:项目基础架构搭建

    [温馨提示]:若想了解更多关于本次项目实战内容,可转至vue.js项目实战运用篇之抖音视频APP-项目规划中进一步了解项目规划. [项目地址] 项目采用Git进行管理,最终项目将会发布到GitHub中 ...

最新文章

  1. 利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理
  2. 从应用到内核查接口超时(中)
  3. 自己动手实现轻量级神经网络推理框架
  4. openstack(Queens) neutron-l3-agent 代码解析1(从命令行启动到同步plugin数据)
  5. REM重复制造MFBF功能
  6. 牛客练习赛76 E 牛牛数数(线性基加二分)
  7. java lambda if_使用Java8的Lambda实现Monda -解道Jdon
  8. 20150702 问题随记
  9. jmeter获得Response Headers,Response Body里的值
  10. 用Lightroom Classic CC2019 mac合并照片以创建全景和HDR全景
  11. brew 安装软件能指定文件夹吗_Mac安装homebrew安装到指定目录
  12. linux网络子系统分析(二)—— 协议栈分层框架的建立
  13. 下载MySQL安装包
  14. iconfont-阿里巴巴矢量图标库的使用
  15. 压缩算法之算术编码浅析与实现
  16. Shell脚本实现俄罗斯方块小游戏
  17. 双非计算机硕士何去何从(2)
  18. 基于Edge浏览器的沙拉划词插件使用教程(好用的翻译插件)
  19. Kali Linux 使用记录
  20. java Excel读写

热门文章

  1. python数据可视化(饼图、世界地图、折线图、柱状图)
  2. for(i=0,j=0;i10,j10;i++,j++)用python怎么写
  3. 一个phper对mamp和mamp pro的初级体会(MAC系统下)
  4. windows下将Nginx注册为服务
  5. HTML5七夕情人节表白网页制作【圣诞雪花飘落】HTML+CSS+JavaScript
  6. 【iOS】苹果2017盘点:不止iPhone X!还有这些黑科技和你想不起的玩意
  7. 弗洛伊德算法(Java)
  8. python学习之对excel文件的操作
  9. 整型家族(字符、短整型、整型、长整型)的范围
  10. DeepChem教程4:分子指纹