Python 物联网入门指南(二)(3)

简介: Python 物联网入门指南(二)

Python 物联网入门指南(二)(2)https://developer.aliyun.com/article/1507137

使用主题建模在文本中识别模式

主题建模是指识别手稿信息中隐藏模式的过程。其目标是在一系列文件中揭示一些隐藏的主题结构。

如何做…

  1. 导入以下包:
from nltk.tokenize import RegexpTokenizer
from nltk.stem.snowball import SnowballStemmer
from gensim import models, corpora
from nltk.corpus import stopwords
  1. 加载输入数据:
def load_words(in_file):
  element = []
  with open(in_file, 'r') as f:
    for line in f.readlines():
      element.append(line[:-1])
  return element
  1. 预处理文本的类:
classPreprocedure(object):
  def __init__(self):
 # Create a regular expression tokenizer    self.tokenizer = RegexpTokenizer(r'w+')
  1. 获取停用词列表以终止程序执行:
self.english_stop_words= stopwords.words('english')
  1. 创建一个 Snowball 词干提取器:
self.snowball_stemmer = SnowballStemmer('english')  
  1. 定义一个执行标记化、停用词去除和词干处理的函数:
def procedure(self, in_data):
# Tokenize the string
    token = self.tokenizer.tokenize(in_data.lower())
  1. 从文本中消除停用词:
tokenized_stopwords = [x for x in token if not x in self.english_stop_words]
  1. 对标记进行词干处理:
token_stemming = [self.snowball_stemmer.stem(x) for x in tokenized_stopwords]
  1. 返回处理过的标记:
return token_stemming
  1. main函数加载输入数据:
if __name__=='__main__':
 # File containing input data  in_file = 'data_topic_modeling.txt'
 # Load words  element = load_words(in_file)
  1. 创建一个对象:
preprocedure = Preprocedure()
  1. 处理文件并提取标记:
processed_tokens = [preprocedure.procedure(x) for x in element]
  1. 根据标记化的文档创建一个字典:
dict_tokens = corpora.Dictionary(processed_tokens)
  corpus = [dict_tokens.doc2bow(text) for text in processed_tokens]
  1. 开发一个 LDA 模型,定义所需的参数,并初始化 LDA 目标:
num_of_topics = 2
  num_of_words = 4
  ldamodel = models.ldamodel.LdaModel(corpus,num_topics=num_of_topics, id2word=dict_tokens, passes=25)
  print "Most contributing words to the topics:"
  for item in ldamodel.print_topics(num_topics=num_of_topics, num_words=num_of_words):
    print "nTopic", item[0], "==>", item[1]
  1. 执行topic_modelling.py时获得的结果如下截图所示:


情感分析的应用

情感分析在社交媒体如 Facebook 和 Twitter 中使用,以找出公众对某个问题的情感(积极/消极)。它们还用于确定人们对广告的情感以及人们对您的产品、品牌或服务的感受。

第五章:在图像中检测边缘和轮廓

本章介绍以下主题:

  • 加载、显示和保存图像
  • 图像翻转和缩放
  • 腐蚀和膨胀
  • 图像分割
  • 模糊和锐化图像
  • 在图像中检测边缘
  • 直方图均衡化
  • 在图像中检测角点

介绍

图像处理在几乎所有工程和医学应用中都起着至关重要的作用,用于从灰度/彩色图像中提取和评估感兴趣区域。图像处理方法包括预处理、特征提取和分类。预处理用于增强图像的质量;这包括自适应阈值处理、对比度增强、直方图均衡化和边缘检测。特征提取技术用于从图像中提取显著特征,以供后续分类使用。

本章介绍了构建图像预处理方案的程序。

加载、显示和保存图像

本节介绍了如何通过 OpenCV-Python 处理图像。此外,我们讨论了如何加载、显示和保存图像。

如何做…

  1. 导入计算机视觉包-cv2
import cv2 
  1. 使用内置的imread函数读取图像:
image = cv2.imread('image_1.jpg')
  1. 使用内置的imshow函数显示原始图像:
cv2.imshow("Original", image) 
  1. 等待按下任意键:
cv2.waitKey(0) 
  1. 使用内置的imwrite函数保存图像:
cv2.imwrite("Saved Image.jpg", image) 
  1. 用于执行 Python 程序Load_Display_Save.py的命令如下所示:


  1. 执行Load_Display_Save.py后获得的结果如下所示:


图像翻转

在图像翻转操作中,我们可以水平、垂直、水平和垂直翻转输入图像。

如何做…

  1. 导入计算机视觉包-cv2
import cv2 
  1. 使用内置的imread函数读取图像:
image = cv2.imread('image_2.jpg')
  1. 使用内置的imshow函数显示原始图像:
