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
相关文章
|
2月前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
5天前
|
物联网 Python
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
|
6天前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
17 2
|
12天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
43 7
|
1月前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
46 5
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
87 3

热门文章

最新文章