cv2.imshow("Original", image) 
  1. 等待按下任意键:
cv2.waitKey(0) 
  1. 对测试图像执行所需操作:
# cv2.flip is used to flip images 
# Horizontal flipping of images using value '1' 
flipping = cv2.flip(image, 1) 
  1. 显示水平翻转的图像:
# Display horizontally flipped image 
cv2.imshow("Horizontal Flipping", flipping) 
  1. 等待按下任意键:
cv2.waitKey(0) 
  1. 执行输入图像的垂直翻转:
# Vertical flipping of images using value '0' 
flipping = cv2.flip(image, 0) 
  1. 显示垂直翻转的图像:
cv2.imshow("Vertical Flipping", flipping) 
  1. 等待按下任意键:
cv2.waitKey(0) 
  1. 显示处理后的图像:
# Horizontal & Vertical flipping of images using value '-1' 
flipping = cv2.flip(image, -1) 
# Display horizontally & vertically flipped image 
cv2.imshow("Horizontal & Vertical Flipping", flipping) 
# Wait until any key is pressed 
cv2.waitKey(0)
  1. 停止执行并显示结果:
# Close all windows 
cv2.destroyAllWindows() 
  1. 用于执行Flipping.py Python 程序的命令如下所示:


  1. 执行Flipping.py后获得的原始和水平翻转的图像如下所示:


以下是水平翻转的图片:


  1. 执行Flipping.py后获得的垂直、水平和垂直翻转的图像如下所示:


以下是水平和垂直翻转的图片:


图像缩放

图像缩放用于根据要求修改输入图像的尺寸。在 OpenCV 中通常使用三种类型的缩放操作符,它们是立方、区域和线性插值。

如何做…

  1. 创建一个新的 Python 文件并导入以下包:
# Scaling (Resizing) Images - Cubic, Area, Linear Interpolations 
# Interpolation is a method of estimating values between known data points  
# Import Computer Vision package - cv2 
import cv2 
# Import Numerical Python package - numpy as np 
import numpy as np 
  1. 使用内置的imread函数读取图像:
image = cv2.imread('image_3.jpg') 
  1. 使用内置的imshow函数显示原始图像:
cv2.imshow("Original", image) 
  1. 等待按下任意键:
cv2.waitKey() 
  1. 根据操作员的命令调整图像大小:
# cv2.resize(image, output image size, x scale, y scale, interpolation) 
  1. 使用立方插值调整图像大小:
# Scaling using cubic interpolation 
scaling_cubic = cv2.resize(image, None, fx=.75, fy=.75, interpolation = cv2.INTER_CUBIC) 
  1. 显示输出图像:
# Display cubic interpolated image 
cv2.imshow('Cubic Interpolated', scaling_cubic) 
  1. 等待按下任意键:
cv2.waitKey()
  1. 使用区域插值调整图像大小:
# Scaling using area interpolation 
scaling_skewed = cv2.resize(image, (600, 300), interpolation = cv2.INTER_AREA) 
  1. 显示输出图像:
# Display area interpolated image 
cv2.imshow('Area Interpolated', scaling_skewed)  
  1. 等待操作员的指示:
# Wait until any key is pressed 
cv2.waitKey() 
  1. 使用线性插值调整图像大小:
# Scaling using linear interpolation 
scaling_linear  = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation = cv2.INTER_LINEAR) 
  1. 显示输出图像:
# Display linear interpolated image 
cv2.imshow('Linear Interpolated', scaling_linear)  
  1. 等待按下任意键:
cv2.waitKey() 
  1. 完成图像缩放任务后,终止程序执行:
# Close all windows 
cv2.destroyAllWindows() 
  1. 用于执行Scaling.py Python 程序的命令如下所示:


  1. 用于缩放的原始图像如下所示:


  1. 执行Scaling.py文件后获得的线性插值输出如下所示:


  1. 执行Scaling.py文件后获得的面积插值输出如下所示:


  1. 执行Scaling.py文件后获得的立方插值输出如下所示:


腐蚀和膨胀

腐蚀和膨胀是形态学操作。腐蚀去除图像中对象边界的像素,而膨胀在图像中对象的边界上添加像素。

如何做…

  1. 导入计算机视觉包 - cv2
import cv2 
  1. 导入数值 Python 包 - numpy as np
import numpy as np 
  1. 使用内置的imread函数读取图像:
image = cv2.imread('image_4.jpg')
  1. 使用内置的imshow函数显示原始图像:
cv2.imshow("Original", image) 
  1. 等待按任意键:
cv2.waitKey(0) 
  1. 给定形状和类型,用 1 填充:
# np.ones(shape, dtype) 
# 5 x 5 is the dimension of the kernel, uint8: is an unsigned integer (0 to 255) 
kernel = np.ones((5,5), dtype = "uint8") 
  1. cv2.erode是用于腐蚀的内置函数:
# cv2.erode(image, kernel, iterations) 
erosion = cv2.erode(image, kernel, iterations = 1) 
  1. 使用内置的imshow函数显示腐蚀后的图像:
cv2.imshow("Erosion", erosion) 
  1. 等待按任意键:
cv2.waitKey(0) 
  1. cv2.dilate是用于膨胀的内置函数:
# cv2.dilate(image, kernel, iterations) 
dilation = cv2.dilate(image, kernel, iterations = 1) 
  1. 使用内置的imshow函数显示膨胀后的图像:
cv2.imshow("Dilation", dilation) 
  1. 等待按任意键:
cv2.waitKey(0) 
  1. 关闭所有窗口:
cv2.destroyAllWindows()
  1. 用于执行Erosion_Dilation.py文件的命令如下所示:


  1. 用于执行Erosion_Dilation.py文件的输入图像如下所示:


  1. 执行Erosion_Dilation.py文件后获得的腐蚀图像如下所示:


  1. 执行Erosion_Dilation.py文件后获得的膨胀图像如下所示:

Python 物联网入门指南(二)(4)https://developer.aliyun.com/article/1507163

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
24天前
|
分布式计算 大数据 数据处理
Python入门与大数据处理环境配置指南
**Python入门与大数据处理环境配置** Python作为高级编程语言,因其简洁语法和丰富库资源,成为数据处理、AI和大数据分析首选。本文旨在介绍Python基础和环境配置,特别是针对大数据处理的环境搭建。首先,讲解Python语言基础,包括语言概述、基本语法(变量、数据类型、控制流语句、函数和模块)。接着,讨论如何安装Python环境,以及安装NumPy、Pandas等大数据处理库。对于大数据处理,可以选择本地环境或搭建分布式环境,如Hadoop和Spark,并提供相关API示例。最后,列出环境配置中可能遇到的问题及解决方案,如版本不兼容、库安装失败等,并提供参考资料以供深入学习。
38 3
|
2天前
|
测试技术 Python
|
1天前
|
数据采集 编译器 iOS开发
【Python从入门到精通】(一)就简单看看Python吧
【Python从入门到精通】(一)就简单看看Python吧
23 8
|
9天前
|
数据挖掘 数据处理 Python
Python编程入门:从基础到实践
【6月更文挑战第26天】这篇文章引导读者逐步学习Python编程,从基础语法如变量、数据类型(整数、浮点数、字符串)到条件语句、循环(if/for/while),再到函数定义和模块导入。通过实例展示了Python在文本处理、数据分析(使用pandas)和Web开发(使用Flask)的应用。学习Python能为初学者开启更广阔的技术领域,如面向对象编程、并发和网络编程等。
|
8天前
|
自然语言处理 编译器 PHP
Python入门
【6月更文挑战第27天】Python入门。
13 3
|
7天前
|
传感器 存储 监控
使用Python进行物联网设备控制与数据收集
通过这些步骤和示例,可以看到Python在物联网领域的广泛应用和强大功能。Python不仅能够轻松实现硬件控制和数据处理,还能通过丰富的库和工具支持高效的开发、部署和运维。随着物联网技术的不断发展,Python将继续在智能家居、工业自动化、智慧城市等领域发挥重要作用,为开发者提供更多的创新和高效的解决方案。
|
21天前
|
IDE 开发工具 Python
Python初学者如何入门?
【6月更文挑战第14天】Python初学者如何入门?
22 5
|
24天前
|
开发者 Python
入门实战丨Python小游戏经典案例
入门实战丨Python小游戏经典案例
22 4
|
21天前
|
开发者 Python
GitHub飙升!京东认证的“Python编程入门三剑客”究竟好在哪?
Python凭借着简单易学、功能强大,已经跃居TIOB编程语言榜首,并且已经开始了它的霸榜之旅。如何选择一套适合自己的Python学习教程,是每个Python爱好者面临的首要问题。
|
23天前
|
机器学习/深度学习 算法 数据挖掘
机器学习新手也能飞:Python+Scikit-learn让你轻松入门!
【6月更文挑战第12天】Python和Scikit-learn降低了机器学习的门槛,让初学者也能轻松涉足。Python以其易用性及丰富的库支持成为机器学习首选语言,而Scikit-learn作为开源机器学习库,提供多种算法和工具。通过简单示例展示了如何使用两者处理鸢尾花数据集进行分类,体现其在实践中的高效便捷。掌握这两者,能助你在机器学习领域不断探索和创新。